After event registration, the VTN may send an oadrRegisterReport request listing its expected report capabilities (reportSpecifier entries with reportRequestID, reportSpecifierID, specifierPayloads, and granularity); respond with oadrRegisteredReport confirming which reports your VEN can supply.
When the VTN sends oadrCreateReport with a specific reportRequestID and reportSpecifier, parse the requested reportType (e.g., 'READING', 'BASELINE', 'OPERATING_STATE') and the requested granularity (e.g., PT15M for 15-minute intervals).
Collect telemetry at the requested granularity from your meter or DER controller; package it into an oadrUpdateReport request with an eiReport containing reportRequestID, reportSpecifierID, dtstart, and an array of intervals each with UID, dtstart, duration, and eiReportPayload.
Send oadrUpdateReport to the VTN's report endpoint; the VTN responds with oadrUpdatedReport acknowledging receipt — log the response and check for eiResponse responseCode '200' (success) before clearing the local buffer.
Honor the reportBackDuration window: if a requested report interval is missed (e.g., due to meter outage), backfill the interval in the next oadrUpdateReport with the historical data within the allowed lookback period specified by the VTN.
On program end or event cancellation, send oadrCancelReport with the reportRequestID to stop ongoing report submissions; confirm with oadrCanceledReport from the VTN before releasing report state.
Known gotchas
The reportSpecifierID is a VTN-assigned identifier that ties the report request to a specific measurement point or DER; if your site has multiple meters, each will have a separate specifierID and you must submit separate report intervals — do not aggregate across meters unless the VTN explicitly permits it.
Baseline reports (reportType 'BASELINE') require a methodology agreed with the program administrator (typically a day-matching or regression baseline); submitting actual consumption as a baseline is a program compliance violation that may trigger penalties.
oadrUpdateReport with large numbers of intervals (e.g., sub-minute data for a multi-hour event) can exceed VTN payload size limits; batch reports into chunks aligned with the granularity parameter if the VTN returns HTTP 413 or a responseCode other than '200'.
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