Pricing & Profitability

Job Costing for Landscaping Businesses: How to Know Which Jobs Actually Make Money

Most landscaping owners price by gut feel. Here is how to run real job costing so you know which jobs actually make you money and which ones lose it.

Tinylawn Editorial · Field service operations research ·
Job Costing for Landscaping Businesses: How to Know Which Jobs Actually Make Money
Table of Contents

Ask most landscaping owners how much profit they made on their last patio install and you’ll get some version of: “I think we did alright on that one.”

They don’t actually know. They know what they charged. They know the customer paid. They don’t know — line by line — what the job cost to deliver. And when you don’t know what a job cost, you don’t know if you made money, lost money, or just recycled cash through the business.

That gap between “revenue” and “profit” is where most small landscaping companies quietly bleed out. You can gross $1.2M and take home less than a crew lead if your pricing is off by 10% across a couple hundred jobs.

Job costing is the practice of tracking what each job actually costs to deliver — labor, materials, equipment, subs, overhead — so you can see the profit (or loss) on every job. It’s not complicated. Most landscaping businesses just don’t do it.

Here’s how to start.


Why this matters more than you think

Landscaping margins are tighter than most owners realize. Industry benchmarks put typical gross margins in the 40-55% range for maintenance work and 30-45% for design-build, with net margins usually between 5-15% after overhead.

That means if your pricing is off by even 5%, you can turn a profitable job into a losing one. And since most owners are pricing by gut — “this job should be around four grand” — the variance from job to job is huge.

Without job costing, you can’t answer any of these questions:

  • Which services make the most margin per crew hour?
  • Which customers are profitable and which ones are draining me?
  • Are we actually making money on commercial maintenance or just filling the route?
  • Is that new crew as productive as the old one, or is labor cost eating the difference?
  • Should I bid this next project higher, lower, or walk away?

You’re running a business blind. And it shows up as cash flow problems, year-end tax bills you didn’t expect, and a bank account that never seems to grow no matter how busy you are.


The four buckets every job cost lives in

Every dollar that goes into delivering a job fits into one of these:

1. Direct labor. The hours your crew spends on the job, multiplied by their fully loaded labor rate (not just their wage — more on that below). Travel time to and from the job site counts. Setup and cleanup counts.

2. Direct materials. Plants, mulch, pavers, sod, fertilizer, sprinkler heads, hardware — anything consumed by or installed on this specific job. Track it to the job the moment it’s purchased or pulled from inventory.

3. Equipment and subcontractors. Fuel, equipment wear costs (if you allocate), dump fees, rental equipment for this job specifically, and any sub costs (electrician, mason, tree climber) billed through you.

4. Overhead allocation. A share of your fixed costs — office rent, insurance, truck payments, software, your own time running the business. This is the part most owners skip. More on how to handle this below.

Revenue minus buckets 1-3 = gross profit on the job. Revenue minus all four = net profit on the job. Both matter, but gross profit per job is where pricing discipline lives.


The labor rate mistake

This is the single biggest error small landscaping owners make. They calculate job cost using their crew’s hourly wage. That number is wrong by about 40-60%.

A crew member you pay $22/hour doesn’t actually cost you $22/hour. You also pay:

  • Payroll taxes (FICA, FUTA, SUTA): ~8-10%
  • Workers’ comp: 4-10% for landscaping, higher for tree care and hardscape
  • Liability insurance: 2-4%
  • Health insurance, benefits, PTO: varies wildly, often 10-20%
  • Non-billable hours: shop time, driving between jobs, training, weather days — typically 15-25% of paid hours don’t produce billable work

Add it up. That $22/hour employee probably costs you $33-38/hour in true labor cost when you account for everything. That’s your fully loaded labor rate, and it’s what you should use for job costing.

If you’re pricing jobs based on a $22/hour labor number, you’re underpricing by about 50% on the labor line. On a job with 40 crew hours, that’s $600 of profit you never saw.

Calculate your fully loaded rate once per year. Use it for every job cost calculation going forward. Revisit when you change pay rates or health benefits.


A simple job cost structure that actually works

You don’t need expensive software to do this. A spreadsheet works. What matters is the structure. For each job, track:

JOB: 1234 Oak Street - Patio + Walkway
BID: $12,400

DIRECT LABOR
  Crew hours: 72 @ $36/hr loaded = $2,592
  Owner/supervisor: 4 @ $65/hr = $260
  Subtotal labor: $2,852

MATERIALS
  Pavers (3 pallets): $1,480
  Base stone (8 tons): $360
  Sand (2 tons): $95
  Edging, polymeric sand, misc: $240
  Subtotal materials: $2,175

