Shop Rate vs Actual Cost: Are You Recovering What You Think?

The Month-End Number Nobody Wants to See
The job closed profitable on the quote. Same job, same press, same substrate — but when the actual hours and actual materials get logged against it, the margin has quietly shrunk by half. Nobody fat-fingered anything. The plate cost was right. The waste percentage was reasonable. The only thing that moved was the number underneath everything else: the shop rate the quote was built on doesn't match what the press actually costs to run anymore.
This is one of the quietest ways margin disappears in a label shop, because nothing on the surface looks wrong. The estimate followed the process. The rate came from a spreadsheet somebody built a while back and everyone still trusts. But a budgeted hourly rate is only as good as the assumptions baked into it, and those assumptions age. Headcount changes. Overhead creeps. A press that used to run 1,800 hours a year now runs 1,500 because changeovers eat more of the schedule than they used to.
By the end of this piece, you'll be able to check whether your own shop rate still recovers your actual cost — and know exactly which number to recalculate first if it doesn't.
Two Different Numbers Wearing the Same Name
"Shop rate" gets used loosely, but it's really two separate calculations that are supposed to agree with each other and often don't.
The budgeted hourly rate is a forecast: take a press's annual overhead and allocated labor, divide by the hours you expect that press to run, and you get a rate per hour to load into every quote. It's built once, usually at budget time, and then used all year regardless of what actually happens on the floor.
The actual cost per hour is a fact: take the same overhead and labor — as it actually landed, not as forecast — and divide by the hours the press actually ran. It can only be calculated after the fact, once real data exists.
When these two numbers are close, your recovery is healthy: the rate in your quotes is a decent proxy for reality. When they diverge — and they will, given enough time — every quote priced off the budgeted rate is silently over- or under-recovering, and nobody notices until the estimated-vs-actual job costing report says so.
How a Budgeted Hourly Rate Gets Built — and Why It Drifts
The mechanics of a budgeted hourly rate are straightforward: total the cost center's annual overhead (rent allocation, utilities, insurance, depreciation on the press) and its allocated labor, then divide by budgeted run hours for the year. The result is a rate you load onto every job quoted against that press, on top of materials and tooling.
The drift happens because the two halves of that fraction move independently, and usually in the same unhelpful direction. Overhead tends to only go up — a new press payment, a rent increase, an added shift supervisor. Budgeted hours, meanwhile, get set once and rarely revisited even as the job mix shifts toward shorter runs with more changeovers eating into available capacity. The rate calculated a year or two ago keeps getting used because rebuilding it feels like a project, not because anyone believes it's still accurate.
This is exactly the mechanism behind a lot of what shows up in margin erosion analyses at label shops: not one bad decision, but a rate that quietly stopped matching cost months before anyone reran the math.
A Worked Example: Comparing Budgeted Rate to Actual Cost
Here's a simplified, round-number version of the calculation to make the mechanism concrete — not a claim about what your press costs, just the arithmetic.
Say a cost center's annual overhead plus allocated labor totals $180,000, and the shop budgeted 1,800 hours of run time for that press this year. The budgeted hourly rate is:
$180,000 ÷ 1,800 hours = $100/hour
That's the number loaded into every quote against that press.
Now suppose the press actually only ran 1,500 hours — more changeovers, more short-run jobs, a few unplanned days down. The overhead didn't shrink just because the press ran less; fixed costs like rent and insurance don't scale down with idle time. So the actual cost per hour is:
$180,000 ÷ 1,500 hours = $120/hour
The gap — $20 per hour — is quiet under-recovery. Every hour billed at the $100 rate is $20 short of what that hour actually cost the shop. On a job that consumes six press hours, that's $120 of margin that never existed, no matter how carefully the plate cost and waste percentage were estimated.
Labor is part of that $180,000, and it's worth anchoring to something real rather than a guess: the U.S. Bureau of Labor Statistics puts the mean wage for printing press operators at $21.37 per hour as of May 2023 (BLS OEWS). That's a wage figure, not a fully loaded shop rate — burden, overhead and benefits still sit on top of it — but it's a useful sanity check when a budgeted labor line looks disconnected from what press operators are actually paid in your market.
Reading the Gap Across Cost Centers, Not Just One Press
The same math applies press by press, and it rarely applies evenly. An older conventional press with a fully depreciated frame carries a different overhead load than a newer digital press still on a capital schedule — which is exactly why cost-center rate calculation treats each machine as its own P&L rather than applying one shop-wide rate to everything with an ink station.
A single blended shop rate is a convenience for the spreadsheet, not a reflection of what any one press actually costs to run.
FlexoCommand's press configuration loads a distinct hourly rate and overhead allocation per press, so the flexo quoting engine prices a job against the actual cost structure of the machine running it — not a shop average that happens to fit some presses better than others.
When to Reset the Rate — and What Happens If You Don't
The fix isn't complicated, but it does require discipline: recalculate the budgeted rate on a regular cadence — annually at minimum, sooner if overhead or run-hour assumptions shift materially — and compare it against actual cost as real job data accumulates. How to calculate a budgeted hourly rate walks through the full build; the harder habit is actually rerunning it instead of trusting last year's number by default.
The check itself depends on having estimated-vs-actual data to check against. FlexoCommand's job costing captures the estimated cost at quote time and the actual cost once the job runs, so the recovery gap — the same $20/hour drift from the worked example above — shows up as a variance on the job rather than a surprise at month-end. Looking ahead, dual-granularity press scheduling is planned to add visibility into how actual run hours track against budgeted hours in real time, closing the loop between the two numbers even faster.
Until then, the discipline is manual but not hard: pull actual hours and actual overhead quarterly, run the same division you did at budget time, and see if the two rates still agree. If they don't, the quote you send out tomorrow is already wrong — you just don't know by how much yet.
Start with the budgeted hourly rate & cost-center rate builder template to run this comparison for your own presses.
Get the next guide in your inbox
Flexo estimating guides and digital press cost breakdowns, when we publish them.