In our project I handled the governance, our ERP links, and that whole 2029 autonomous agent angle, mostly just trying to bring it all together into a pitch deck people wouldn’t laugh out of the room.
My actual role, though? Team buzzkill.
Because really, what are we asking a plant manager to swallow here? Demos are tidy. Fake data runs, a flag goes up, screen turns a pleasant shade of warning-orange. Great. But who actually picks up the wrench when the alarm goes off? Who takes the fall? Nobody answers that part.
It’s way too easy to draft neat slides that read like gold while quietly whistling past everything the repo can’t actually do. Every time someone started throwing around terms like “retraining loops,” “privacy safeguards,” or “human-in-the-loop,” I had to be the guy dragging everybody back down to earth.
Look at the decision to track work orders instead of operators. Seemed like a no-brainer on paper—an ethical boundary, keeping CostSentinel focused on money burn instead of building some creepy spy machine for shift managers.
Except that real plants do not operate in a vacuum.
A lathe runs 3 hours of unscheduled scrap work at 2 AM. Guess what? Everyone on the floor knows exactly which operator was turning handles on that bay. Slapping a sterile code like “J10013” on the dashboard hides nothing. Anonymized data isn’t a cloak. So sure, I fought to write stiff restrictions into the governance doc: strict bans on HR pulling logs for annual reviews, read-only ERP connectors, locked-down access roles. Fine. But let’s be honest with ourselves for a second. We haven’t coded any of it. Multi-tenant isolation? Not there. Immutable audit trails? Nope. Pitch an exec with a crisp bulleted slide and they just assume the backend is ready to ship. It isn’t, and keeping people honest about that gap was miserable work.
The phrase “human oversight” drove me up the wall for the exact same reason.
Our simulation treats the controller like an all-seeing oracle. The script already knows the day the bleed started, the bad bolt that caused it, and the final ledger total six months down the road. Perfect 20/20 hindsight. Actual human controllers don’t live in that universe.
They’re on their fourth cup of bad coffee, drowning in unposted inventory tickets, getting pulled into three emergency meetings at once, and tracking thirty other orders. We have zero evidence that a real person can digest our alert inside ten minutes. None. More likely they just find the button to mute notifications and go back to surviving the shift.
Then you get the feedback paradox. This one’s wild.
Alert triggers on Day 12. Controller actually spots it, walks down to machining, haggles an expedited tooling fee, and saves the margin. Clean win. Job finishes right on budget. Now, what happens the second our model runs its retraining pass on the closed ERP ledger?
The final ledger shows zero overrun.
The pipeline looks at that Day 12 alert, sees a flat margin, and chalks it up as a false positive. We end up literally penalizing the model for saving the company money. That’s a nightmare to debug. Giving operators a button to click “helpful” or “bad alert” in the UI looks cute in user testing, sure. Doesn’t mean the retraining pipeline won’t poison its own weights the second it ingests actual floor outcomes.
The market angle wasn’t any friendlier.
We aren’t walking onto empty turf. Pretty much any mid-tier plant already runs on Business Central, SAP, or Infor. Those platforms aren’t dumb. They track jobs and run variance reports straight out of the box. Strutting in with promises of “unprecedented cost visibility” is pure sales fluff—any grizzled plant accountant would just snort at you. Our only real shot is flagging probabilistic risk early enough that someone can actually stop a purchase order before the cash leaves the account.
Even our benchmarks kicked our teeth in.
We xombine together a dumb heuristic baseline—just a basic phased budget check—and it actually caught more raw avoidable spend than our shiny ML setup. Was it loud? Incredibly. Twenty-four alerts a week, 14% precision, total noise machine. But if a factory already has cheap junior analysts who can filter that junk, why on earth would they write us a fat SaaS check every month? You can’t just brush off a basic rule because machine learning looks better to venture funds. Precision has to translate to actual cash, or nobody cares.
And that 2029 autonomous agent scenario? Pure science fiction for now.
If enterprise ERP providers build decent automated agents over the next five years, basic variance monitoring gets swallowed as a default checkbox feature anyway. Why buy a separate tool? Without deep, messy, shop-floor context that an ERP can’t see, we don’t have a moat. Simple as that.
Which brings it all back to the pilot run.
I fought tooth and nail to freeze our evaluation metrics before touching a single row of live client data, because teams always find a way to cherry-pick numbers that make their baby look clever. But running a squeaky-clean A/B test on an active line is messy business. You have one supervisor splitting time across both the test cell and the control cell? Their habits bleed across both lines overnight. Boom. Control group poisoned.
That’s the real lesson here.
A model can look gorgeous in a clean Jupyter notebook and still drop dead on the floor if the human in the chair doesn’t have the time, the trust, or the unspent budget to pull the lever. Forget generative summaries. Forget 2029 roadmaps. I’d rather just stand next to an exhausted plant controller for a week, watch an alert hit their screen, and see if they can actually keep the company from losing money before the pallet heads out the door.
