Skip to content
WorkTickets.comTraveler & Job CostingWorkTickets.com home
Job Costing

Standard Costing for Job Shops: A Practical Setup

Rovaryn Digital7 min read

The quarter closes and nobody can say why margin moved

A shop runs forty jobs in a month. Quoting felt fine on all of them — the estimator has run similar parts before, the machinist eyeballed setup time, the number went out the door. Then the quarter closes and gross margin is down three points from last quarter, and nobody in the building can point to which jobs did it. Was it the batch of brackets that ran long because the fixture needed rework? The rush job where a wrong operator jumped on unfamiliar equipment? The customer who keeps ordering the same part at the same quoted price while material and labor quietly drift?

Without a standard to compare against, every one of those jobs looks the same in QuickBooks: revenue in, cost out, margin whatever's left. Standard costing for job shops solves a narrower problem than its accounting-textbook name suggests. It doesn't require a cost accountant or a chart of variance accounts. It requires one thing: a documented expected cost per operation, set once, checked often. This article lays out a practical way to build that standard directly from the routing you already write for every part — and what to do with the gap once actual time starts rolling in.

What standard costing actually means at this scale

In large manufacturing, standard costing is a formal accounting method — standards get set by engineering, costed by finance, and variances post to the general ledger every period. A five-to-fifty-person shop doesn't need that machinery, and trying to build it usually stalls the whole effort.

What the shop actually needs is smaller: for every operation on every routing, a standard time (and, where it matters, a standard cost) that represents what that operation should take under normal conditions. That number becomes the yardstick. Every job that runs against that routing logs actual time per operation, and the difference between standard and actual is the story — not an abstraction on a spreadsheet, but a specific, attributable number tied to a specific work center, a specific operator, a specific part number.

This is the same logic covered in more detail in job costing for machine shops and in the mechanics of standard time vs. actual time in manufacturing — this piece is about the setup work that has to happen before either of those comparisons means anything.

Anchor the standard on the routing, not the general ledger

The single most useful decision a job shop can make is to stop treating "standard cost" as a finance exercise and start treating it as a property of the routing. Every part number already has (or should have) a router: a sequence of operations, each assigned to a work center, each with a setup time and a run time. That router is the natural home for the standard.

Concretely, each operation line on the routing carries:

  • Standard setup time — the time to get the work center ready for this operation, independent of quantity.
  • Standard run time — time per piece (or per batch, depending on the operation), which multiplies out with quantity.
  • Work center burden rate — the fully loaded cost per hour of running that work center, covering labor and allocated overhead.

Multiply time by rate, operation by operation, and the routing itself produces a standard cost for the job — before a single actual hour has been logged. This is the foundation for per-operation job costing: the comparison only works if the standard lives at the same level of granularity as the actual, which means operation by operation, not job by job.

A worked example: rolling a standard cost from the routing

Here's how the arithmetic works for a single operation, using round numbers for the method rather than a real shop's rates.

Say a milling operation has a standard setup of 0.5 hours and a standard run time of 6 minutes per piece, for a batch of 40 pieces. That's 0.5 hours of setup plus (40 × 0.1 hours) = 4.0 hours of run time, for 4.5 standard hours on that operation.

Now apply a work-center burden rate. As an illustrative anchor, the U.S. Bureau of Labor Statistics puts the median annual wage for machinists and tool-and-die makers at $56,150 (May 2024) — call it a starting point for the labor component of a machining work-center rate before adding equipment depreciation, utilities, and shop overhead into the fully loaded number. If a shop rolls that up into an all-in burden rate of, say, $65/hour for that work center (a hypothetical, shop-specific figure — burden rates vary by equipment and region and should be built from a shop's own cost structure), the standard cost for that operation is 4.5 hours × $65 = $292.50.

That number goes on the routing before the job ever hits the floor. When the job runs, the actual clocked time — whether it's 4.5 hours, 5.2 hours, or 3.8 hours — gets compared against that same $292.50 baseline, operation by operation, not just at the end of the job.

Where the variance actually lives

Once actual time is logged against a standard, the gap has a name: this is where labor efficiency variance in manufacturing comes from, and it's worth separating into its components rather than treating it as one lump number.

  • Setup variance — did the operation take longer to set up than standard? This usually points at fixturing, tooling readiness, or an operator unfamiliar with the part.
  • Run-rate variance — did the per-piece time drift once the machine was running? This points at tooling wear, material inconsistency, or a program that isn't dialed in.
  • Downtime that isn't variance at all — waiting on material, waiting on inspection, or rework from a scrapped piece are real costs, but they're not the same failure mode as running slow. Logging them under distinct reason codes (setup, run, waiting, rework) keeps the standard-vs-actual comparison honest instead of blaming a machinist for a stockout.

The point of separating these is that "the job ran long" is not an actionable finding. "Setup ran 40 minutes over standard on this work center, on this part, for this operator" is something a shop can actually fix — retool the fixture, revise the standard, or retrain.

One-off jobs and repeat work need different standards logic

Job shops running mixed one-off and repeat work often assume standard costing only applies to the repeat side, since a one-off has no history to build a standard from. That's only half true. A one-off part still gets a routing with estimated operation times before it runs — those estimates are a standard, just a lower-confidence one set by an estimator's judgment rather than by prior actuals.

The practical difference is what happens after the job closes. On repeat work, each new run's actual time can tighten the standard — if a part has run five times and actual time has consistently landed 15% under the original estimate, the standard should move, not stay frozen at the original guess forever. On one-off work, there's no next run to correct against, so the value shows up differently: it feeds the next similar quote. A shop that tracks actual-vs-standard on a five-axis aluminum bracket learns something usable the next time a comparable bracket comes in for quote, even if the exact part number never repeats.

Setting this up without an ERP deployment

None of this requires a finite-capacity scheduler, a full MRP system, or a general-ledger variance module — it requires a routing with standard times per operation, a way to clock actual time against those same operations, and a report that lines the two up. That's a deliberately smaller scope than JobBOSS2 or ProShop, both of which bundle standard costing into a much larger ERP footprint that a lot of shops in this size range have already looked at and priced out.

WorkTickets builds this comparison directly into the routing and traveler workflow: operation-level standard times get set once per part number, actual time gets logged at clock-in/out with reason codes for setup, run, waiting, and rework, and the actual-vs-quoted report rolls the comparison up by operation and by job. Burden rate configuration per work center (available on the Professional tier and above) is what turns logged hours into a comparable dollar figure, the same way the worked example above did by hand.

For a shop that wants to work through this on paper first, the job costing resource hub is a good starting point, and the Job Costing & Quoted-vs-Actual Workbook provides a structured spreadsheet version of the same standard-vs-actual logic before committing to software.

To try the software version directly, WorkTickets runs a 14-day trial across all self-serve tiers — Essentials, Professional, and Business, detailed on the pricing page — so a shop can build standard times on a handful of real routings and watch the actual-vs-quoted numbers populate before deciding whether the fuller rollout is worth it.

Share this guideShare on LinkedInShare by email