v4.2 · 7 ISOs streaming · last retrain 02:14 UTC

Power-market
forecasting, built for the control room.

Horizon ingests load, weather, and price from any U.S. ISO, trains 22+ forecasting models against it, and runs scheduled retrains every night — in a dark, dense interface designed for analysts who live in the product.

Self-hosted or managed One-click .pkl export 65+ REST endpoints
horizon · monitoring  /  pjm-pse-load  /  xgboost · sched-08  ·  running
2026-05-04 · 14:08:32 UTC
Day-ahead forecast — PJM PSEG zone
7,482 MW peak
▲ 1.94% vs prior 24h MAPE 2.21%
actual load
xgboost forecast
80% / 95% conformal interval
22+
forecasting models
7
U.S. ISOs connected
60+
engineered features
24h
nightly auto-retrain
<3%
typical MAPE
65+
REST endpoints
01 · Live ISO Data
Stop wrangling APIs. Start forecasting.

Plug into seven major U.S. independent system operators with one click.

Live polling, automatic backfills, and a unified data schema across all seven ISOs. Every dataset arrives paired with high-resolution weather from Open-Meteo — historical for training, forward for forecasting.

PJMstreaming
Hourly load by zone, day-ahead LMP, real-time LMP across the largest U.S. grid operator.
21 zones1h poll
ERCOTstreaming
Hourly load by weather zone, settlement-point prices for the Texas market.
8 zones1h poll
MISOstreaming
Hourly load by LRZ, ex-ante and ex-post LMP for Midcontinent ISO.
10 zones1h poll
CAISOstreaming
Hourly load by TAC area, day-ahead and real-time LMP across California.
3 areas1h poll
NYISOstreaming
Hourly load by zone, day-ahead and real-time LBMP for New York.
11 zones1h poll
ISO-NEstreaming
Hourly load by zone, day-ahead and real-time LMP for New England.
8 zones1h poll
SPPstreaming
Hourly load and settlement-location prices across the Southwest Power Pool.
14 nodes1h poll
+ Custom
Bring your own load history via CSV. Same feature engineering, same model library, same workflow.
CSV upload
02 · Model Library
22 algorithms · 4 families

Pick the right tool. Or compare them side-by-side.

From regulator-friendly linear baselines to deep neural networks and meta-learners — every model ships with plain-English explanations alongside the technical version.

A · 7 models
Statistical
Fast, interpretable, regulator-friendly. Strong baselines, excellent for short histories.
linear_regA straight line through your data — the simplest baseline.
ridgeLinear regression with a guardrail to prevent over-reliance on any single feature.
lassoMore aggressive than ridge — automatically eliminates useless features.
quantile_regPredicts a specific percentile — worst-case or best-case for risk management.
arimaClassic time-series model — gold-standard baseline using load history alone.
holt_wintersTracks level, trend, and seasonal pattern simultaneously. Surprisingly effective.
prophetDecomposes load into trend + daily + weekly + holiday components.
B · 5 models
Machine Learning
Industry workhorses for short-term load forecasting. Excellent accuracy with weather data.
random_forestMany independent decision trees on random data slices, then averages predictions.
gbmThe industry default. Each tree fixes the mistakes of all previous trees.
xgboostHundreds of small trees, each correcting the previous. Most popular in data science.
svrDraws a tube around the data and only penalizes predictions outside it.
knnFinds the K most similar hours in history and averages them. No training required.
C · 4 models
Deep Learning
Neural networks for capturing complex non-linear patterns and long-range dependencies.
mlpA multi-layer neural network learning patterns by adjusting weighted connections.
lstmNeural network with a memory cell that remembers important patterns from hours ago.
gruLSTM's simpler cousin with two gates instead of three. Faster, similar accuracy.
cnn_lstmTwo-stage hybrid: CNN scans for local patterns, LSTM reads them as a sequence.
D · 4 models · OpenSTEF
Hybrid & Ensemble
When a single model is not enough. Combines or layers algorithms for state-of-the-art accuracy.
ensembleRidge + Random Forest + Gradient Boosting averaged. Often the most robust choice.
arima_xgbTwo-layer: ARIMA handles linear trend; XGBoost learns nonlinear residuals.
advanced_stackTrains five models, then learns the optimal blend via a meta-learner.
similar_dayWeighted average of similar historical days, blended with an XGBoost component.
+ OPENSTEF
Industry-standard energy forecasting, in one click.
Six OpenSTEF model variants — XGBoost, LightGBM, ARIMA, and quantile bands — maintained by LF Energy and the European TSO community.
Learn more →
03 · Feature Engineering
60+ engineered features · automatic

The pipeline most teams spend six months building.

Eighteen always-on base features plus ten optional advanced groups. Toggle them on per model. Every feature explained in plain English with the math one click away.

Time 5

  • hour_of_day
  • day_of_week
  • month
  • weekend_flag
  • holiday_flag

Lags 5

  • load_t-1h
  • load_t-24h
  • load_t-168h
  • roll_mean_24h
  • roll_mean_168h

Weather 4

  • temperature_F
  • dewpoint_F
  • humidity
  • wind_speed_mph

