Profit basicsSeptember 30, 2026 · 3 min read

Direct vs Indirect Costs: What's the Difference for Contractors?

Timber and crew hours sit on the job. Rent, dispatch, fleet, and insurance sit above it. Here is how to assign every cost on one fence installation, spread overhead by labor hour, and catch the gap when the hours you planned never get worked.

Griffin Velichko
Co-founder & CEO, Barry

A direct cost ties to one specific job. An indirect cost supports several jobs or the whole business. In a trades or home-services business, the timber and the crew hours on a fence installation are direct. The rent, the dispatcher, the trucks, and the insurance are indirect. Every job still has to carry a share of that second pile.

Cost tickets route either to one job or across the businessCOST RECORDINVOICEDIRECTJOB 104INDIRECTSHAREDDIRECT / INDIRECTFIG. 05THE TOOLBOX BRIEFILLUSTRATIVE ONLYSCALENTS05DIRECT COSTS BELONG TO ONE JOB.INDIRECT COSTS ARE SHARED.

What's the difference between direct and indirect costs?

An expense belongs on a job when you can tie it to that job without guessing. Timber, the crew hours worked on site, and a subcontractor invoice naming that address all tie to one fence. Office rent and general liability insurance do not. They keep the whole company running.

Cost on the fence jobDirect or indirectWhy
Timber, posts, and fastenersDirectBought for this fence, used on it.
Crew hours on siteDirectWorked on this fence, recorded against it.
Post-hole subcontractor invoiceDirectThe invoice names this address and scope.
Dispatch and office staffIndirectThe same people scheduled eleven other jobs.
Shop and office rentIndirectThe building supports every job.
Truck payments, fuel, and fleet insuranceIndirect, usuallyShared. A truck parked on one project all month can be coded direct.
General liability insuranceIndirectCovers the company, not one fence.
One defensible way to code a fictional fence installation.

Get this backwards and a service line lies to you. Bury one line's direct costs — a salaried repair tech's wages, say — in the overhead pool and those wages spread across every job in the company. The line that caused them looks profitable while every other line quietly pays for it.

Accounting classifications legitimately vary between businesses, so treat yours as one defensible choice, apply it consistently, and settle it with your bookkeeper so nothing is counted twice.

How do you allocate overhead to a job?

Overhead is the pile of indirect costs your jobs have to cover. One common method spreads it by labor hour. Take the monthly business overhead total, divide it by the productive labor hours you expect, and charge each job that rate for the hours it uses.

Say a fictional fence company carries $6,000 a month of overhead and expects 600 productive labor hours.

$6,000 ÷ 600 hours = $10 of overhead per hour

A 30-hour job carries $300 under that method. Price the fence at $5,000 with $3,000 of direct costs and $2,000 is left over. Take out the $300 of overhead and the job contributes $1,700 to the business.

What if you do not hit the hours you planned?

The rate only works if the hours show up. Complete 400 productive hours instead of 600 and the real rate is $15, not $10. The 30-hour fence should have carried $450 and carried $300. Repeat that all month and you are $2,000 short.

That $2,000 is the most useful number on this page, and it appears on no single job. Every job looked fine on its own sheet, priced with $10 an hour in it. The shortfall shows up only when you divide actual overhead by the hours you actually completed.

Two things cause the gap. If the overhead total climbed, cut overhead. If the productive hours fell — rain days, drive time, hours never recorded against a job — the forecast was wrong. Re-rate before the next estimates go out, not after.

  1. Put the job on every purchase

    Job name on the receipt at the counter. Uncoded receipts become overhead by default.

  2. Record field hours the same day

    Every crew hour lands on the job it was worked on, not Friday's memory.

  3. Recheck the rate every month

    Divide last month's actual overhead by the hours actually completed. Requote if it drifted.

  4. Close each job out

    Catch dump fees, second trips, and change orders in the job costing review.

Three ways to handle this

There are three practical ways to do this: use a spreadsheet, ask your accountant or bookkeeper, or connect your tools so Barry AI can match job costs, apply your overhead method, and show what the job left for the business.

Barry, total the direct costs for my latest completed job from connected records. Show unassigned costs and ask me which overhead method to use before calculating the amount left.
Sign up, connect your tools, and ask Barry for your answer.
Already using Barry — send it onWhatsAppTextTelegram

Frequently asked questions

What is the difference between a direct cost and an indirect cost?
A direct cost ties to one specific job without guessing — the timber on a fence, the crew hours worked on it, a subcontractor invoice naming that address. An indirect cost supports several jobs or the whole company: office rent, dispatch staff, general liability insurance, and a truck that visits four sites a day.
Is labor a direct or indirect cost?
Field labor worked on a specific job is direct, as long as the hours are recorded against that job. Office and dispatch wages are indirect. A salaried person who splits time between the field and the shop is the hard case: pick one treatment, apply it every month, and agree it with your bookkeeper so the wages are not counted twice.
How do I allocate overhead to a job?
One common method divides monthly overhead by the productive labor hours you expect. Six thousand dollars over 600 hours is $10 per hour, so a 30-hour job carries $300. Other businesses allocate by revenue or by direct cost instead. All are defensible. Choose one and apply it consistently.
What happens if my crew works fewer hours than I planned?
Your real overhead rate goes up and the jobs you already quoted are carrying too little. Six thousand dollars across 400 completed hours is $15 an hour, not the $10 you priced with, so a 30-hour job should have carried $450. Recheck actual overhead against actual hours every month and re-rate before the next estimates.

Keep reading

— Issued for construction —

Get Barry onyour sites.

Start Free Trial
Taking you to sign-up…

No new app for the crew.