Guides / Bidding

How to bid a landscape maintenance contract

A maintenance bid is mostly a labor estimate. Get the crew hours right, load them with your real labor cost, and the price follows. This is the method SodSum uses, so you can check every number it gives you.

1. Measure the property by task

Each task runs at its own speed, so measure it in its own unit: turf in square feet, hard and soft edges in linear feet, beds in square feet, hedges as surface area, shrubs and trees by count, mulch in cubic yards. NALP's sample rates sheet notes, for example, that hedge surface area is length × height × width plus the ends, and that blower area can be estimated as hard-edge linear feet × 3 feet (NALP).

2. Turn quantities into hours

Hours = quantity ÷ production rate (units per hour). A 52–61 inch rider at NALP's moderate rate of 57,500 sq ft per hour mows 2 acres (87,120 sq ft) in about 1.5 hours. NALP's mowing rates include unloading and loading the equipment (NALP). Mower makers publish acres-per-hour charts by deck width and speed too, usually at 100% and 80% efficiency (Exmark); a rate from your own crew beats both.

3. Add drive time and supervision

Drive time between properties is paid time for every person in the truck: drive minutes ÷ 60 × crew size. If a lead spends part of the visit checking work, add a supervision percentage. That gives crew hours per visit; divide by crew size for time on site.

4. Add seasonal work

Mulch, hedge shearing, pruning, fertilizer and irrigation checks happen a few times a year. Seasonal hours per year = quantity ÷ rate × times per year. Add them to visit hours × visits per year.

5. Load the wage and add materials

Loaded rate = wage × (1 + burden %), where burden covers employer payroll taxes, workers' compensation and benefits. For reference, the BLS reports a May 2025 median of $18.82 per hour for landscaping and groundskeeping workers (BLS); use what you actually pay. Add materials such as mulch and fertilizer as dollars per year or as a percentage of labor.

6. Set overhead and profit as a share of price

  • Break-even = direct cost ÷ (1 − overhead %).
  • Price at target = direct cost ÷ (1 − overhead % − profit %), then divide by billing months for the monthly price.

Direct cost is loaded labor plus materials. Adding a markup to cost instead of dividing by (1 − %) leaves you below your target profit.

7. Check the quote you plan to send

Compute your profit at the price you will actually quote, then ask what happens if the crew is 10% slower. If that already puts you near zero, the bid is fragile.

Worked example

This is the sample bid built into the calculator. The quantities and percentages are illustrative; replace them with yours.

Every visitQuantityRate / hrHours
Open turf, 52–61" rider87,120 sq ft57,5001.52
Hard edges1,800 lin ft9,0000.20
String trimming900 lin ft1,5000.60
Blow walks5,400 sq ft25,0000.22
Bed detail6,000 sq ft6,0001.00
Trash pickup, light120,000 sq ft80,0001.50

That is 5.03 hours of work. Add 15 minutes of drive time for a 2-person crew (0.5 hours) and 5% supervision: 5.81 crew hours per visit, about 2.90 h on site. Over 30 visits plus seasonal mulch, hedges, pruning, fertilizer and irrigation checks, with an $18.82 wage, 20% burden, $1,500 a year of materials, 20% overhead and a 12% profit target, the calculator gives a break-even of $682 and a recommended price of $805 per month over 12 months. If the crew runs 10% slower, profit at that price falls to 6.4%. Open the calculator and load the sample bid to see every line.

Estimates are only as good as the inputs. Time your own crews on similar properties and use those rates when you have them.