Validate your meter data file
Upload an XLSX file following the Bridge T-EACs standard template. We'll check it against all format and data quality requirements.
Drag & drop your XLSX file here
or click to browse
or
Standard Template
Download the Bridge T-EACs file template or an example with sample data.
Required columns:
datetime_start_local, local_timezone, datetime_start_utc, value, unit_of_measurement, meter_id, eac_facility_id, eac_registry_id
Validation Requirements
File-Level
- File must be
.xlsxformat - File must contain exactly one worksheet
- File must contain exactly one
eac_facility_idvalue across all rows
Required Headers
All 8 headers must be present in the first row:
datetime_start_local
local_timezone
datetime_start_utc
value
unit_of_measurement
meter_id
eac_facility_id
eac_registry_id
Column Format Requirements
| Column | Format | Example |
|---|---|---|
| datetime_start_local | RFC 3339 with timezone offset | 2025-01-01T01:00:00+01:00 |
| local_timezone | IANA Area/Location format | America/Chicago |
| datetime_start_utc | RFC 3339, must end with Z or +00:00 |
2025-01-01T00:00:00Z |
| value | Numeric, . for decimals, no other characters |
10321.887321 |
| unit_of_measurement | One of: GWh, MWh, kWh, Wh |
MWh |
| meter_id | Meter identifier for the datapoint | 19883332 |
| eac_facility_id | Production device ID as used in EAC Registry | GEN2804 |
| eac_registry_id | Valid registry ID from the | m-rets |
Valid registry IDs:
anre, atos, brugel, carbonzero, cel, cer, cer-cne, certigy-hr, cesar, cmo.grexel, cmo.iceland, creg, e-cwape, eego, eex, elering, ercot, evident, finextra, gec, gec-jp, g-rex.albania, g-rex.denmark, g-rex.hungary, g-rex.latvia, g-rex-lithuania, g-rex-luxembourg, g-rex.serbia, hknr, j-credit, jepx, k-re100, lagie, mirecs-apx, m-rets, m-rets-gc, myverticer, nar-apx, nar-apx-gc, nc-rets, necs, nepool-gis, nvtrec, nygats, nzec, nzecs, ofgem, okte, ote, pjm-gats, pjm-gats-gc, poi.borzen.si, pronovo, recsgse, rews, seda, tge, tigr, t-rec, tso-cy, vector, vreg, wregis, yek-g
API Integration
Validate files programmatically by sending a POST request with the XLSX file as multipart form data.
POST /api/validate
curl -X POST /api/validate \ -F "file=@your-meter-data.xlsx"
import requests url = "/api/validate" with open("your-meter-data.xlsx", "rb") as f: resp = requests.post(url, files={"file": f}) result = resp.json() print("Status:", result["overallStatus"]) for check in result["checks"]: print(f" {check['status']:8s} {check['name']}")
Response format (JSON):
overallStatus—"pass"or"fail"summary— File name, row count, facility/meter IDs, time range, intervalchecks[]— Array of validation checks, each withid,status,message, andissues[]
Time-Series Requirements
- No blank cells: All required columns must be populated in every data row — no empty cells allowed.
- Time continuity: A value and timestamp must be provided for every interval, even if null, empty, or zero. No gaps are allowed.
- Interval readings: Values must represent generation within the time interval, not accumulated meter totals.
- Consistent intervals: All time intervals must be the same duration (hourly or sub-hourly).
- UTC/local consistency:
datetime_start_utcmust matchdatetime_start_localadjusted by the timezone offset. - DST handling: If readings are in UTC, no gaps or duplicates during DST transitions. If in local time, DST changes must be correctly reflected (missing hour in spring, duplicate in fall).