Guides / Operating gaps

Job profitability tracking for a machine shop, before month-end.

If the only honest answer to "did that job make money?" arrives two weeks after the part shipped, the number came too late to do anything with. Here's why the lag happens, and how to get a current read you can actually trust.

Most shop owners I talk to can't get a straight answer on job profitability until two weeks after month-end. By then the job is closed, the part is gone, the invoice is out, and the number is a history lesson — interesting, but useless for the decision you needed it for. Real-time job costing isn't about fancier dashboards. It's about closing the gap between when the floor does the work and when you find out whether it paid.

I owned a machine shop for a decade. I know exactly how this goes. You quoted the job at a number, the floor ran it, something didn't go to plan — a setup took twice as long, you ate a re-run on scrap, material came in over — and none of that surfaces until accounting closes the month and somebody finally reconciles labor and material against the quote. That's the job costing lag: the data exists, but the read shows up after it can change anything.

Why the number always comes too late

Here's the part worth being honest about: your ERP usually already has the data. JobBOSS, E2, Global Shop, even a tight QuickBooks-and-spreadsheets setup — the labor tickets, the material receipts, the actuals against the quote are mostly in there. The gap isn't missing data. The gap is getting a trustworthy, current read out of it without somebody running a manual report-pull marathon at month-end.

So the number waits. It waits on time entries getting keyed in. It waits on POs getting received against the right job. It waits on someone with the report-writer login and a free afternoon to stitch three exports together in Excel. By the time the picture is clean, you're closing the books on a month you can no longer steer. That's not a reporting problem you fix with another report — it's a timing problem.

The cost of the lag is quiet but real. A job that's bleeding mid-run looks identical to a job that's fine, right up until it's closed. You re-quote the same part next quarter off the old estimate, because the actuals from last time never made it back to the estimator. You find out a customer's "easy repeat" has been underwater for three orders running — after the fourth ships.

Getting a daily read you can trust

The fix is not a new ERP. You don't need to rip out what runs your shop. The fix is a thin layer that reads what's already being captured and puts a current number in front of the right person every morning, before anyone asks for it.

For a mid-size machine shop we work with, that's an owner's daily briefing. Overnight it pulls from the shop's ERP and its books and emails the owner one morning brief: cash-flow forecast, backlog, sales month-to-date. He stops waiting for month-end to know where things stand. No logging in, no running three reports and stitching them together — the read is sitting in his inbox with his coffee. The point isn't the email. The point is that the question "where are we right now?" gets answered every day instead of once a month, after the fact.

One honest caveat, because it matters: a briefing like this reads the data the shop already captures. Garbage in, garbage out. If labor isn't being clocked to the right job, or receipts aren't landing against the right PO, the brief will faithfully show you a wrong number. It surfaces and flags what's there — it doesn't fix the underlying data entry. What it does do is make bad data visible fast, which is usually the first thing that gets the entry cleaned up, because now somebody actually sees it the next morning instead of three weeks later.

Closing the quote-to-actual loop

Knowing today's number is half of it. The other half is making sure last month's actuals teach next month's quote. That's where most shops leak the same margin twice — once when the job runs over, and again when they re-quote the same part off the estimate that was already wrong.

For the same shop, a feedback loop we call the Shop Brain compares quoted versus programmed versus actual times — pulled straight from the ERP and Mastercam — so quoting learns from what the floor actually did. The estimator stops guessing from memory and starts working off what the part really took last run. Quote the job, run the job, see the variance, and let the variance flow back into the next quote. That's the loop that should have been closing all along.

There's also a monthly KPI briefing sitting alongside it: on-time delivery, quality, scrap, quoting, sales performance, with the trend, auto-filling the spreadsheets that used to eat hours of somebody's month. None of it is a dashboard for its own sake. Each piece answers a question an owner is already asking — it just answers it on time, off the data the shop already has.

If you want to go a level deeper on getting clean reporting out of a specific ERP, the guide on getting real reports out of JobBOSS covers the report-writer wall and what's actually possible without living in spreadsheets.

This is built, not theoretical
Running in production for a real shop

The daily briefing, the monthly KPI briefing, and the Shop Brain quote-to-actual loop described above are deployed and in daily use at a mid-size machine shop — pulling from its real ERP and books. The systems, and the results, are real. We keep the client anonymous.

See the selected work →

Common questions

Do I need to replace my ERP to get real-time job costing?

No. In almost every case the data is already in the ERP — JobBOSS, E2, Global Shop, or a QuickBooks-and-spreadsheets setup. The work is reading it cleanly and putting a current number in front of you on a schedule, not replacing the system that runs your shop.

How current is "real-time," really?

Honest answer: as current as your data entry. A daily briefing refreshes overnight, so you're reading yesterday's actuals every morning instead of last month's at close. It's only as good as what gets clocked and received against the right job — but a daily read makes bad entry visible fast, which is usually what finally gets it cleaned up.

What if my labor and material data isn't clean?

Then the brief will show you that, plainly, the next morning — and that's the first step to fixing it. The tool surfaces and flags; it doesn't paper over bad data entry. Most shops find the read itself is what drives the discipline to enter things right.

How long does something like this take to stand up?

It starts with a paid diagnostic, then a fixed-price build — most land in four to eight weeks. It deploys into your own Microsoft 365 or Google tenant on managed infrastructure, you own the software outright, and there's no per-seat license.

Contact

Tired of finding out two weeks late?

First call is free and runs about 30 minutes — mostly questions about how your shop really runs and where the number goes missing. We'll figure out together whether there's a fit. No demo, because it's custom work; just a straight conversation.

Email Jason See selected work →