LOADLENS — Adaptive Grid Load Forecasting Platform Champlin Enterprises LLC · champlinenterprises.com

Architecture

How LoadLens works.

Four components in a closed loop. Each one is straightforward. The research contribution is the integration.

1

Ingest real grid data

LoadLens ingests hourly demand from the EIA Open Data API (aggregated from PJM, MISO, ERCOT, and other ISOs). For pilot cooperatives, it accepts smart meter data via CSV upload. Weather observations come from NOAA's Climate Data Online API.

2

Run three heterogeneous base models

Instead of one model, LoadLens runs three specialized forecasters in parallel — each designed for a different signal type. Trend/Seasonality captures daily and annual cycles. Weather Response models temperature-driven HVAC load. Momentum extrapolates from recent 6-hour trends.

3

Grade every prediction against reality

Every forecast is automatically graded against actual measured load. This creates a continuous stream of per-model accuracy data — stored as forecast ID, actual load, error in MW, and error as percentage. The grading loop runs every two hours.

4

Adapt weights automatically

Before each forecast cycle, the system computes inverse-error-weighted ensemble weights from recent grading data. Models with lower recent error get higher weight. The mechanism responds to actual grading data in near real-time, not on a fixed schedule.

Weight Evolution · Illustrative

Captured from an early ad-hoc backtest. After this run we replaced the comparator with a pre-registered eval — the formal per-regime MAPE table for both the live and advanced ensembles is on the methodology page and updates automatically.

Model Initial Weight Adapted Weight MAPE Reason
Trend / Seasonality 40% 84% 5.27% Lowest error — upweighted
Weather Response 35% 9% 31.79% High error — downweighted
Momentum 25% 8% 31.93% High error — downweighted

The Closed Loop

Unlike academic ML systems trained offline and deployed statically, LoadLens is continuously learning from its own grading data. Every two hours:

:00 — Ingest latest hourly demand from EIA

:15 — Run 24-hour adaptive ensemble forecast

:30 — Grade previous forecasts against actuals

:45 — AI analyzes grading data, writes research journal entry (every 6hr)

Pre-Registered Evaluation

The closed loop above describes the production system. The methodology page describes the protocol that judges it: declared baselines (persistence-168, seasonal-naive, hour×DOW mean, OLS-on-temperature), declared regime strata (BASELINE / HEAT_DOME / COLD_SNAP / WEEKEND / HOLIDAY / RAMP), declared falsification conditions, all versioned in EVAL_PROTOCOL.md.

Reproducible in one command: php artisan loadlens:eval --pre-registered=v1. Receipts written to storage/app/eval/latest.json; the methodology page renders directly from that file.

Open Research Questions

  1. Does regime-aware adaptive weighting demonstrably outperform static ensemble weighting at the cooperative-distribution scale, where weekly persistence is weaker than at transmission aggregation? (Pilot AMI feed required to test directly.)
  2. Does rolling / online conformal calibration close the under-coverage gap that static split-conformal exhibits on multi-month holdouts?
  3. What is the minimum data history required for reliable regime detection in different operating conditions?
  4. How do the meta-learner's adaptive weights compare to an oracle post-hoc optimal weighting (ceiling analysis)?
  5. Does the architecture generalize beyond PJM to other grid operators with characteristically different load patterns? (Synthetic Midwest cooperative simulation in place; real second-ISO data is the next step.)

Live findings on the methodology and learning pages.