Job Costing for Cabinet Shops: What to Track on Every Job
A cabinet shop can be booked solid for six months and still finish the year with nothing to show for it. When that happens, the quotes usually aren't too low; the costs are invisible. Here's what to write down on every job, how to set a shop rate that covers the whole building, and the ten-minute habit that turns each finished job into a sharper quote on the next one.
In this article:
- The costs most shops track, and the ones that get eaten
- How job costing for cabinet shops actually works
- Set a shop rate that includes the building
- Expert Eagle Insight
- Run the make-or-buy math on components
- Turn last job's numbers into next job's quote
- Frequently asked questions
The costs most shops track, and the ones that get eaten
Every shop knows its material spend. Most know the hours they charged the customer. Those two numbers aren't where the money leaks.
The leak is everything that never gets a line on any tally:
- Your own bench time. In a one-to-five person shop, the owner's hours are the biggest untracked cost, and unpaid owner labor is how a job "makes money" while the year comes out thin.
- Overhead that gets absorbed instead of allocated. Rent, insurance, power, machine payments, and the truck all get paid, but no individual job ever carries its share of them.
- Rework. The remade door and the color miss go down as bad luck instead of a cost with a number attached.
- Drive time, site visits, and delivery. Two hours of windshield time per job disappears completely at most shops.
- Finishing. Spray, cure, sand, recoat. It runs past the estimate on nearly every job, and almost nobody writes down by how much.
Add those up across a year and the thin bank account stops being a mystery.
How job costing for cabinet shops actually works
One sheet per job. Paper on a clipboard or a single spreadsheet tab, whichever you'll actually keep up during a slammed week, because a system you abandon by March is worth nothing.
Each sheet carries seven line items:
- Materials, at what you actually paid, including the sheet that got cut wrong
- Bench hours, split by stage: milling and build, assembly, install
- Finishing hours, on their own line, because they drift the most
- Hardware and consumables: slides, hinges, fasteners, abrasives, blades, finish product
- Outside services: components you buy, CNC time you rent, anything subbed out
- Travel and delivery, including the site visits made before the job was even sold
- Rework, tracked separately so it stays visible instead of dissolving into the totals
The one rule that makes the sheet worth keeping: write things down the day they happen. Memory flatters the estimate, and a Friday reconstruction of Tuesday's hours comes in low every single time.
Set a shop rate that includes the building
Add up every cost you pay in a year whether or not you build a single cabinet: rent, insurance, utilities, machine payments and repairs, the truck, software, the dumpster. Say that comes to $66,000. Now divide it by your billable hours, and be honest about the denominator. A 2,000-hour year is not 2,000 billable hours. Quoting, cleanup, machine maintenance, material runs, and callbacks eat a third or more of it, so most small shops land somewhere between 1,100 and 1,400. At 1,200 billable hours, that $66,000 works out to $55 an hour in overhead before a single wage is paid.
Your own pay goes on top, entered as a cost like any lead builder's wage. If your salary is whatever's left in December, every quote you write this year is subsidized by it.
Expert Eagle Insight
Here at Eagle, we can't see a shop's rate sheet, but we hear the comparison get made - usually as "I can build that door for forty bucks in maple" against our quote. The shops that come back after running it honestly tell us the lumber number was never the real one. One practical note if you're running that math against an Eagle quote: shipping isn't included in the quoted price unless you request it, since freight varies with order size and is normally assessed at ship time. Ask for shipping in the quote so you're comparing full delivered cost against full in-house cost - and quotes are valid for 30 days, so the number holds while you finish the arithmetic.
The cost we most often see missing from the in-house side is the owner's own time, and setup is where most of it hides. Milling, coping, and panel raising each mean changeover, test cuts, and dial-in before the first good part comes off, and on a small batch those hours can rival the cutting itself - but because it's the owner doing it, none of it hits a tally. The labor estimate that gets penciled in is almost always the run time, so the job "overruns" by exactly the hours nobody wrote down. If your comparison shows in-house doors winning by a small margin, check whether setup and your own bench time are actually in the number before trusting it.
Run the make-or-buy math on components
Once your bench hours carry a real rate, one decision gets much clearer: which parts of a job deserve your bench at all.
Price a kitchen's worth of doors the way you'd price anything else. Material, plus every hour of milling, coping, panel raising, sanding, and hanging at your full shop rate, plus a remake allowance, because door remakes happen. Most owners have never run that number on their own doors, and it surprises nearly all of them. A door that "costs" forty dollars in lumber can cost three times that once the hours stop being free.
The comparison only means something against a supplier with a firm price and parts that drop in without fitting time on arrival. Getting a quote on custom cabinet doors takes a few minutes with a supplier like Eagle Woodworking, which builds to your exact dimensions, typically returns quotes within a couple of hours, and has no minimum order, so the math works on a single vanity as well as a full kitchen.
Sometimes the answer will still be build. If your doors are the reason customers find you, the bench time earns its keep. Job costing just puts real numbers under a decision that used to run on pride.
Turn last job's numbers into next job's quote
When a job wraps, give the sheet ten minutes. Put actuals next to your estimate on each line, and write one sentence about the biggest gap: finishing ran twelve hours over because the humidity stalled recoats, or install ate a day because the site measure missed a bulkhead.
Five or six close-outs in, the patterns replace gut feel. You'll see that finishing reliably runs twenty percent past your estimates, that small remodel jobs quietly lose money at your current pricing, or that your material waste is double what you've been quoting. Every one of those findings changes a number in your next bid.
Start the sheet on your next job
Don't try to reconstruct old jobs; the records are too thin and memory is too kind. Start clean on the next deposit: one sheet, seven lines, entries made the day the cost happens, ten minutes at close-out. By the end of a season you'll be quoting from your own records instead of your best guess. And when the sheet shows component hours costing more than they bring back, Eagle Woodworking builds custom cabinet doors and dovetail drawers to your specs, with fast turnarounds and an online ordering system that takes minutes.
Frequently asked questions
What's the simplest way to start job costing without buying software?
A printed sheet on a clipboard, one per job, with lines for materials, hours by stage, finishing, hardware and consumables, outside services, travel, and rework. Total it when the job wraps. A spreadsheet works just as well if that's more your speed. The tool matters far less than the habit of writing costs down the same day they happen.
What should a small cabinet shop's shop rate include?
Every cost you pay whether or not you're building: rent or mortgage on the shop, insurance, utilities, machine payments and maintenance, vehicle costs, software, and waste disposal, plus all wages including your own. Divide that total by realistic billable hours, not by hours spent at the shop. For most small operations the billable figure lands between 1,100 and 1,400 hours per person per year.
Should I count my own hours as an owner, and at what rate?
Yes, at no less than what you'd pay an experienced builder to replace you at the bench. Leaving your own hours off the sheet makes every job look profitable while the year's take-home says otherwise, because the gap gets covered by your unpaid labor. If the business can't pay you a real wage on a given job type, that's exactly the kind of thing job costing exists to reveal.
How much should I add for waste and rework when estimating?
Start with a placeholder and replace it with your own data as fast as you can. Many shops plan around ten to fifteen percent on sheet goods, but tracked numbers beat rules of thumb every time. Give rework its own line on the job sheet for five or six jobs, then use your actual percentage. Shops are routinely off by half in both directions until they measure.
How does job costing change the decision to outsource doors and drawer boxes?
It turns the decision into arithmetic. Compare the full in-house cost, meaning materials plus every bench hour at your complete shop rate plus a remake allowance, against a supplier's firm price plus freight. Then add one more factor: what the freed-up bench hours could earn on casework, installs, or an additional job. When all three numbers are on paper, the right call is usually obvious.

