1-877-756-9963 – 24/7 Support

Lawn Care Quote Calculator

WRITTEN BY admin

Need a quick way to quote lawn mowing jobs and other lawn care services you offer? Use our calculator below to quote the price of your next lawn mow and add on services like fertilizing, aerating, overseeding, dog poop cleanup, weeding, and more!

The calculator takes the size of the lawn in square feet and the price in dollars ($0.00). You can add on services at a flat-rate or per square foot of the lawn. Then you can download the full service breakdown.

input, select{border: 1px solid black; text-align: center;} select{background-color: #f0f0f0;}
in Cents

Add-on Services:


Total Quote:

Total: $0.00

OPTIONAL: Brand your quote:





let customServices = []; function addCustomService() { const serviceDiv = document.createElement("div"); const serviceNameInput = document.createElement("input"); serviceNameInput.setAttribute("type", "text"); serviceNameInput.setAttribute("placeholder", "Service name"); const servicePriceInput = document.createElement("input"); servicePriceInput.setAttribute("type", "number"); servicePriceInput.setAttribute("placeholder", "Service price"); const priceTypeSelect = document.createElement("select"); priceTypeSelect.innerHTML = `Price per sq ft Flat rate`; serviceDiv.appendChild(serviceNameInput); serviceDiv.appendChild(servicePriceInput); serviceDiv.appendChild(priceTypeSelect); document.getElementById("customServices").appendChild(serviceDiv); // Add event listener to update the total when a new service is added serviceNameInput.addEventListener("input", updateTotal); servicePriceInput.addEventListener("input", updateTotal); priceTypeSelect.addEventListener("input", updateTotal); } function updateTotal() { const lawnSize = parseFloat(document.getElementById("lawnSize").value) || 0; const mowingPrice = parseFloat(document.getElementById("mowingPrice").value/100) || 0; const customServiceTotal = Array.from(document.querySelectorAll("#customServices div")).reduce((total, serviceDiv) => { const serviceName = serviceDiv.querySelector("input[type='text']").value; const servicePrice = parseFloat(serviceDiv.querySelector("input[type='number']").value) || 0; const priceType = serviceDiv.querySelector("select").value; if (priceType === "sqft") { total += lawnSize * servicePrice; } else { total += servicePrice; } return total; }, 0); const total = lawnSize * mowingPrice + customServiceTotal; document.getElementById("totalQuote").textContent = `Total: $${total.toFixed(2)}`; } function exportQuote() { const lawnSize = parseFloat(document.getElementById("lawnSize").value) || 0; const mowingPrice = parseFloat(document.getElementById("mowingPrice").value/100) || 0; const customServices = Array.from(document.querySelectorAll("#customServices div")).map(serviceDiv => { const serviceName = serviceDiv.querySelector("input[type='text']").value; const servicePrice = parseFloat(serviceDiv.querySelector("input[type='number']").value) || 0; const priceType = serviceDiv.querySelector("select").value; return `${serviceName} - $${servicePrice.toFixed(2)} (${priceType === "sqft" ? "per sq ft" : "flat rate"})`; }); const companyName = document.getElementById("companyName").value; const contactEmail = document.getElementById("contactEmail").value; // Calculate the total before appending it to quoteText const total = lawnSize * mowingPrice + customServices.reduce((sum, service) => { const servicePrice = parseFloat(service.split('$')[1]); return sum + servicePrice; }, 0); let quoteText = `Approx. Lawn Size: ${lawnSize} sq ft\nMowing Rate: $${mowingPrice.toFixed(2)} per sq ft\nMowing Cost: $${(lawnSize * mowingPrice).toFixed(2)}\n\nAdditional Services:\n${customServices.join('\n')}\n\nTotal: $${total.toFixed(2)}\n\n`; if (companyName) { quoteText += `Quoted By: ${companyName}\n`; } if (contactEmail) { quoteText += `Contact Email: ${contactEmail}\n`; } const blob = new Blob([quoteText], { type: "text/plain" }); const url = URL.createObjectURL(blob); const a = document.createElement("a"); a.href = url; a.download = "LawnCareQuote.txt"; a.click(); } document.getElementById("lawnSize").addEventListener("input", updateTotal); document.getElementById("mowingPrice").addEventListener("input", updateTotal);

Helpful Numbers:

Quarter Acre = 10,890 square feet
Half Acre = 21,780 square feet
Acre = 43,560 square feet

Posted on December 2, 2022

Looking for more landscaping jobs?
There’s an app for that.

Download our free landscaper app to book and manage landscaping, lawn care, and snow removal jobs anytime, anywhere.

  • Download our Lawn care app for all your landscaping needs
  • Order lawn mowing, snow plowing and other home yard services from your smartphone

Looking for more landscaping jobs?
There’s an app for that.

Do you offer lawn care, snow removal, or other landscaping services? Our landscaping app is great to supplement your existing client list, or even to keep you busy while you grow. See how much each job pays out before you accept and add it to your queue. Download our free landscaper app to book and manage landscaping, lawn care, and snow removal jobs anytime, anywhere.

Check out our Info Hubs for more tips to help grow your business!