Industry

Bookkeeping for plumbing, electrical, landscaping, pest control and handyman businesses

Job costing, dispatch efficiency, materials markup, seasonality and customer deposits, explained for home service business owners across trades.

The short answer

  • Home service businesses live and die on job-level gross margin. Company-wide totals hide which jobs, crews or service lines are actually profitable.
  • Materials should be marked up and tracked separately from labor so a bookkeeper, and the owner, can see whether pricing is covering both cost and margin.
  • Customer deposits taken before work starts are a liability, not revenue, until the job is delivered.
  • Seasonality is real for landscaping and pest control especially. Monthly numbers need a rolling comparison, not just month-over-month, to mean anything.

Job costing across different trades

Whether it is a plumbing repair, an electrical panel upgrade, a landscaping install or a pest control route, every job should carry its own materials, labor and any subcontracted cost. That is the only way to compare a $180 service call to a $12,000 install on the same footing: gross margin percentage.

  • Materials get marked up on the invoice and tracked separately from labor cost
  • Dispatch and drive time count as labor cost, even though they are not billed to the customer
  • Recurring routes (pest control, lawn care) should be tracked by contract, not just by visit
  • Subcontracted specialty work (electrical on a landscaping job, for example) gets its own cost line

Deposits and progress payments

A deposit taken to schedule a landscaping install or reserve a busy plumbing crew is a liability until the work is done. Recording it as revenue the day it is collected overstates that month and can trigger sales tax on money that has not actually been earned yet.

Materials markup that actually pays for itself

Materials bought for a job should be marked up enough to cover the time spent sourcing, storing and hauling them, not just passed through at cost. We track materials revenue against materials cost separately from labor so you can see whether your markup is working.

Dispatch efficiency and seasonality

For route-based trades like pest control and lawn care, and for on-call trades like plumbing and electrical, the real cost driver is how much of a paid hour turns into a billed hour. We track labor cost against billed revenue by week so seasonal swings in landscaping or pest volume do not get mistaken for a pricing problem.

What LedgerDude does each month

We job cost materials, labor and subcontractors by job or route, hold customer deposits as a liability until work is delivered, and send a gross margin by service line report with a rolling 12-month comparison so seasonal trades can see real trends.

Numbers worth watching

Each one is plain math you can check yourself.

NumberHow to figure itGood rangeWhy it matters
Gross margin by job or route(Job revenue − materials − labor − subs) ÷ job revenue35–50% depending on tradeThe clearest read on which service lines and job types to sell more of.
Materials markup realizedMaterials billed to customer ÷ materials cost1.3–1.6× costShows whether your price book is actually covering the overhead of handling materials.
Billable hour ratioBilled hours ÷ hours paid60–75%Drive time, dispatch gaps and callbacks all show up here before they show up in profit.
Recurring contract revenue shareRecurring contract revenue ÷ total revenue30%+ for route-based tradesRecurring revenue smooths seasonal swings and is worth more than one-off jobs of the same size.

Typical results we see

Gross margin

41%

Typical range across the home service businesses we support, varies widely by trade

Materials markup

1.4×

Lower on commodity parts, higher on specialty landscaping materials

Billable hour ratio

66%

Route-based trades typically run higher than on-call service

Recurring contract share

27%

Highest for pest control, lowest for handyman services

A multi-trade home service company's month

Plumbing and electrical service revenue
$58,000
Landscaping install revenue
$34,000
Pest control recurring contracts
$12,500
Total revenue
$104,500
Materials and equipment cost
$28,900
Field labor including employer taxes
$36,200
Gross profit
$39,400 (37.7%)
Overhead (trucks, office, insurance, marketing)
$22,600
Net income
$16,800 (16.1%)

What this tells you: The landscaping division alone was running a 29 percent gross margin, below the company's 35 percent target, mostly from underpriced material markups on hardscape jobs. Adjusting the price book for stone and pavers closed most of the gap on the next round of estimates.

What you see inside LedgerDude

Your numbers on one page, refreshed as your books are closed each month.

LedgerDude client dashboard showing monthly income, expenses, cash on hand and open questions
The client dashboard, updated as your books are closed each month.

Real example

Handyman and landscaping company mixing deposits into revenue

Where they started: The company recorded customer deposits as income the day they were collected and did not separate materials cost from labor. The owner could not tell if handyman jobs or landscaping installs were more profitable.

What we did: We moved deposits to a liability account released when jobs were completed, split materials from labor on every job, and built a monthly gross margin report by service line.

How it ended up: The owner discovered handyman jobs were carrying a higher margin per hour than landscaping installs and shifted marketing spend accordingly.

$18,400 moved off revenue into liability

Deposits reclassified

First job-level margin report

Margin visibility

5 business days

Time to close

I was guessing which jobs to chase before. Now I know.
Owner, multi-trade home service company

How we set up your accounts

The accounts we build first for this kind of business, so reports read the way you think.

  • Revenue split by trade or service line (plumbing, electrical, landscaping, pest, handyman)
  • Customer deposits (liability) released to revenue when work is completed
  • Materials cost tracked separately from field labor, by job
  • Recurring contract revenue tracked apart from one-time project revenue
  • Subcontracted specialty labor tracked per job

Questions people ask

How much does bookkeeping cost for a home service business?

Most home service businesses with one to five crews pay $350 to $750 a month for bookkeeping with job costing and a monthly close. Companies running multiple trades or recurring contract routes typically run $800 to $1,500.

Should a customer deposit be recorded as income right away?

No. A deposit taken before work is performed is a liability until the job is delivered. Recording it as revenue immediately overstates that month and can create sales tax problems on money you have not yet earned.

How do I know if my materials markup is high enough?

Track materials billed to customers against materials cost as its own ratio, separate from labor margin. Most home service businesses need at least a 1.3 to 1.6 times markup to cover the time spent sourcing, storing and hauling materials.

Why does my landscaping or pest control business look unprofitable in some months?

Seasonality is normal for these trades. Compare each month to the same month last year and use a rolling 12-month view instead of judging any single month on its own.

Should recurring contracts be tracked differently than one-time jobs?

Yes. Recurring contract revenue, such as pest control routes or lawn maintenance plans, should be tracked separately so you can see what share of revenue is stable and predictable versus one-off project work.

Keep reading

Want your books handled for you?

We read your receipts, match your bank activity, and close your books every month. You get one short list of questions and a dashboard that always tells the truth.