Job Costing for Trim Companies: What to Track (and What to Do With It)
By Nicholas Dunn · August 13, 2026 · 6 min read
TL;DR
Job costing is just estimated vs actual hours and dollars on every active job, captured every Friday in a simple sheet. Track direct labor, material at cost, subs, equipment, vehicle, and a flat overhead allocation per labor hour. Use the data to do a post-mortem on every finished job, build a bid multiplier by job type, and stop chasing the work that loses you money.
Most trim company owners I talk to don't job cost. They bid by feel, they look at the bank balance at the end of the month, and they assume if there's money in the account the jobs must have been profitable. Then a slow month hits, or a bad job hits, and they have no idea which type of work to chase next or which to walk away from.
Job costing isn't accounting. It's the simplest tool you have for figuring out which jobs make you money and which ones quietly bleed you. Here's the version that actually works for a trim company.
Why should trim companies do job costing?
Because without it, you're bidding the next job with the same instincts that may have lost you money on the last one, and you don't even know it. A trim company that doesn't job cost has margin that swings thirty points from job to job, an owner who can't tell you which job types are profitable, and a bid process that's basically a guess dressed up in a spreadsheet.
The reason owners avoid it is honest: it feels like office work. You got into this trade to run trim, not to track receipts. I get it. But the owners I coach who started job costing — even badly — within ninety days started saying things like "I'm not bidding any more crown-only jobs in finished basements" or "stairs are where I actually make money." That kind of clarity is worth one hour a week.
If you haven't read it yet, the companion piece to this one is why trim companies underprice their work. Underpricing is usually a symptom of not knowing your real costs. Job costing fixes the input.
What's the simplest job-costing setup?
One Google Sheet per active job. That's it. A tab for the estimate, a tab for actuals, and a summary row at the top that shows the variance. A simple sheet you fill in every Friday beats a half-implemented job-costing app you log into twice a year.
Here are the categories I track on every job:
- Direct labor hours — clocked to the job, by employee, with their fully loaded hourly cost (wage plus payroll tax plus workers comp plus benefits).
- Material at actual cost — what you paid the supplier, not list price, not what you billed the client.
- Sub costs — anything you paid another trade or specialty installer for.
- Equipment and tools allocation — a flat percentage of revenue or a per-job figure to cover wear, blades, bits, sandpaper, and tool replacement.
- Vehicle and fuel allocation — same idea, a flat per-day or per-job figure based on your actual monthly vehicle spend.
- Shop and admin overhead — your monthly fixed costs divided by your total billable field hours per month, applied as a dollar figure per labor hour on the job.
That's six lines. You don't need more. You don't need less.
How to allocate overhead without overthinking it
This is where owners get stuck. Don't. Add up rent, insurance, vehicle payments, fuel, phone, software, tool replacement, and any office help. Divide by the total billable field hours your crew puts in during an average month. That gives you a per-hour overhead number. Add it to every direct labor hour on every job. Recheck the figure once a quarter. Done.
The Friday afternoon habit
Every Friday, before anyone leaves, you (or your lead) sits down for twenty minutes per active job and updates the sheet:
- Hours in from the week's time sheets, by employee.
- Material receipts in from the truck and the email inbox.
- Sub invoices in if any came through.
- Compare running totals to estimate. Flag any line that's tracking over.
If you have three active jobs, that's an hour. If you have ten, that's a half-day and you need someone helping you. Either way, it's the most leveraged hour you'll spend that week, because it's the only hour where you'll catch a job sliding before it's too late to do anything about it.
What do I do with the data?
Tracking numbers you never use is a waste of time. Here's what the data is actually for:
1. Post-mortem on every finished job
Within a week of final invoice, sit down with the sheet for ten minutes. Compare estimated to actual on every line. Write one sentence next to each variance explaining why. "Underestimated stair install by twelve hours — didn't account for site-built skirt." That's it. Do this for a year and you'll have a notebook full of bidding lessons you didn't have before. The same discipline applies to how to price built-ins — a category where the variance between estimate and actual is brutal until you've costed five or six of them.
2. Build a bid multiplier table by job type
After ten or fifteen jobs of a given type — base and case, crown, wainscot, built-ins, stairs, full custom millwork — you'll see a pattern in how badly you estimate that category. Build a simple table. "Crown in finished homes: multiply gut estimate by 1.25." "Standalone built-ins: multiply by 1.4." This is the difference between bidding by feel and bidding from data, and it's the single highest-leverage change you can make. If you want a deeper read on how this shows up on paper, see how to read a trim carpenter bid.
3. Fire job types that consistently lose
This is the hard one. If a job category loses money three times in a row, stop taking it. Don't tell yourself the next one will be different. Either raise the price until builders stop saying yes, or refer it out. Your business gets better the day you stop subsidizing work that doesn't pay.
When do I graduate from a sheet to a real app?
When the sheet becomes the bottleneck. Usually that's around ten active jobs or three field crews. At that point, you want time tracking, material logging, and job-cost reporting all in one place, ideally tied to your accounting. Until then, the sheet is faster, cheaper, and more flexible. Don't buy software to solve a discipline problem.
Bottom line
Job costing isn't complicated. It's six categories, one Friday afternoon a week, a ten-minute post-mortem on every finished job, and the willingness to act on what the numbers tell you. The owners who do this consistently stop bidding scared, stop chasing the wrong work, and stop being surprised by their own margins. The ones who don't keep guessing — and keep wondering why some years are good and some are bad without ever knowing which jobs made the difference.
If you want help setting up the sheet, building your overhead number, or pressure-testing your bid multipliers against your actual data, that's exactly the kind of thing I work on with owners. Book a free Discovery Call and we'll look at your numbers together.
About the Author
Nicholas Dunn is a finish carpenter and the founder of Dunn Trim Co., with the better part of a decade at the saw. He helps homeowners, designers, architects, contractors, and trim companies get finish carpentry right. More about Nicholas →