Pull Logs -> Normalize Per Batch -> Compare Baseline -> Estimate Loss -> Flag Cause

Utility Anomaly and Leak Watcher

The agent reads the boiler, fuel, compressor, and energy logs the plant already keeps and normalizes them per batch, then flags the days where consumption drifted away from what the output should have needed. Each flag comes with an estimated money loss and the most likely cause, from a fouled boiler to a failed steam trap to a compressed-air leak. The utilities engineer gets a short daily list instead of a surprise on the monthly invoice.

The Problem

The air compressor ran all weekend for a plant that was idle. The bill explained it a month later.

Over a quiet weekend the compressors cycle almost as hard as a full production day. A trap has failed open, and a header leak has been hissing for weeks, but nobody is on the floor to hear it. The energy meter records all of it, and so does the historian, yet nobody reads those logs against actual output. The loss only becomes visible when the monthly bill arrives, and by then a month of fuel is gone.

What Changes

Read the logs you already keep, every day, not once a month.

The agent pulls the boiler, fuel, compressor, and meter logs, normalizes each against the batches actually run, and compares the result to the plant's own recent baseline. When a day drifts, it estimates the money lost and names the most likely cause so the engineer knows where to look. It runs on the exports you already produce, so there is no new metering to install first.

Humans stay in control: the agent flags the drift and its likely cause, and your engineer confirms it on the floor before any adjustment.

HOW THE AGENT WORKS

TRIGGERLLMAPIDECISIONACTIONWAIT
TRIGGERDaily Log Export ArrivesThe overnight utility logs close and the run starts before the morning meeting.
APILoad Utility and Batch LogsPulls boiler, fuel, compressor, and meter data plus the batches produced that day.
LLMNormalize and Detect DriftNormalizes consumption per batch and compares it to the plant's recent baseline.
DECISIONLoss Above Threshold?
LLMEstimate Loss and CausePuts a money figure on each drift and names the single most likely cause.
ACTIONSend Flags to EngineerDelivers the day's anomalies with cost and cause to the utilities engineer.
The agent does not adjust boilers, close valves, or shut down compressors. Your utilities engineer does. The agent removes the month-long wait between a loss starting and anyone noticing it.

HOW TO BUILD IT

Three levels of depth. Pick the one that matches where you are.

For the ops person who needs to understand what's involved and brief their team.

Your Plant LogsBoiler, compressor, meter, batch
The AgentWorkflow engine + LLM
Your Engineer's InboxDaily loss flags

WHAT YOUR TEAM PROVIDES ONCE

  • Boiler and fuel logs - firing rate, fuel used, and steam produced
  • Compressor run logs - run hours and load against demand
  • Energy meter data - kWh, peak demand, and power factor
  • The batch log - what was actually produced, for per-batch normalization
  • A recent baseline - the plant's own normal consumption to compare against
What happens day-to-day: each morning the engineer sees a short list of yesterday's utility anomalies, each with an estimated cost and a likely cause. Clean days produce no noise, so a flag means something worth a walk to the plant.

For the IT person or technical lead who needs to scope the integration.

INQUIRY SOURCES

Boiler, fuel, and compressor logs (CSV or historian export)
Energy meter data (meter export or BMS)
The batch or production log for normalization

WORKFLOW ENGINE (N8N)

Daily scheduled run
Pull utility and batch logs
Normalize consumption per batch
Detect drift from baseline
Filter losses above threshold
Estimate cost and likely cause
Send daily flags

CONNECTS TO

Historian (OSIsoft PI / AVEVA / Ignition)Read: boiler, compressor, meter tags. Write: none
Energy meters or BMS (Schneider EcoStruxure / Siemens Desigo)Read: kWh, demand, power factor. Write: none
MES or batch log (AVEVA MES / Excel)Read: batches produced. Write: none
Notification (Email / Microsoft Teams / Slack)Read: none. Write: daily anomaly flags
WITHOUT PMS API

Without direct access, the plant drops daily CSV exports of the logs into a watched folder and the agent runs from those. Same flags, one manual step.

