DPU
Reference & GlossaryData Reference (for your data team)

Metering

How raw meter reads land in DPU and become queryable readings.

Metering data — interval and register reads — enters DPU as flat files (CSV or .dat), not as a fixed public schema you map columns into ahead of time.

Getting reads in

Raw files reach DPU one of two ways:

  • Direct upload — up to 15 files per call, 50 MB each, staged directly to Snowflake.
  • Snowpipe auto-ingest — files dropped in your cloud storage are picked up automatically and loaded as they arrive.

At this landing stage DPU does not parse individual columns — each file is loaded as a single unparsed record per row into a raw landing table. Field-level parsing, typing, and validation happen in the next stage, the enrichment (VEE) pipeline, which is specific to your source system's file layout.

The exact column-level file format (headers, delimiters, date formats) is defined per source system during onboarding — talk to your DPU representative for the specifics of your setup.

What comes out the other side

Once a file has moved through enrichment, reads are available as typed rows with fields including:

  • sdp_id — the service/delivery point the read belongs to
  • read_ts / interval_start / interval_end — when the read occurred
  • channel_cd — which register/channel the value is from
  • value, prior_value, adjusted_value — raw and validated/estimated values
  • dpu_status — pass/fail/estimate status from the enrichment pipeline

These land in the Core mart as core_fct_interval_reading (interval reads) and core_fct_register_reading (cumulative register reads) — see Core.

Failed or questionable reads

Reads that fail a validation rule, or that get gap-filled with an estimate, don't disappear — they're tracked as exceptions and are queryable and resolvable from Managing Exceptions. See Data Enrichment for how the rules that produce these are configured.

On this page