← Blog
7 min read

Can you see per-order margin while the shift is still running?

Plants learn a shift's profitability at month-end, two weeks late. What it would take to compute per-order margin live across PLC, MES, ERP, and labor data.

Ray Kameda
Ray Kameda
Co-Founder & Chief Product Officer
Projected per-order margin during a single shift on a four-line packaging plant. Starts near zero at 11:00, deepens through 12:00 as the cycle-time drift on Müller-Pharma's blister-card line consolidates, levels around -340€ through the planned shift end at 13:30, and is confirmed at -363.31€ when the order completes 55 minutes late at 14:25.

The actual profit margin of a manufacturing order in most cases is decided based on what happens during the shift, but almost no plant can see it while the shift is running.

The shop floor knows whether the line is up, whether the operator is on station, and whether the part counters are advancing. The controller's office knows what an hour of overtime costs and what an order was quoted at. Both pieces exist. They just live in different systems on different update cadences, and they are usually only joined at month-end close, two weeks after anyone could have done anything about a bad day.

This post is a stab at what it would take to close that gap.

Per-order margin, for anyone whose week doesn't involve it, is the contribution margin of a single manufacturing order after the labor, machine time, materials, and overhead actually consumed by that order are subtracted from the price the customer paid. The standard finance treatment computes it monthly from posted journal entries. The interesting question is whether you can compute it hourly.

The industry is right that real-time data matters

The recent industry discourse around this makes the case that real-time operational data is itself a margin lever. Grant Thornton's 2026 manufacturing piece on hidden margin loss is one example (Grant Thornton, 2026); ManufacturingTomorrow's "margin blind spot" article is another (ManufacturingTomorrow, Feb 2026). Both arguments are correct as far as they go. Production changeovers, supplier substitutions, and expedited shipments can move profitability within hours, and financial reporting that catches up two weeks later catches up too late.

So we agree on the premise. Where this writing tends to fall short is on the implementation. "Get real-time data" is offered as if real-time data were the missing piece. Most plants have real-time data. The PLCs emit cycle observations every two seconds. The MES emits events when an order starts and completes. The ERP holds the cost master and the contract price. The time-clock system records who clocked in and out. The pipes are flowing with fresh data.

What is missing is a semantic layer that turns all of that into a single number a shift supervisor can read.

The semantic join is the missing layer

In plain words, you can compute live per-order margin by:

  1. Capturing the cycle events being emitted by the line.
  2. Looking up which order is in production and computing how long each part is taking against the standard cycle time for that order's material.
  3. Multiplying the time variance by the labor rate of the operator currently clocked in plus the machine rate to get the cost.
  4. Calculating the net margin based on the computed time variance and the unit price on the order.

Now repeat that continuously.

Reading the above computation carefully will reveal the catch. There are five sources of truth in it, three update cadences, and four foreign keys that are not foreign keys in any system. The PLC does not know what order is running. The MES knows the order but not the labor rate. The cost master knows the labor rate but not who is on shift. None of the systems individually can produce the answer. The answer only exists in the join.

This is where most "real-time analytics for manufacturing" projects either stall or quietly settle for a less interesting metric like OEE. OEE is a fine thing to measure, and it's easier because it only requires one system. Per-order margin is what the controller actually wants, and it's hard for the same reason it's interesting.

The Margin by Order pipeline. Eight upstream sources, including Dynamics 365 production orders, the rate card, the standard cost master, the shift policy, the TimeMoto time-clock export, and the silver-layer PLC and MES tables, feed an eighteen-cell SQL pipeline. The pipeline is the semantic join the margin metric reads from.

What this looks like in a real shift

The chart at the top of this post is taken from a single shift on a four-line packaging plant, simulated from the preconditions we use internally to validate this calculation. Müller-Pharma's blister-card line is bleeding 14% over standard cycle time. By 11:30am the projection has consolidated: this order is on track for a current margin variance of about -363€. At 14:25 the order would finish 55 minutes late, and the projection is confirmed by the actual cost run at -363.31€, attributable in roughly equal parts to material scrap, overtime premiums, and controllable efficiency loss.

The interesting line in that story is not the confirmation at 14:25. Finance would have caught that in due course. The interesting line is the 11:30 projection. A shift supervisor looking at this number at 11:30 has the option of pulling a second operator onto the line, re-staging the order, or accepting the variance and pricing the next quote accordingly. By 14:25 the only available option is to file the variance.

Inspecting the live margin variance row for Müller-Pharma's BLISTER-CARD-512 order on Line 02. The -363.30€ value is computed from records grouped by customer, SKU, and line, with explicit lineage back to the Per Order Margin Detail source and a plain-language description of what the value means and which records were included.

A shift supervisor probably does not want to build multiple SQL queries to investigate "why is this order projected to lose money?" They want to ask the question in plain language and quickly get an investigation report that decomposes the variance into the operational causes that produced it. How much was scrap, how much was overtime premium, how much was controllable efficiency loss against standard. The hard part, again, is not the chat interface. It's the semantic layer underneath that knows how to traverse the join from the question to the evidence.

The AI chat answering the question "make a full drilldown report of all the reasons for the -363.31 EUR margin variance for line-02" with a Margin Variance Investigation Report that decomposes the total into material scrap costs (-208.00€), overtime labor premiums (-59.72€), and controllable efficiency loss (-95.59€), each with its own one-line description.

What we think

Most plant operators we have spoken to in the DACH Mittelstand do not want a new dashboard. They have dashboards. What they want is the answer to a question that today requires a controller, a meeting, and two weeks. Closing that gap is mostly a data modeling problem, and it's mostly tractable. The reason it has not happened yet is that nobody has been patient enough to build the semantic layer that makes the question askable. The industry is starting to understand this, and we think the most useful thing Beetl can do is enable SMEs to build their own semantic layer and take full advantage of their data.

For the broader picture of why DACH Mittelstand manufacturers haven't been able to use the data they already have, see our companion piece, DACH manufacturing now trails every major economy on digitalization.

FAQ

What is per-order margin?
The contribution margin of a single manufacturing order: the price the customer paid minus the labor, machine time, materials, and overhead that order actually consumed. Standard finance treatment computes it monthly from posted journals. The interesting question is whether you can compute it hourly, while the shift is still running.
Why can't existing manufacturing systems show live per-order margin?
Because no single system has all the inputs. The PLC sees cycle events without knowing the order, the MES knows the order but not the labor rate, and the cost master holds the labor rate without knowing who is clocked in. The answer lives in the join across PLC, MES, ERP, time-clock, and cost master; most plants have no semantic layer that performs that join continuously.
How is per-order margin different from OEE?
OEE measures how productively a machine runs against its full potential, using data from one system. Per-order margin requires joining production cycle data with the order's costs, price, and clocked-in labor across five systems and three update cadences. OEE is the easier substitute most projects settle for; per-order margin is what the controller actually wants.
How does a shift supervisor act on a live margin variance?
By 11:30 in the worked example, the projection has consolidated at about -€363 for an order that will finish at 14:25. At 11:30 the supervisor still has options: pull a second operator onto the line, re-stage the order, or accept the variance and re-quote the next one. By 14:25 the only available action is filing the variance.

Want to see this with your data?

Book a 30-min intro