WITH PMS API

With API or historian access, the agent reads yesterday's tags directly, normalizes against the batch log, and posts flags before the morning meeting. Nothing to export by hand. Best experience.

For the person who wants to build this agent step by step. Each node below maps to an n8n workflow node.

TRIGGERNode 1
Schedule Trigger - fires the daily run
Cron node set for 06:00, after the overnight logs close.
Output: A run signal with yesterday's date range.
APINode 2
HTTP Request - pull the logs
Read boiler, compressor, meter, and batch data for the previous day from the historian or watched folder.
Output: Raw time-series and batch tables.
APINode 3
Function - normalize per batch
Divide each utility total by the batches or output produced that day to get per-batch consumption.
Output: Per-batch consumption figures alongside the recent baseline.
LLMNode 4
LLM - detect drift and name the cause
Send per-batch figures, baseline, and unit costs to the model and parse the JSON reply.
Output: Flagged metrics with estimated loss and a likely cause.
You are a plant utilities analyst. Compare yesterday's per-batch utility consumption against the baseline and flag abnormal drift. Input: {utility_json} with baseline and yesterday's figures. For each flagged metric estimate the money lost using the unit costs in {unit_costs}, and name the single most likely cause from: boiler fouling or efficiency drift, failed steam trap, compressed-air leak, high peak demand, or low power factor. Respond ONLY with valid JSON. No explanation.
INPUT
{"unit_costs":{"gas_per_therm":1.1,"power_per_kwh":0.18},"baseline":{"compressor_kwh_per_batch":42},"yesterday":{"batches":6,"compressor_kwh_per_batch":71}}
OUTPUT
{"flags":[{"metric":"compressor_kwh_per_batch","yesterday":71,"baseline":42,"est_loss":"USD 31","likely_cause":"compressed-air leak","note":"Run energy per batch 69 percent above baseline on low output, typical of a header leak"}]}
DECISIONNode 5
IF - keep losses above threshold
Drop flags below the money-loss floor so small noise does not reach the engineer.
Output: The day's material anomalies.
ACTIONNode 6
Send Email - deliver the flags
Format each flag with the estimated loss and likely cause, then email the utilities engineer.
Output: A sent daily digest.
MVP vs Advanced — Where To Start
MVP — START HERE
  • Export one day of boiler, compressor, and meter logs plus the batch count to CSV.
  • Add a unit-cost sheet for gas and electricity.
  • Build the trigger and file read in n8n and compute per-batch consumption.
  • Set a baseline from a few weeks of normal running.
  • Add the LLM node with the drift and cause prompt and test on a known bad day.
  • Email the flags to the engineer and confirm the first week's causes on the floor.
ADVANCED — ADD LATER
  • =+ Read tags live from the historian instead of daily CSVs.
  • =+ Split the baseline by product so different recipes get a fair comparison.
  • =+ Track power-factor and peak-demand penalties against the tariff to catch billing thresholds.
  • =+ Trend each anomaly so a slow boiler fouling shows before it becomes a big loss.
  • =+ Log confirmed causes to teach the agent which flags proved real.
  • =+ Roll weekly and monthly loss totals into the utilities cost report.

Full Video Walkthrough Coming Soon

A short walkthrough of how the agent turns daily utility logs into money-loss flags with a likely cause.

Register to be notified

Everything on this page is free to learn.

When you're ready to build — do it yourself or bring us in.

OTHER AGENTS IN LEASING & MARKETING

Frequently asked questions

Utility Anomaly and Leak Watcher is an AI agent that catches boiler drift, steam-trap losses, and air leaks before they hit the bill.
The air compressor ran all weekend for a plant that was idle. The bill explained it a month later. The Utility Anomaly and Leak Watcher addresses this: catches boiler drift, steam-trap losses, and air leaks before they hit the bill.
No. Your team stays in control. The agent does not adjust boilers, close valves, or shut down compressors. Your utilities engineer does. The agent removes the month-long wait between a loss starting and anyone noticing it.