EQUIPMENT & SUBS
  Mini-excavator rental: $450
  Dump fees: $180
  Fuel allocation: $85
  Subtotal equipment: $715

TOTAL DIRECT COST: $5,742

GROSS PROFIT: $12,400 - $5,742 = $6,658
GROSS MARGIN: 53.7%

That’s it. Every job gets this sheet. Every. Job. Even the small ones — the $400 cleanups tell you something too.

You’ll find patterns fast. You’ll discover that one of your “good” recurring customers is actually a margin drain because the drive time eats the crew hours. You’ll discover that hardscape jobs over $15K have materially better margins than smaller ones. You’ll discover that one crew consistently runs 20% more hours than another on similar jobs.

That’s the information you’ve been missing.


How to handle overhead

There’s an ongoing argument in the landscaping world about whether to allocate overhead to individual jobs (a full absorption costing model) or just track it as a monthly line and make sure gross profit covers it.

For most small landscaping businesses, the simpler model works better:

  1. Track gross profit per job (revenue minus direct labor, materials, equipment, subs).
  2. Track total overhead per month separately (rent, insurance, office, admin, your salary if you pay yourself, truck payments, software, etc.).
  3. Your gross profit from all jobs needs to exceed your monthly overhead to be profitable.

To figure out how much gross margin you need per dollar of revenue to cover overhead, divide your annual overhead by your annual revenue. If overhead runs $200K and revenue runs $1M, your overhead burden is 20%. Any job with gross margin under 20% is costing you money after overhead.

Most landscaping businesses target 40-50% gross margin on maintenance and 35-45% on install work to have enough cushion above overhead to produce a real net profit.


Tracking it without losing your mind

The hardest part of job costing isn’t the math — it’s the discipline of collecting the data every day. If you don’t capture hours and material costs while the job is happening, you’ll never piece it together from memory.

The systems that actually get used tend to share these traits:

Crew logs hours by job, not just by day. Your crew clocks in and out against a specific job number. Timesheets with just “8 hours Tuesday” are useless for job costing. You need “3 hours on Job 1234, 4.5 hours on Job 1237, 0.5 hours driving” level of detail. Field service apps (Jobber, ServiceTitan, Arborgold) make this easier, but a paper log works too.

Materials get coded to the job at purchase. When you’re at the supply yard, write the job number on the receipt. When you pull pavers from inventory, note it. A stack of uncoded receipts at month-end is how material costs get lost.

Equipment and subs tracked in real time. Rental receipts, dump tickets, sub invoices — all coded to the job before they hit the pile on your desk.

One person reviews costs weekly. Job costs go stale fast. If you’re reviewing them 60 days after the job is done, the memory of what actually happened is gone. A 15-minute review every Friday keeps the data fresh.


What to do with the information once you have it

Job costing isn’t a spreadsheet exercise — it’s a decision-making tool. Once you have 20-30 completed jobs costed, start asking:

Which services make the best margin per crew hour? A $2,000 mulch install might have the same gross profit as a $600 lawn treatment, but the treatment takes 1 hour and the mulch takes 12. Margin per crew hour is often the real metric.

Which customers are profitable? Group your maintenance customers by annual revenue and gross margin. You’ll find some paying $3,000/year at 60% margin and some paying $4,500/year at 20% margin. The second group is almost always a drive-time or scope-creep problem.

Which crew is the most productive? Same job type, same materials — different crews. If Crew A does spring cleanups in 5 hours and Crew B takes 7, you have either a training gap or a management problem.

Where is your pricing wrong? Jobs that came in under your target margin fall into two buckets: you underpriced them, or something went wrong in delivery. Both are fixable once you see the pattern.


The bottom line

Job costing is the difference between running a landscaping business and hoping it runs itself. Most owners fly blind for years — growing revenue, staying busy, and wondering why the money never shows up in the bank account.

Start simple. One spreadsheet. Every job. Track labor (at loaded rates), materials, equipment, and subs. Calculate gross profit per job. Review weekly.

Within 90 days you’ll see patterns you’ve been missing for years. Within a year you’ll price with confidence, drop the wrong customers without flinching, and finally know — with numbers — which parts of your business are making you money and which are costing you.

The companies that grow past $500K and actually keep the profit all do this. The ones that stay stuck there usually don’t.


The full pricing & profitability series

This is the pillar post for our Pricing & Profitability cluster. Once you have job costing working, use the guides below to sharpen your bids, protect your margins, and stop competing on price alone.

Foundational — what every job actually costs you:

Bidding — how to quote jobs that protect margin:

Pricing by service:

Selling without competing on price:

Related: Why your $15K patio job went to your competitor · See Tinylawn pricing →