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.
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:
Add those up across a year and the thin bank account stops being a mystery.
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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.