Connect to the Meter Data Management (MDM) or Head-End System (HES) data export: common delivery mechanisms include SFTP file drops (CSV or XML), Green Button ESPI push notifications, or a direct MDM REST API — confirm the integration method with the utility or MDM vendor.
Ingest raw interval reads into a staging table preserving the original meter ID, read timestamp (with UTC offset), read value (kWh or kW), interval length (typically 900 seconds for 15-minute data), and a quality code indicating whether the read is measured, estimated, or manually edited.
Apply validation rules: check for physical plausibility (value within [0, meter_max_kW * interval_hours]), check for frozen reads (same non-zero value repeated across N consecutive intervals, typically flagged at 3+), check for negative consumption (allowable only for net-metered accounts), and check for missing intervals (gap in the time series).
For missing or failed intervals, apply estimation: use the substitution method appropriate to the tariff or regulatory requirement — common options are prior-day same-hour average, regression against a temperature variable, or profile-based estimation using a customer class load shape.
Apply editing: replace flagged reads with estimated values, set the quality code to 'E' (estimated) or 'S' (substituted), and log the original raw value and the VEE rule that triggered the substitution for audit purposes.
Deliver validated interval data to the billing system (CIS) and downstream analytics; ensure the VEE log is retained per the utility's regulatory record-retention policy.
Known gotchas
Frozen read detection must account for legitimately zero-consumption intervals (e.g., vacant buildings, circuit breakers open); use a 'frozen non-zero read' flag rather than flagging all repeated identical values, and cross-reference with outage or disconnect records.
DST transitions produce a 23-hour day (spring forward) and a 25-hour day (fall back) in local-time files; VEE completeness checks that expect exactly 96 intervals per day will falsely flag these days as missing data unless they account for the DST gap or overlap.
Quality codes vary by MDM vendor and utility; a code meaning 'estimated' in one system may mean 'manually edited' in another — normalize quality codes to a canonical set during ingestion and preserve the original code for traceability.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp