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.
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 job | Direct or indirect | Why |
|---|---|---|
| Timber, posts, and fasteners | Direct | Bought for this fence, used on it. |
| Crew hours on site | Direct | Worked on this fence, recorded against it. |
| Post-hole subcontractor invoice | Direct | The invoice names this address and scope. |
| Dispatch and office staff | Indirect | The same people scheduled eleven other jobs. |
| Shop and office rent | Indirect | The building supports every job. |
| Truck payments, fuel, and fleet insurance | Indirect, usually | Shared. A truck parked on one project all month can be coded direct. |
| General liability insurance | Indirect | Covers the company, not one fence. |
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.
- Put the job on every purchase
Job name on the receipt at the counter. Uncoded receipts become overhead by default.
- Record field hours the same day
Every crew hour lands on the job it was worked on, not Friday's memory.
- Recheck the rate every month
Divide last month's actual overhead by the hours actually completed. Requote if it drifted.
- Close each job out
Catch dump fees, second trips, and change orders in the job costing review.
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.
