You won the bid. Three weeks later the crew finishes the job, and it took 30 hours instead of the 20 you priced. Nobody's sure whether the estimate was wrong or the crew was slow, because the estimate lived in a spreadsheet and the actual hours lived on a paper timesheet. Multiply that across a season of enhancement jobs and maintenance contracts, and you've got a busy company that isn't making the money it should. Good landscape estimating software fixes two things. It makes every bid follow the same math, and it lets you compare that math to what actually happened on the job.
This guide covers the math first, then what to require from the software.
What goes into a landscape estimate
Every landscape estimate comes down to six lines:
- Materials. Mulch, stone, plants, sod, fertilizer, delivered to site.
- Labor. The hours to do the work, times what an hour of labor really costs you.
- Mobilization. Loading, driving, unloading and cleanup. It's easy to forget, and it's the reason small jobs lose money.
- Equipment. The truck, trailer, mowers and power tools the job uses.
- Overhead. Your share of the office, insurance, the shop, and the owner's time.
- Profit. What's left, set on purpose instead of by accident.
Most bad bids go wrong on three of those six: labor hours, labor cost and profit.
Labor hours come from production rates
A production rate is how much work a crew gets done per hour, for example cubic yards of mulch per crew-hour or square feet of sod per man-hour. It's the most important number in your estimating, and it has to come from your own jobs, not a rule of thumb. Your crews, your equipment and your typical sites set it.
If you don't track actual hours against each job, you don't have production rates. You have guesses.
Labor cost is more than the wage
The Bureau of Labor Statistics lists the median wage for landscaping and groundskeeping workers at $18.82 an hour (May 2025). That isn't what an hour costs you. Across private industry, BLS finds that wages and salaries are 70.0% of employer compensation cost, with benefits making up the other 30.0% (June 2026). To load a wage that way, divide it by 0.70: $18.82 ÷ 0.70 = $26.89 an hour, before overtime. That's an illustrative loading factor. Use your own loaded rate, with the payroll taxes, workers' comp and benefits you actually pay.
Profit is a margin, not a markup
This is the mistake that costs the most money quietly. Adding 20% to your costs does not give you a 20% margin. It gives you 16.7%, because the 20% you added is measured against cost, while margin is measured against the price. To hit a target margin, divide your cost by (1 minus the margin). For a 20% margin, divide by 0.8.
A worked example: a mulch install
Every number here is illustrative except the loaded rate above, so plug in your own. The job is 20 cubic yards of mulch with a three-person crew. Each dollar figure is rounded to the cent as it's calculated.
- Materials: 20 yards at an assumed $40 a yard delivered = $800.00.
- Labor: at an assumed production rate of 2.5 yards per crew-hour, the job takes 8 crew-hours. That's 24 man-hours × $26.89 = $645.36.
- Mobilization: 1 hour of loading and drive time for 3 people is 3 man-hours × $26.89 = $80.67.
- Equipment: $60.00 for the truck, trailer and tools.
- Direct cost: $1,586.03.
- Overhead recovery: at 15% of direct cost, that's $237.90, for a total cost of $1,823.93.
Now price it two ways:
- Price for a 20% margin: $1,823.93 ÷ 0.8 = $2,279.91.
- Add a 20% markup instead: $1,823.93 × 1.2 = $2,188.72. That's a 16.7% margin.
The difference is $91.19 on one small job. Across a few hundred jobs a season, it's the gap between the year you planned and the year you got.
Pricing a maintenance contract
Maintenance bids use the same math per visit, multiplied across the season. This example is illustrative too.
A property takes 1.5 crew-hours per visit with a two-person crew. That's 3 man-hours, plus about 15 minutes of drive time for both people, another half man-hour.
- Labor and drive: 3.5 man-hours × $26.89 = $94.12.
- Equipment: $12.00.
- Direct cost: $106.12 per visit.
- With 15% overhead: $122.04.
- Priced for a 20% margin: $152.55 per visit.
- Over a 30-visit season: $4,576.50. Billed across 12 months, that's $381.38 a month.
Two things decide whether that contract holds up. The first is whether 1.5 crew-hours is true on that property. The second is whether drive time between stops is priced in. If crews bounce across town between properties, the 15 minutes becomes 40. Our guide on how to charge for travel time compares flat fees, per-mile and zone pricing.
If you sell that contract as a service agreement in FSM Navigator, record the $381 as the agreement's monthly fee; covered visits bill at zero. The visits themselves come from a recurring job on the property, not from the agreement, so set up both.
Why estimates drift from reality
- Production rates never get updated. You set them three years ago with a different crew and different mowers.
- Nobody compares estimated to actual. The estimate and timesheet never meet.
- Every estimator prices differently. Two people bid the same property $400 apart.
- Mobilization is left off small jobs, and those jobs lose money.
- Markup gets used where margin was meant.
- The estimate gets re-typed into the schedule, and details fall out along the way: the plant list, access notes, hours.
What landscape estimating software should do
Bring this list to every demo. If landscape estimating software can't pass these six tests, it'll speed up bidding without making bids any more accurate.
1. Start every job type from a template
Your common jobs, such as mulch installs, cleanups, sod, seasonal color and maintenance visits, should be templates with the steps and estimated hours already set. Estimators adjust for the property. They don't rebuild the job from scratch.
Test it: build a template for your most common enhancement. Have two people start the same property from it and compare the hours they end up with.
2. Show labor and materials line by line
You should see itemized labor and parts lines, each with a quantity, a unit price and a line total, before the bid goes out. That's where you check that the price you set actually covers the margin you worked out.
Test it: change the hours on one labor line and confirm the line and estimate totals both move by exactly hours × rate.
3. Get customer approval without a printer
The customer should approve digitally, with a record of who approved what and when.
Test it: send a bid, approve it from a phone as the customer, and find the approval record afterward.
4. Turn an approved bid into scheduled work without re-typing
Once the bid is approved, the work should already be there, with the steps, hours and notes intact, ready to assign to a crew.
Test it: approve a bid and check that the work shows the same steps and hours without anyone typing them again.
5. Compare estimated to actual on every job
This is the feature that makes the other five pay off. You should be able to record what each part of the job actually cost against what you estimated, and see the variance, so your production rates improve every season. The actual numbers are only as good as the time capture behind them, so get crews recording hours on every job.
Test it: complete a job that ran long, enter what it really cost, and find the variance on the job record.
6. Handle recurring maintenance, not only one-off installs
Maintenance contracts need visits that generate on a schedule, not 30 visits entered by hand.
Test it: set up a weekly visit for a full season and look at the calendar.
A note on takeoff and measurement tools
If you bid commercial work from plans, or you measure properties from aerial imagery, you need a takeoff or measurement tool. Those tools are good at measuring. Most of them stop at the number, though. They don't schedule the crew, capture actual cost, or tell you whether the bid held up. Know which half of the problem you're buying for.
Where FSM Navigator fits
FSM Navigator doesn't do plan takeoff or aerial measurement. It covers everything after the measurement, from bid to renewals. On the Pro plan:
- A pricebook. Keep your services, labor and materials in one list, priced each, per hour, per foot, per pound, per roll or by another unit you pick, so every estimator starts from the same numbers. The pricebook holds prices, not a markup field, so do the margin math above and set the prices to match.
- Quotes with options. Build a quote from pricebook items and give the customer two or three options, such as a basic cleanup, a cleanup with fresh mulch, and the full bed renovation.
- A yes in writing. The customer picks an option and signs the quote online, and you can ask for a deposit that they pay when they accept.
- No re-typing. An accepted quote turns into a scheduled job at the price and tax the customer agreed to.
- Did the bid hold up? Job profitability shows the margin on each finished job, so you can see which bids are priced right and which ones the crew keeps running over.
- Recurring maintenance. Recurring jobs generate weekly, biweekly or monthly visits, and a service agreement can schedule its own visits for the property and bill the contract fee monthly or annually.
- Photos. Crews attach photos to the job record from the mobile app.
For multi-phase projects, the Enterprise plan adds work orders: an estimate built from itemized labor and parts lines on each step, approval in the customer portal, templates that prefill each step's hours, priority and SLA, and budget tracking that rolls estimated and actual cost into a variance. An accepted quote can also become a work order on Enterprise.