Factory compressed-air & power sub-metering: allocate batch kWh, Time-of-Use tariffs, and leak variance to work orders
For finance, costing and accounts teams · Compare approaches
TL;DR — what you’ll learn
- Replace flat machine-hour utility peanut-butter spreading with interval sub-meter integration that links electrical power meters ($\text{kWh}$, [IEC 61557-12](https://webstore.iec.ch/en/publication/60921)) and thermal mass compressed-air flowmeters ($\text{Nm}^3$) directly to active MES Work Order timestamps ([ISO 50001](https://www.iso.org/iso-50001-energy-management.html)).
- Convert branch-line compressed-air consumption ($V_{\text{air}}$ in $\text{Nm}^3$) into compressor electrical equivalent energy ($E_{\text{comp}} = V_{\text{air}} \times \kappa_{\text{comp}}\text{ kWh/Nm}^3$) and isolate ring-main distribution leak loss ($V_{\text{header}} - \sum V_{\text{drops}}$) into a dedicated maintenance variance account so leaking pneumatic fittings never inflate product inventory cost.
- Map utility consumption against 15-minute Time-of-Use (ToU) tariff windows (OFF_PEAK, MID_PEAK, ON_PEAK) so running a $400\text{ kW}$ induction furnace during a $\$0.28/\text{kWh}$ evening peak window exposes a visible Tariff Scheduling Variance compared to the $\$0.08/\text{kWh}$ night window.
- Segregate Productive Processing Energy (STATE = IN_CYCLE) from Idle Warm-Up / Starved Holding Energy (STATE = IDLE_HOLD): capitalize only productive energy into batch WIP/FG valuation and expense idle/leak energy immediately as a period operational loss.

Illustrative manufacturing inspection room and machine shop floor; not a client facility.
In foundries, heat-treatment shops, glass and ceramics plants, forging presses, injection-moulding halls, and pneumatic assembly factories, electrical power and compressed air represent $12%\text{ to }35%$ of total conversion cost. Yet most ERP systems allocate utility bills by taking the monthly utility invoice and dividing it across all work orders by Direct Labour Hours or Standard Machine Run Hours. This accounting shortcut creates three severe operational blind spots: first, a thick-walled alloy forging requiring an $1,100^\circ\text{C}$ soak and high-pressure shot-blasting receives the same per-hour utility charge as a low-temperature stress-relief batch; second, when production planners schedule heavy induction melting or heat-treat loads during the utility's $17:00\text{–}21:00$ On-Peak tariff window ($3.5\times$ the Off-Peak rate per $\text{kWh}$ plus monthly peak-demand $\text{kVA}$ ratchets), the cost penalty vanishes into general plant overhead; third, when $20%\text{ to }30%$ of compressor header output escapes through leaking quick-disconnect couplings and stuck condensate drains, the plant unknowingly capitalizes wasted compressed air into finished-goods inventory.
The direct solution is to synchronize machine-level electrical and compressed-air sub-meters with MES work-order state transitions (SETUP_WARMUP, IN_CYCLE_PRODUCTIVE, IDLE_HOLD, OFF). Distinct from M064 (which governs standard labour and overhead absorption variances at month-end), this guide (M120) specifies physical sub-meter pulse/register integration, compressed-air $\text{Nm}^3$-to-$\text{kWh}$ conversion, Time-of-Use tariff window valuation, and leak/idle baseload separation.
Scope and accounting-standard boundary
This article defines the ERP, MES, and industrial telemetry integration architecture for allocating electrical and compressed-air sub-meter readings to manufacturing work orders and cost centers:
- What this workflow governs: Polling interval $\text{kWh}$ and $\text{Nm}^3$ sub-meter registers at work-order start/pause/complete events, valuing energy against Time-of-Use (ToU) tariff tables, calculating compressor specific energy ($\kappa_{\text{comp}}$), and splitting productive work-order energy absorption from idle-hold and distribution-leak variances.
- What this workflow does not replace: This architecture does not replace statutory revenue-grade utility billing meters, high-voltage electrical safety design, or external financial audit policies. Inventory capitalization rules must strictly follow IAS 2 (Inventories) / ASC 330, which mandate that abnormal waste—including compressed-air ring-main leaks and unscheduled idle furnace holding caused by material starvation—be expensed in the period incurred rather than capitalized into inventory valuation. Energy baselines ($\text{EnB}$) and performance indicators ($\text{EnPI}$) should align with ISO 50001:2018 and ISO 50006.
Bounded manufacturing energy management software verification and exception-routing workflow
Follow the workflow below, or open its complete text version.
Read the complete workflow as text
- Capture manufacturing energy managem baseline record → Verify revision, unit Basis and cutoff alignment
- Verify revision, unit Basis and cutoff alignment → Run deterministic reconciliation and tolerance check
- Run deterministic reconciliation and tolerance check → Quarantine mismatched or unapproved lines
- Quarantine mismatched or unapproved lines → Route exception to named domain and finance owner
- Route exception to named domain and finance owner → Release verified record with immutable audit trail
Engineering the three-layer utility sub-metering and valuation model
1. Time-of-Use (ToU) electrical sub-meter slicing across work-order states. A smart power meter (IEC 61557-12) mounted on an induction furnace, hydraulic press, or extruder logs cumulative active energy ($E(t)$ in $\text{kWh}$) and 15-minute peak active/apparent power ($\text{kW} / \text{kVA}$). Rather than reading only the total batch difference $E(t_{\text{end}}) - E(t_{\text{start}})$, the MES slices the batch across every 15-minute tariff boundary $w \in {\text{Off-Peak}, \text{Mid-Peak}, \text{On-Peak}}$ and machine state $s \in {\text{Productive}, \text{Idle_Hold}}$:
$$C_{\text{elec, productive}} = \sum_{w} \left( \Delta E_{w, \text{productive}} \times R_{\text{tariff}, w} \right)$$
If a work order whose standard routing assumes Off-Peak/Mid-Peak execution ($R_{\text{std}} = $0.11/\text{kWh}$) is instead run across the On-Peak window ($R_{\text{on_peak}} = $0.28/\text{kWh}$), the ERP splits the cost into Standard Energy Absorption and ToU Scheduling Tariff Variance so production scheduling sees the exact dollar cost of peak-window furnace runs.
2. Compressed-air $\text{Nm}^3$-to-$\text{kWh}$ conversion and ring-main leak isolation. Compressed air is frequently misunderstood as "free shop air," yet generating $1\text{ kWh}$ of pneumatic work at a cylinder or blast nozzle requires $7\text{ to }8\text{ kWh}$ of electrical input at the rotary-screw air compressor (CAGI). To cost compressed air accurately without guesswork:
- Measure Total Compressor Room Electrical Input ($E_{\text{comp_room}}$, $\text{kWh}$) and Main Header Air Output ($V_{\text{header}}$, normal cubic meters $\text{Nm}^3$ at $1.013\text{ bar}, 20^\circ\text{C}$) to compute the rolling Compressor Specific Energy Ratio ($\kappa_{\text{comp}}$): $$\kappa_{\text{comp}} = \frac{E_{\text{comp_room}};(\text{kWh})}{V_{\text{header}};(\text{Nm}^3)} \quad \left(\text{typically } 0.105\text{ to } 0.130\text{ kWh/Nm}^3 \text{ at } 7\text{ bar}\right)$$
- Measure branch-line consumption at each production cell via thermal mass flowmeters ($V_{\text{cell}, j}$ in $\text{Nm}^3$). The productive compressed-air energy charged to Work Order $j$ is: $$E_{\text{air, WO}j} = V{\text{cell}, j, \text{productive}} \times \kappa_{\text{comp}}, \qquad C_{\text{air, WO}j} = E{\text{air, WO}j} \times \bar{R}{\text{comp_elec}}$$
- The difference between the main compressor header output and the sum of all cell drop flowmeters during any interval is the Unaccounted Ring-Main Leak & Drain Loss ($V_{\text{leak}}$):
$$V_{\text{leak}} = V_{\text{header}} - \sum_{j=1}^{M} V_{\text{cell}, j}$$ This leak volume is valued at $V_{\text{leak}} \times \kappa_{\text{comp}} \times \bar{R}_{\text{comp_elec}}$ and posted directly to
GL-COMPRESSED-AIR-LEAK-VARIANCE—never buried in product BOM costs.
under div over under table over under thead over under tr over under th over Utility Cost Stream under /th over under th over Physical Sub-Meter Source under /th over under th over MES Machine State Condition under /th over under th over IAS 2 / ERP Accounting Treatment under /th over under th over Operational Action Trigger under /th over under /tr over under /thead over under tbody over under tr over under td over under strong over 1. Productive Cycle Power ($\text{kWh}$) under /strong over under /td over under td over Machine feeder power meter ( under code over PM-FURN-04 under /code over ) under /td over under td over under code over STATE == IN_CYCLE under /code over with active under code over WO_ID under /code over under /td over under td over Capitalize into Work Order WIP/FG via Workstation Utility Cost Component under /td over under td over Compare actual $\text{kWh/kg}$ vs ISO 50006 baseline $\text{EnB}$; flag $ over 8%$ heating element degradation under /td over under /tr over under tr over under td over under strong over 2. Productive Cell Compressed Air ($\text{Nm}^3$) under /strong over under /td over under td over Cell drop thermal mass flowmeter ( under code over FM-AIR-09 under /code over ) under /td over under td over under code over STATE == IN_CYCLE under /code over with active under code over WO_ID under /code over under /td over under td over Convert via $\kappa_{\text{comp}}$ ($\text{kWh/Nm}^3$) and capitalize into Work Order WIP/FG under /td over under td over Alert maintenance if shot-blast nozzle wear increases $\text{Nm}^3/\text{part}$ by $ over 12%$ under /td over under /tr over under tr over under td over under strong over 3. Idle Furnace Hold / Starved Soak under /strong over under /td over under td over Machine feeder power meter ( under code over PM-FURN-04 under /code over ) under /td over under td over under code over STATE == IDLE_HOLD under /code over (no active cut/quench) under /td over under td over under strong over Expense immediately under /strong over to under code over GL-UTILITY-IDLE-HOLD-VAR under /code over (Period Expense) under /td over under td over Require reason code when furnace holds at $900^\circ\text{C}$ $ over 20\text{ min}$ awaiting crane/charge car under /td over under /tr over under tr over under td over under strong over 4. Compressed Air Ring-Main Leak Loss under /strong over under /td over under td over Header differential ($V_{\text{header}} - \sum V_{\text{drops}}$) under /td over under td over Continuous 24/7 header mass-balance check under /td over under td over under strong over Expense immediately under /strong over to under code over GL-COMPRESSED-AIR-LEAK-VAR under /code over (Period Expense) under /td over under td over Trigger ultrasonic leak-tag maintenance work order when leak ratio exceeds $10%$ of header flow under /td over under /tr over under /tbody over under /table over under /div over
Illustrative worked example: 5,000 kg alloy forging heat-treat shot-blast batch energy reconciliation
All figures below are illustrative and synthetic. Consider a forge and heat-treatment plant running Work Order WO-HT-9040 to austenitize, quench, temper, and shot-blast $5,000\text{ kg}$ ($5.0\text{ metric tons}$) of alloy steel crankshaft forgings across an 8-hour shift:
- Electric Time-of-Use (ToU) Tariff Schedule:
OFF_PEAK(00:00–06:00): $$0.0800/\text{kWh}$MID_PEAK(06:00–17:00): $$0.1400/\text{kWh}$ON_PEAK(17:00–21:00): $$0.2800/\text{kWh}$
- Compressor Room Baseline: Rolling specific power $\kappa_{\text{comp}} = \mathbf{0.115\text{ kWh/Nm}^3}$ at $7.0\text{ bar}$, valued at a blended compressor electrical rate of $$0.1500/\text{kWh}$ ($\equiv $0.01725/\text{Nm}^3$).
Step 1: Compute productive batch energy absorbed by WO-HT-9040.
- Furnace
PM-FURN-04Productive Cycle Electricity (IN_CYCLE):OFF_PEAKsoak segment: $1,100\text{ kWh} \times $0.0800 = $88.00$MID_PEAKramp/temper segment: $950\text{ kWh} \times $0.1400 = $133.00$ON_PEAKfinal temper segment: $750\text{ kWh} \times $0.2800 = $210.00$- Total Productive Furnace Electricity: $1,100 + 950 + 750 = \mathbf{2,800.0\text{ kWh}}$ at $$431.00$ (specific furnace energy = $2,800 / 5,000 = 0.560\text{ kWh/kg}$).
- Shot-Blast
FM-AIR-09Productive Compressed Air (IN_CYCLE):- Measured productive blast air flow: $V_{\text{blast}} = \mathbf{3,600.0\text{ Nm}^3}$
- Equivalent compressor electrical energy: $E_{\text{comp, blast}} = 3,600.0\text{ Nm}^3 \times 0.115\text{ kWh/Nm}^3 = \mathbf{414.0\text{ kWh}}$
- Productive compressed-air cost: $414.0\text{ kWh} \times $0.1500/\text{kWh} = \mathbf{$62.10}$.
- Total Direct Batch Energy Capitalized into
WO-HT-9040: $$C_{\text{batch_energy}} = $431.00 + $62.10 = \mathbf{$493.10} \quad \left(\frac{$493.10}{5,000\text{ kg}} = \mathbf{$0.09862/\text{kg}}\right)$$
Step 2: Isolate unabsorbed idle furnace hold and compressed-air header leaks.
During the same shift window, sub-meters record three non-productive energy events that a naive ERP would have dumped into inventory:
- Unscheduled 90-Minute Furnace Idle Hold (
IDLE_HOLDduring Mid-Peak): Quench crane maintenance delayed tray unloading for $90\text{ minutes}$, burning $395.0\text{ kWh} \times $0.1400 = $55.30$ while processing zero parts. - Shot-Blast Booth Idle Blow-Off (
IDLE_HOLD): A stuck solenoid valve bled $500.0\text{ Nm}^3$ between batches ($500 \times 0.115\text{ kWh/Nm}^3 \times $0.1500 = \mathbf{$8.625}$). - Plant Ring-Main Header Leak Differential: Main compressor header meter
FM-MAIN-HDRdelivered $4,800.0\text{ Nm}^3$ to this zone while branch meters recorded $3,600.0 + 500.0 = 4,100.0\text{ Nm}^3$, exposing $V_{\text{leak}} = 4,800.0 - 4,100.0 = 700.0\text{ Nm}^3$ of pipe-joint leaks ($700 \times 0.115\text{ kWh/Nm}^3 \times $0.1500 = \mathbf{$12.075}$), plus a $$13.70$ peak-demand $\text{kVA}$ ratchet charge from starting the shot-blast dust collector duringON_PEAK.
Scroll horizontally to see all columns.
| Energy & Utility Ledger Bucket | Physical Meter Reading | Equivalent Electrical ($\text{kWh}$) | Tariff / Rate Applied | Cost Allocated ($$$) | Cost per $\text{kg}$ ($$/\text{kg}$) | ERP GL / Inventory Disposition |
|---|---|---|---|---|---|---|
| Furnace Productive — Off-Peak | $1,100.0\text{ kWh}$ | $1,100.0\text{ kWh}$ | $$0.0800/\text{kWh}$ | $$88.00$ | $$0.01760$ | Capitalized to WO-HT-9040 WIP |
| Furnace Productive — Mid-Peak | $950.0\text{ kWh}$ | $950.0\text{ kWh}$ | $$0.1400/\text{kWh}$ | $$133.00$ | $$0.02660$ | Capitalized to WO-HT-9040 WIP |
| Furnace Productive — On-Peak | $750.0\text{ kWh}$ | $750.0\text{ kWh}$ | $$0.2800/\text{kWh}$ | $$210.00$ | $$0.04200$ | Capitalized to WO-HT-9040 WIP (Includes $$105\text{ ToU penalty vs Mid}$) |
Shot-Blast Productive Air (FM-AIR-09) |
$3,600.0\text{ Nm}^3$ | $414.0\text{ kWh}$ | $$0.1500/\text{kWh}$ | $$62.10$ | $$0.01242$ | Capitalized to WO-HT-9040 WIP |
| Subtotal: Productive Batch Energy | — | $3,214.0\text{ kWh}$ | — | $$493.10$ | $$0.09862$ | Posted to Forging Inventory Valuation |
| Furnace 90-Min Crane Delay Hold | $395.0\text{ kWh}$ | $395.0\text{ kWh}$ | $$0.1400/\text{kWh}$ | $$55.30$ | — | Expensed to GL-UTILITY-IDLE-HOLD-VAR |
| Shot-Blast Stuck Valve Idle Bleed | $500.0\text{ Nm}^3$ | $57.5\text{ kWh}$ | $$0.1500/\text{kWh}$ | $$8.625$ | — | Expensed to GL-UTILITY-IDLE-HOLD-VAR |
| Header Ring-Main Leak ($4,800 - 4,100$) | $700.0\text{ Nm}^3$ | $80.5\text{ kWh}$ | $$0.1500/\text{kWh}$ | $$12.075$ | — | Expensed to GL-COMPRESSED-AIR-LEAK-VAR |
| On-Peak $\text{kVA}$ Demand Ratchet Increment | $+1.96\text{ kVA}$ | — | $$7.00/\text{kVA}$ | $$13.70$ | — | Expensed to GL-PEAK-DEMAND-RATCHET-VAR |
| Subtotal: Non-Productive Utility Loss | — | $533.0\text{ kWh}$ | — | $$89.70$ | — | Excluded from Inventory ($15.40%$ of total $$582.80$ spend) |
Independent arithmetic verification.
- Productive electrical + compressed-air sum: $($88.00 + $133.00 + $210.00 = $431.00) + (3,600 \times 0.115 \times $0.15 = 414.0\text{ kWh} \times $0.15 = $62.10) = $493.10$ across $5,000\text{ kg} = $0.09862/\text{kg}$.
- Non-productive period variance sum: $$55.30\text{ (furnace hold)} + $8.625\text{ (booth idle bleed)} + $12.075\text{ (700 Nm}^3\text{ header leak)} + $13.70\text{ (peak ratchet)} = $89.70$.
- Total shift utility reconciliation: $$493.10\text{ (productive WIP)} + $89.70\text{ (period variance)} = $582.80$ ($3,214.0 + 533.0 = 3,747.0\text{ kWh}$ total electrical equivalent).
Workflow, owner roles, exception handling and recovery controls
Scroll horizontally to see all columns.
| Workflow stage | Accountable owner | Required system evidence | Exception condition | System hold & recovery control |
|---|---|---|---|---|
| 1. Sub-Meter & ToU Calendar Sync | Plant Electrical Eng & Cost Accountant | Modbus/OPC-UA meter register map, active ToU tariff table, rolling $\kappa_{\text{comp}}$ ($\text{kWh/Nm}^3$) | Sub-meter communication drop or utility changes seasonal ToU window hours | Buffer 15-minute cumulative meter registers locally in PLC; fall back to standard $\text{EnB}$ rate flagged ESTIMATED_METER_DROP until polled |
| 2. Work Order Cycle State Capture | Furnace/Cell Operator & MES | WO_ID start/pause/end timestamps, machine state (IN_CYCLE vs IDLE_HOLD), net batch weight ($\text{kg}$) |
Furnace remains at soak temperature $ over 20\text{ min}$ with no active work order in IN_CYCLE |
Automatically switch meter accumulator to IDLE_HOLD bucket and prompt operator for mandatory delay reason code |
| 3. Compressed-Air Mass Balance | Utilities / Facilities Engineer | Main header flow $V_{\text{header}}$ vs sum of branch flowmeters $\sum V_{\text{cell}, j}$ | Night/weekend zero-production baseline or shift differential shows $V_{\text{leak}} / V_{\text{header}} over 12%$ | Auto-generate CMMS ultrasonic leak-survey work order for the affected plant zone |
| 4. On-Peak Load Shedding Advisory | Production Scheduler | Scheduled furnace/compressor $\text{kW}$ draw vs 15-minute ON_PEAK demand ceiling |
Scheduler slots a non-urgent heat-treat batch across the $17:00\text{–}21:00$ $$0.28/\text{kWh}$ window | Display projected ToU Tariff Penalty ($+$105.00$) on the scheduling board and require Plant Manager override to run during On-Peak |
| 5. Month-End Utility GL Reconciliation | Cost Controller | Sum of capitalized WO energy + IDLE_HOLD + LEAK_VAR vs monthly utility invoice |
Sub-metered total differs from main revenue meter by $ over 3%$ (auxiliaries/lighting gap) | Allocate verified auxiliary baseload (HVAC/lighting) to facility overhead while keeping process machine variances intact |
Bounded pilot and implementation check
Pilot interval energy and compressed-air sub-metering across 1 high-energy thermal work center (e.g., heat-treat furnace or induction melter) and 1 compressed-air-intensive cell (e.g., shot-blast or pneumatic assembly line) over 4 weeks:
- Pilot boundary: Connect the electrical $\text{kWh}$ meter, the compressor header $\text{Nm}^3$ meter, and the branch drop $\text{Nm}^3$ flowmeter to the MES work-order state engine and configure the 3-tier ToU tariff table.
- Acceptance tests:
ACT-M120-01(Multi-Window ToU Cost Slicing): Run a work order spanningOFF_PEAK,MID_PEAK, andON_PEAKhours and verify the ERP computes the exact weighted cost ($$431.00$ on the $2,800\text{ kWh}$ fixture) rather than a single flat average.ACT-M120-02(Idle Hold Capitalization Block): Place the furnace inIDLE_HOLDfor $90\text{ minutes}$ ($395\text{ kWh}$) and verify that $$0.00$ of the idle power entersWOinventory valuation while $$55.30$ posts toGL-UTILITY-IDLE-HOLD-VAR.ACT-M120-03(Compressed-Air Header Leak Isolation): Verify that the $700\text{ Nm}^3$ differential between main header flow ($4,800\text{ Nm}^3$) and cell drop meters ($4,100\text{ Nm}^3$) converts to $80.5\text{ kWh}$ ($$12.075$) inGL-COMPRESSED-AIR-LEAK-VAR.ACT-M120-04(Nozzle Wear EnPI Alert): Simulate a worn shot-blast boron-carbide nozzle increasing compressed-air flow from $0.72\text{ Nm}^3/\text{kg}$ to $0.85\text{ Nm}^3/\text{kg}$ ($+18.1%$) and confirm an automated tool-replacement alert fires.
Next actions
- Read cumulative meter registers at every MES state change (
IN_CYCLEvsIDLE_HOLD): Using cumulative register deltas (kWh_end - kWh_start) prevents lost pulses during brief network hiccups and cleanly separates productive energy from idle holding. - Meter your compressor room header ($\text{Nm}^3$) alongside your top 5 pneumatic drops: Calculate your plant's true $\kappa_{\text{comp}}$ ($\text{kWh/Nm}^3$) and expose the exact dollar cost of ring-main air leaks every shift.
- Load your electric utility's Time-of-Use (ToU) tariff calendar into the ERP scheduling engine: Show production planners the exact dollar surcharge of running batch furnaces or ball mills during peak tariff hours before they release the schedule.
- Keep abnormal idle and leak energy out of product standard costs: Route
IDLE_HOLDandLEAK_VARdirectly to period variance accounts so operational inefficiencies trigger engineering action instead of inflating inventory values.
Frequently Asked Questions
How should energy-intensive manufacturers allocate furnace/compressor kWh sub-meter readings, peak-tariff demand charges, and idle warm-up power to work-order cost centres?.
Teams should govern manufacturing energy management software by linking every transaction to its source evidence, timestamp, and assigned owner before permitting downstream posting. Distinct from M064 (standard labour/overhead variance); M120 integrates smart-meter kWh/Nm3 gas consumption with MES machine states (producing vs hot-standby vs leak loss) for accurate unit energy costing. Rather than relying on informal spreadsheet overrides, the workflow enforces a documented verification gate and preserves the original observation whenever a correction is recorded.
How does industrial energy monitoring handle exceptions and mismatches?.
When a discrepancy occurs during industrial energy monitoring, the system routes the blocked record into an owned exception queue rather than silently dropping or auto-adjusting the balance. Assigned operational, quality, and finance owners must review and approve exceptions before posting. Each exception retains the original quantity, date, and counterparty reference until the designated reviewer resolves the variance with supporting evidence.
What should teams test before automating utility cost allocation?.
Before scaling utility cost allocation, run a bounded pilot using historical records that include partial receipts, late updates, duplicate messages, and rejected lines. Verify that the integration preserves idempotency, maintains a clear segregation of duties between operational entry and financial approval, and produces an auditable trail for every state transition.
Compare this workflow with your current setup
Share the step that takes the most manual work, the systems involved and the exceptions your team handles. That gives us a concrete starting point for comparing approaches.
Sources and further reading
Sources checked 15 October 2026. Worked examples and workflow diagrams are original illustrations, not reported client results.

