Skip to case study
PK® / Case study

Independent product case study / Public-data intelligence

Voltline

Make electricity data useful at the geography it can actually support.

Voltline combines the latest available EIA-930 submissions for Texas with monthly residential aggregates for every U.S. state and D.C., while explaining why official ZIP-level electricity usage or a single ZIP rate is not available.

Primary source
U.S. EIA API v2
Coverage
Texas hourly · 50 states + D.C. monthly
Signals
Grid demand · residential price · sales · customers
System boundary
Public context, not operational telemetry

01 / Brief

A decision, not a dashboard.

Problem

Electricity data changes meaning with geography and reporting cadence.

EIA-930 exposes useful hourly balancing-authority submissions, while retail-sales data supports monthly state aggregates. Neither source provides household or ZIP-level usage, so the product must make scope as visible as the numbers.

Primary user

A reader comparing signals without needing to become an energy-data specialist.

The product supports someone checking Texas hourly movement, comparing a state’s monthly residential price and sales, or asking whether a ZIP can support an official electricity claim—not an operator or a household-bill estimator.

Ownership

End-to-end product work

  • Framed the user decision and the system’s non-operational boundary.
  • Designed the information hierarchy, workflow trace, loading, retry, and source states.
  • Implemented the EIA retrieval route, validation, normalization, timestamp selection, and caching policy.
  • Expanded geography to every state and D.C. while making the unsupported ZIP-level request a useful, sourced boundary result.
  • Defined transparent context rules and documented evaluation and failure surfaces.

02 / Architecture

Evidence moves through a visible system.

Each stage has a bounded responsibility. The interface preserves source context and leaves the final judgment with the person using it.

  1. 01

    Request the bounded feed

    The server asks EIA for a four-day ERCO window containing demand, day-ahead forecast, net generation, and total interchange.

    EIA API v2 primary · bounded four-day window · legacy fallback · 15-second timeout
  2. 02

    Validate and normalize

    Rows are checked for a usable data array and finite numeric values, then sorted using their reported timestamps.

    Invalid or absent demand ends the request with a visible error
  3. 03

    Align the evidence

    Demand sets the current reporting hour. Forecast is matched to that exact timestamp; generation and interchange use their latest numeric observations and keep their own timestamps visible.

    Latest demand + matching forecast + latest available adjacent signals
  4. 04

    Explain with deterministic rules

    The interface checks, in order, proximity to the displayed-window peak, forecast variance, and hour-over-hour movement before returning a neutral recent-range state.

    95% of recent peak · 4% forecast variance · 5% hourly movement
  5. 05

    Preserve provenance

    The view shows the source, reported period, observation count, geographic level, limitations, and direct routes to official EIA documentation.

    Hourly and monthly freshness · source links · explicit non-alert and non-household disclaimers

03 / Product decisions

The constraints shape the experience.

Tradeoffs made visible

Explainability over prediction

The context labels are fixed thresholds over retrieved values. They are easy to inspect and challenge, but they do not forecast conditions or infer grid reliability.

Aligned where possible, timestamped where not

Forecast is compared only when it shares the latest demand timestamp. Generation and interchange may lag, so their own latest timestamps remain visible instead of implying alignment.

Fresh enough for context, cached by design

The route allows a ten-minute shared cache with stale-while-revalidate support. That lowers repeated upstream load while reinforcing that this is an hourly public view, not operational telemetry.

A boundary is better than a fabricated estimate

The ZIP view validates the five-digit format, then explains that EIA does not publish consumption or average price by ZIP. It offers supported state and service-territory alternatives without implying a household, tariff, or utility match.

Failure is a designed state

The primary hourly source times out or rejects the request

The route attempts the bounded EIA API v2 feed first, then a legacy EIA dashboard fallback. If neither is usable, it returns a no-store error; the interface clears stale results, announces the failure, offers retry, and links to EIA.

The payload shape or demand series is unusable

Voltline stops rather than filling the dashboard with inferred values. Forecast, generation, and interchange can remain explicitly unreported without invalidating a valid demand observation.

A second request overlaps the first

The client prevents concurrent loads and ignores responses from superseded requests, keeping late network responses from replacing newer interface state.

04 / Evaluation

What the system should be tested against.

This is the evaluation surface documented by the implementation—not a claim that every target has already been met.

01

Source freshness

Check that the latest reported hour and every adjacent-signal timestamp remain visible, and that caching never masquerades as real-time telemetry.

02

Schema resilience

Exercise malformed arrays, nonnumeric values, missing demand, and individually missing forecast, generation, or interchange observations.

03

Timestamp integrity

Verify sorting, exact forecast alignment, independent latest timestamps, recent-history ordering, and boundary behavior across reporting dates.

04

Explanation fidelity

Test every threshold and its priority order, then confirm the copy never upgrades a pattern into an alert, forecast, or reliability claim.

05

Geographic integrity

Verify every state plus D.C., state-versus-U.S. comparisons, aggregate per-customer math, and the ZIP view’s refusal to infer household usage, tariffs, or a unique utility.

05 / Provenance

Every conclusion keeps its source boundary.

Live data

U.S. EIA Hourly Electric Grid Monitor

The route retrieves EIA-930 region data for ERCO and exposes the official balancing-authority dashboard as the primary verification path.

Source ↗
State data

U.S. EIA Electricity Sales to Ultimate Customers

The state explorer uses monthly residential sales, customer counts, and average retail price as state aggregates; recent months can be preliminary and revised.

Source ↗
Geography boundary

EIA ZIP-level data FAQ

EIA explicitly states that it does not publish electricity consumption or average retail price by ZIP Code, which is why Voltline does not manufacture a ZIP estimate.

Source ↗
Transformation

Voltline server route

Numeric validation, chronological ordering, signal selection, the 36-observation history, and cache headers are implemented locally in the site’s read-only API route.

Internal logic
Interpretation

Visible client-side signal rules

Near-peak, forecast-variance, and hourly-movement labels are deterministic presentation logic—not EIA conclusions and not a model-generated forecast.

Internal logic

Implementation note

Last verified from source

This case study was checked against the current Voltline client and /api/grid-live implementation on this date. Live values, upstream availability, and EIA revisions can change after the review; the product displays its own latest reported and retrieval context when run.

See the system under real conditions

Try Voltline.

Open live demo