Interactions 4

  • temp_squared
  • cooling_degree
  • heating_degree
  • apparent_temp_F

Cyclical Time opt

  • sin_hour, cos_hour
  • sin_dow, cos_dow
  • sin_month, cos_month
  • year_progress (0–1)

Wavelet + EMD opt

  • haar_approx
  • haar_detail_1, _2, _3
  • emd_imf_1, _2, _3
  • multi_scale_var
↳ AND ALSO
Time-of-Use flags · Weather Derived · Temperature × Time · Weather Cross · Extended Lags · Auto-selection
Toggle advanced feature groups on or off based on the model and dataset. Auto-selection by correlation or variance with tunable thresholds.
↳ WHY IT MATTERS
Weather alone explains 60–70% of short-term load variation.
Adding weather to a model typically improves accuracy by 30–50%. Horizon does this automatically — including the audit trail proving you did.
04 · Modeling Workflow
Wizard or expert mode

Six steps from raw data to a scheduled nightly forecast.

A guided wizard walks new users from dataset to deployed model. Power users flip to Expert mode for the original single-page control room with every control on screen.

step.01
Dataset
Pick load history. Tied to one ISO zone or custom CSV.
step.02
Weather
One-click pull from Open-Meteo for the dataset's exact location.
step.03
Model
Choose from 22 algorithms. Each with a plain-English description.
step.0404
Tune
Adjust hyperparameters with sliders. Defaults work well — tuning is optional.
step.0505
Train
Click Train Forecast. Runs in the background; navigate away freely.
step.0606
Results
Compare runs, drill into diagnostics, schedule for nightly retraining.
teaching philosophy: explain in simple language first, then give the technical version. A platform that doubles as a forecasting tutor.
Read the docs →
05 · Advanced Analytics
Beyond MAPE

Diagnostics built for defending forecasts in front of regulators.

Conformal prediction intervals, drift detection, Diebold-Mariano significance tests, peak-timing accuracy, and similar-day matching — every accuracy claim backed by an audit trail.

Hierarchical zone reconciliation

PJM · MinT

Train separate forecasts per zone. Reconcile so zones add up to the system total — top-down, bottom-up, or statistically optimal MinT.

PJM RTO total
142,810
· PSEG
7,482
· PEPCO
6,124
· BGE
5,440
· DOM
12,940
· COMED
10,890
· AEP
14,980
· + 15 more zones
84,954
RECONCILIATION: top-down bottom-up mint ●

Model leaderboard

7d MAPE
modelMAPERMSE
advanced_stack1.84132
xgboost2.21148
ensemble2.39156
lstm2.74171
arima_xgb2.91180
random_forest3.18196
prophet3.62214

Net load (load − renewables)

CAISO

Subtract forecasted solar and wind from gross load to produce the net-load curve dispatch and procurement teams actually plan against.

— gross load — net load (after renewables)
06 · Export & Integration
Every UI feature is also an API call

A complete REST API. Plus portable trained artifacts.

65+ documented endpoints cover datasets, training, forecasting, scheduling, weather, ISOs, and analytics. Every trained model exports as a Python pickle plus a complete retraining kit.

POST   /api/v1/forecasts curl · python · node
# request a 24h forecast for PJM PSEG zone
{
  "dataset_id": "pjm-pse-load",
  "model": "xgboost",
  "horizon_hours": 24,
  "weather": "open-meteo",
  "feature_groups": ["base", "cyclical", "weather_cross"],
  "intervals": { "conformal": [0.80, 0.95] },
  "schedule": { "cron": "0 2 * * *" }
}

# → 201 Created · run_id=r_8f4ac · MAPE est. 2.21%

One-click .pkl export

portable

Every trained model exports as a Python pickle along with feature engineering code, hyperparameters, and dependencies. Drop it into any Python environment.

$ horizon export r_8f4ac --kit
xgb_pseg_2026-05-04.pkl (2.4 MB)
retrain_kit.zip (86 KB)

CSV forecast export

hourly

Hourly predictions, prediction intervals, actuals (when available), and per-hour error metrics. Suitable for dispatch tools, settlement systems, and BI dashboards.

07 · Built for the control room
Operators, traders, risk teams

Designed in close collaboration with day-ahead market participants.

Every screen reflects how the work is actually done — not how a textbook says it should be done.

Utility Load Forecasters
Replace spreadsheets and aging tools. Day-ahead forecasts with explainable accuracy and a defensible audit trail.
Power Traders
Forecast LMPs for any ISO. Net-load forecasting tuned for renewables-heavy portfolios.
Grid Operators
Real-time visibility into ingestion, weather, and forecast accuracy across all zones.
Risk Managers
Conformal prediction intervals for VaR. Quantile regression for worst-case planning.
Data Scientists
A pre-built feature pipeline, 22 baseline models, and one-click .pkl export.
Energy Consultants
Stand up a forecast for any ISO in minutes. Export trained models to deliver to clients.
self-hosted · or fully managed

The control room is ready.
Bring your load history.

Stand up Horizon on your own infrastructure or run it managed. We'll connect your ISOs, ingest your data, and have a forecast running in days, not quarters.