Flexidao

Meter Data Validation

Meter Data for Bridge T-EACs — v1.6

Your files are not stored.

Uploaded files are processed in memory only and are never saved.

Validate your meter data files

Upload up to 20 XLSX or CSV files following the Meter Data for Bridge T-EACs standard template. We'll check each one against all format and data quality requirements.

Drag & drop your XLSX or CSV files here

or click to browse

Choose files

or , , or

Standard Template

Download the Meter Data for Bridge T-EACs file template or examples with sample data.

The valid example is a full local day and passes. The warnings example starts at 01:00 and stops at 22:00 local and has one null reading, so it passes with midnight and missing-reading warnings. The errors example has the same partial day plus a non-numeric value, so it fails and still shows those warnings.

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 .xlsx or .csv format
  • File must contain exactly one worksheet
  • File must contain exactly one eac_facility_id value across all rows
  • File may contain at most 10 distinct meter_id values. Split a larger set of meters across separate files.
  • File must use exactly one unit_of_measurement, one local_timezone and one eac_registry_id across all rows — these are properties of the facility and cannot vary row to row

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-01T00:00:00-06:00
local_timezone IANA Area/Location format America/Chicago
datetime_start_utc RFC 3339, must end with Z or +00:00 2025-01-01T06:00:00Z
value Numeric, . for decimals, no other characters. Enter 0 when the plant did not produce (outage, curtailment). Enter null when the plant was producing but the metering system failed to record a reading. Never leave the cell blank. 10321.887321
unit_of_measurement One of: GWh, MWh, kWh, Wh MWh
meter_id Meter identifier for the datapoint. A file may contain at most 10 distinct values. If the meter_id is not known and there is only one dataset per eac_facility_id, the eac_facility_id can be used as the meter_id. 19883332
eac_facility_id Production device ID as used in EAC Registry GEN2804
eac_registry_id Valid registry ID from the m-rets
metering_type Optional One of gross or net. Defaults to gross when the column is omitted. For gross the value must be non-negative; net allows negative values. gross
metering_share Optional One of contracted or total generation. Defaults to contracted when the column is omitted. contracted

Timestamps must be plain text. Enter datetime_start_local and datetime_start_utc as RFC 3339 strings — do not use Excel's native date/time cell type. Excel dates are timezone-naive and drop the offset, so they are rejected. In Excel, format the column as Text before entering the values.

Time-Series Requirements

  • No blank cells: All required columns must be populated in every data row — no empty cells allowed.
  • Time continuity: Every interval needs a row with a timestamp and a value. No gaps are allowed, and no interval may be skipped because there is nothing to report.
  • Zero vs. missing readings: Use 0 when the plant was not producing, for example during an outage or curtailment. Use null when the plant was producing but the metering system failed and no reading exists. A null interval passes validation but is counted in a warning, because no energy can be certified for it.
  • Interval readings: Values must represent generation within the time interval, not accumulated meter totals. A meter series whose values never decrease over 24 or more readings is flagged as a likely cumulative register export.
  • Consistent intervals: All time intervals within a meter series must be the same duration.
  • Supported granularity: The interval between consecutive readings must be 5 min, 15 min, 30 min, or 1 hour. Daily rows (e.g. 24 hourly columns per day), monthly totals, or any other interval are rejected.
  • Local midnight bounds: Each meter series should start at local midnight (00:00:00) and finish at local midnight. Finishing at midnight means the last reading plus the series interval lands on 00:00:00 — hourly data ends with a 23:00 reading, 15-minute data with 23:45. A series that starts or stops mid-day is warned, not rejected.
  • UTC/local consistency: datetime_start_utc must match datetime_start_local adjusted by the timezone offset.
  • Timezone offset consistency: The offset written in datetime_start_local must be the offset that local_timezone is actually on at that instant (e.g. America/Chicago is -06:00 in winter and -05:00 in summer).
  • DST handling: UTC timestamps must stay continuous and unique through DST transitions. Local timestamps must reflect the change (missing hour in spring, repeated hour in fall) by switching their offset — a file that keeps the winter offset all year is rejected by the timezone offset check.

API Integration

Validate files programmatically by sending a POST request with one XLSX or CSV file under file, or up to 20 files under files. See the full API reference for endpoints, request and response schemas, and status codes.

Limitations

Max file size

8 MB

Larger files are rejected with 413.

Max rows

50,000

Files with more rows are rejected with 400.

Max files

20

Batch uploads with more files are rejected with 400.

Rate limit

15 / min

Per IP address; exceeding returns 429.

Files are processed in memory only and are never stored.