Start with production time
The fastest way to underbid lawn maintenance is to price from the property address instead of the work. A weekly mowing job can look simple from the street and still eat time because of gates, slopes, trimming, parking, or cleanup.
Estimate the minutes for mowing, trimming, edging, cleanup, and travel separately. Then multiply by crew size so the bid reflects total paid labor time, not just time on site.
- Mowing and trimming minutes
- Travel and unload time
- Crew size
- Terrain or access difficulty
Use loaded labor, not wage
A worker paid $24 per hour costs more than $24 per hour once payroll taxes, insurance, paid time, uniforms, and other labor-related costs are included. That difference is labor burden.
If you skip labor burden in your math, profit disappears even when the job looks busy and the customer pays on time.
Add job-level operating costs
Every visit uses fuel, equipment wear, truck time, software, admin, and overhead. Some of those costs are small per visit, but repeated across a season they decide whether a route is worth keeping.
Separate direct job costs from overhead, then use a target margin to calculate the selling price instead of adding a random markup.
Keep the customer document clean
Your internal worksheet can show labor, equipment, overhead, and profit. A customer proposal should only show scope, schedule, investment, terms, and acceptance.
That separation helps you make better pricing decisions without inviting the customer into your cost structure.