← Blog  ·  June 2026  ·  7 min read  ·  Job Costing

Job Costing for Machine Shops: What You're Probably Missing

If you're quoting from gut feel and historical memory, you're probably leaving money on the table — or worse, winning jobs you're losing money on. Here's how to build real cost data from what's already happening on your shop floor.

The Gap Between What You Quote and What It Actually Costs

Most machine shop owners can tell you what they charge per hour. Most can't tell you with any confidence how many hours a specific part actually takes to make — not theoretically, but actually, based on real production data from real runs.

That gap is where margin disappears. You quote 45 minutes per part based on memory. The first run takes 52 minutes because there was a fixturing issue. The second run takes 48 minutes. You never capture that data, so next time the same job comes back you quote the same 45 minutes — and you're still losing 6 minutes per part on a 200-piece run.

On a 200-piece job at $120/hr, 6 minutes per part is $2,400 of margin you never see.

What Job Costing Actually Requires

Real job costing for a machine shop has three components. Most shops have one of them. Few have all three.

1. Actual cycle time per operation

Not your estimated cycle time — your actual cycle time, from real production runs. This means capturing how long each operator actually spends on each operation on each job. Not from memory. Not from a paper traveler filled in at end of shift. From a timestamp recorded when the work starts and ends.

Once you have 5-10 runs of the same part, you can calculate a reliable standard time. Until then, you're estimating.

2. Your actual shop rate

Your shop rate is not what you want to charge. It's what you need to charge to cover your costs and make money. Most shops calculate this once and never revisit it. Here's a simplified version:

Basic Shop Rate Formula
Annual overhead + owner salary + target profit
÷ Annual available machine hours
= Minimum shop rate per machine hour

If your overhead is $180,000/year and you have 2,000 billable hours per machine, your floor rate is $90/hr before you even consider profit margin. Most shops are running closer to this number than they think — especially when you account for setup time, rework, and non-billable hours.

3. Material cost tracking

Labor is only part of the cost. Material — bar stock, tooling, outside processing — needs to be tracked per job. If you're running 4140 bar at $3.20/lb and a part takes 2.4 lbs of stock, that's $7.68 of material cost before you touch the machine. On a tight-margin job, that matters.

The shops that consistently win good margins aren't quoting lower than everyone else. They're quoting more accurately than everyone else. They know their actual cycle times, they know their real overhead rate, and they know what material costs before the job even starts.

Where Shops Go Wrong on Costing

The most common mistake: treating setup time as free. If it takes 45 minutes to set up a job and you're only making 10 pieces, that's 4.5 minutes of setup per part — at $120/hr that's $9 per part that never shows up in the quote.

For low-volume jobs especially, setup cost can easily equal or exceed run cost. Shops that don't separate setup from run time consistently under-quote short-run work.

The second most common mistake: quoting from memory on repeat jobs. The part you made 18 months ago for $14.50 each — do you actually know if that was profitable? Did material prices change? Did you change tooling? Did the operator who ran it last time leave and the new guy takes 20% longer?

Memory-based quoting works when everything stays the same. It breaks the moment anything changes — and something is always changing.

How to Build a Real Cost Database

You don't need to implement a full ERP system to start building real cost data. You need three things:

  1. Operation-level time logging. Every operation on every job needs a start and end timestamp — not estimated, actually recorded. This is the raw material of all job costing data.
  2. Parts per hour tracking. How many parts per hour each operator runs on each operation. This is your cycle time standard, built from real data over time.
  3. A way to compare quote vs actual. When a job ships, you should be able to pull up the quoted hours vs the actual hours and see exactly where the variance is. Which operation ran over? By how much?

Once you have six months of this data, your quoting gets dramatically more accurate. You stop guessing and start looking up what the part actually cost to make the last three times.

The Estimating Database Problem

Most shops have no systematic way to look up what a part cost historically. The knowledge lives in someone's head. When that person leaves, the knowledge leaves with them.

A proper job estimating database ties every shipped job to its actual production data — hours per operation, parts per hour, total material, outside processes — and makes that history searchable the next time a similar job comes up for quote.

"This is a 2-inch diameter 4140 part with 3 operations — what did similar parts cost us in the last year?" That question should have a data-driven answer, not a guess.

The best quote you can give is one based on what it actually cost you to make a similar part. Not what you think it should cost. Not what the customer wants to hear. What your shop actually produced it for, with your people, on your machines.

Connecting Job Costing to Invoicing

There's one more gap that costs machine shops money that most shops don't think about as a costing issue: the delay between job completion and invoicing.

The average small machine shop takes 5-14 days to invoice after a job ships. That's cash sitting on the table. If your average job is $3,000 and you're 10 days late invoicing it, you're essentially extending net-40 terms when you quoted net-30.

When job completion automatically triggers an invoice — pre-filled with the actual quantity made and the quoted price — that gap disappears. The invoice goes out the day the job ships, not two weeks later when someone gets around to it.

FastFlowTrack builds your cost database automatically

Every job logged in FastFlowTrack builds your estimating database — actual hours, parts per hour, and delivered cost per part, searchable by customer and part name. And when the job ships, the invoice is already drafted.

See It in the Live Demo →

Job costing isn't glamorous. But it's the difference between a shop that's always busy and wondering why it's not making money, and a shop that's selective about the work it takes on and profitable on what it runs.

Start capturing real time data. The rest follows from that.

More from the blog

How to Track Work Orders in a Machine Shop →

Do Small Machine Shops Actually Need ERP Software? →