Calculator D7

Forecast Error Attribution: Bias, Variance, and Residual Seasonality Diagnostics

Forecast error attribution breaks down why your weather or power output forecast was wrong — separating consistent over/under-predictions (bias), unpredictable scatter (variance), and leftover repeating patterns (residual seasonality).

Industry Applications
ISO dispatch forecasting (CAISO, ERCOT, NYISO), solar farm O&M, grid-scale storage arbitrage
Key Standards
NERC BAL-001-3, CAISO FAR §2.3, IEEE 1547-2018 Annex L
Typical Scale
Operational at 100+ sites per utility; latency budget ≤ 800 ms end-to-end
Audit Requirement
FERC Order 881 mandates annual attribution reports for >1 MW solar resources

⚠️ Why It Matters

1
Unmodeled sky camera diurnal drift
2
Persistent under-forecast of cloud-initiated ramp events
3
Violation of CAISO Forecast Accuracy Requirements (FAR) §2.3.1
4
Penalty assessments up to $0.50/MWh
5
Loss of dispatch priority in real-time markets
6
Reduced participation in ancillary service markets

📘 Definition

Forecast error attribution is a diagnostic framework that decomposes total forecast error into orthogonal components: systematic bias (mean offset), irreducible variance (stochastic uncertainty), and residual seasonality (unmodeled periodic structure). It supports model validation, pipeline auditing, and ISO-compliant uncertainty reporting by isolating structural deficiencies from noise. The decomposition is grounded in squared-error loss decomposition and spectral residual analysis.

🎨 Concept Diagram

True IrradianceForecast OutputBias = −40Residual = True − Forecast →

AI-generated illustration for visual understanding

💡 Engineering Insight

Residual seasonality isn’t just ‘leftover noise’ — it’s often the fingerprint of a violated Nyquist-Shannon condition in your sensor fusion stack. A 45-minute spectral peak almost always traces back to mismatched thermal time constants between pyranometer response (τ ≈ 12 s) and inverter telemetry polling (default 60 s), not model physics. Fix the hardware timing first — no ML model can learn what the sensors never captured.

📖 Detailed Explanation

At its core, forecast error attribution answers a simple question: 'Is my model broken, noisy, or blind?' Bias tells you whether the model consistently leans left or right — like a misaligned compass. Variance tells you how much it wobbles even when pointed correctly — like wind shaking the needle. Residual seasonality reveals hidden rhythms the model didn’t see — like an unnoticed pendulum swinging beneath the compass.

Deeper diagnostics require proper temporal alignment: raw sky camera frames are timestamped at exposure start, but NWP outputs are valid at model step centers, and SCADA registers values at PLC scan completion. Without sub-millisecond UTC sync (e.g., PTPv2), phase errors smear spectral peaks and inflate apparent variance. This is why ISOs now require traceable timestamp provenance in FAR submissions.

Advanced attribution incorporates causal graph constraints: e.g., if sky camera cloud motion vectors show 3.2 m/s westward drift but residual seasonality peaks every 47 minutes at azimuth 285°, the root cause is likely insufficient frame-rate buffering in the optical flow engine — not the ML model. Modern pipelines embed attribution as a runtime guardrail: any Aₛ > 15 W/m² at 40–50 min triggers automatic reversion to legacy NWP-only mode while alerting the MLOps team.

🔄 Engineering Workflow

Step 1
Step 1: Align timestamps across SCADA, sky camera video frames, and NWP outputs to UTC nanosecond precision
Step 2
Step 2: Compute residuals (y_true − y_hat) on synchronized 15-s granular data, then aggregate to target forecast horizon (e.g., 5-min mean)
Step 3
Step 3: Apply Hodrick-Prescott filter to isolate trend; compute μₑ and remove bias from residuals
Step 4
Step 4: Perform Lomb-Scargle periodogram on de-trended residuals to detect and quantify Aₛ and dominant periods
Step 5
Step 5: Estimate σ²ₑ via robust variance (IQR-based) on bias-corrected residuals, excluding outliers >3 MAD
Step 6
Step 6: Compute SLR by integrating aliased-band energy (e.g., 0.0003–0.0007 Hz) vs. full 0.0001–0.01 Hz spectrum
Step 7
Step 7: Generate ISO-compliant attribution report with traceable metadata (sensor IDs, version hashes, NWP model run ID)

📋 Decision Guide

Rock/Field Condition Recommended Design Action
Bias > |75| W/m² AND Aₛ < 5 W/m² Recalibrate sky camera radiometric chain using NIST-traceable irradiance reference cell; update NWP post-processing bias correction table.
σ²ₑ > 480 (W/m²)² AND SLR > 0.25 Upgrade sky camera to global shutter with ≥2 Hz native frame rate; implement hardware-level anti-aliasing filter before ADC.
Aₛ > 18 W/m² AND dominant period = 45±5 min Reconfigure SCADA polling to align with local thermal inertia time constant; add 2nd-order low-pass filter to irradiance fusion layer.

📊 Key Properties & Parameters

Bias (μₑ)

-120 to +90 W/m² (irradiance), -8% to +5% (power output, relative to nameplate)

Mean forecast error over a defined horizon and aggregation window, quantifying systematic directional deviation.

⚡ Engineering Impact:

Directly determines required reserve margin uplift and triggers recalibration of sky camera calibration coefficients or NWP bias correction tables.

Variance (σ²ₑ)

140–650 (W/m²)² for 5-min GHI forecasts; 0.8–3.2 %² (relative) for 15-min PV plant output

Variance of forecast residuals after bias removal, capturing irreducible stochastic uncertainty from sensor noise, microscale turbulence, and model discretization.

⚡ Engineering Impact:

Drives probabilistic forecast width and determines whether ensemble spread meets ERCOT PPA confidence interval requirements (e.g., 90% PI width < 18% of capacity).

Residual Seasonality Amplitude (Aₛ)

3–22 W/m² (GHI), 0.4–2.7% (output), measured via Lomb-Scargle periodogram peak height

Peak amplitude of statistically significant Fourier modes in de-trended residuals at sub-daily periods (e.g., 15–90 min), indicating unmodeled physical cycles.

⚡ Engineering Impact:

Triggers re-evaluation of SCADA sampling rate alignment, sky camera shutter timing, or NWP boundary layer physics parameterization.

Spectral Leakage Ratio (SLR)

0.08–0.35 (unitless, 0–1 scale)

Ratio of energy in aliased harmonics (e.g., 10-min mode appearing as 20-min artifact) to total residual spectral energy, quantifying undersampling impact.

⚡ Engineering Impact:

Determines whether sensor fusion architecture requires anti-aliasing filters or higher-frequency sky camera frame rates (>1 Hz).

📐 Key Formulas

Mean Forecast Error (Bias)

μₑ = (1/N) ∑(yᵢ − ŷᵢ)

Arithmetic mean of pointwise forecast errors over N samples

Variables:
Symbol Name Unit Description
μₑ Mean Forecast Error Arithmetic mean of pointwise forecast errors over N samples
N Number of Samples Total count of forecast-observation pairs
yᵢ Actual Observation Observed value at time or sample i
ŷᵢ Forecast Value Predicted or forecasted value at time or sample i
Typical Ranges:
5-min GHI forecast (desert site)
-110 to +65 W/m²
15-min PV plant output (coastal site)
-7.2% to +4.1%
⚠️ |μₑ| ≤ 45 W/m² (CAISO Tier 1 compliance threshold)

Robust Variance Estimate

σ²ₑ = [IQR(yᵢ − ŷᵢ) / 1.349]²

Variance estimate resistant to outliers using interquartile range scaling

Variables:
Symbol Name Unit Description
σ²ₑ Robust Variance Estimate unit² Variance estimate resistant to outliers using interquartile range scaling
IQR Interquartile Range unit Difference between the 75th and 25th percentiles of the residuals
yᵢ Observed Value unit Actual observed response for the i-th observation
ŷᵢ Predicted Value unit Model-predicted response for the i-th observation
Typical Ranges:
High-resolution sky camera + NWP fusion
140–320 (W/m²)²
NWP-only (GFS 0.25°)
420–650 (W/m²)²
⚠️ σ²ₑ ≤ 380 (W/m²)² for ISO-certified 5-min forecasts

Lomb-Scargle Peak Amplitude (Aₛ)

Aₛ = 2 × √[P(fₚ)/N]

Amplitude estimate of strongest periodic component in residuals, where P(fₚ) is Lomb-Scargle power at dominant frequency fₚ

Variables:
Symbol Name Unit Description
Aₛ Lomb-Scargle Peak Amplitude Amplitude estimate of strongest periodic component in residuals
P(fₚ) Lomb-Scargle Power at Dominant Frequency Spectral power at the dominant frequency fₚ
N Number of Data Points Total count of observations in the time series
Typical Ranges:
Well-aligned 2-Hz sky camera + 10-s SCADA
3–8 W/m²
Legacy 0.5-Hz camera + 60-s SCADA
15–22 W/m²
⚠️ Aₛ ≤ 10 W/m² for ISO dispatch-grade forecasts

🏭 Engineering Example

SolarStar Kern County (CA)

N/A
SLR
0.29
Bias (μₑ)
-83 W/m²
Dominant Period
46.2 min
Variance (σ²ₑ)
512 (W/m²)²
SCADA Polling Interval
60 s
Residual Seasonality Amplitude (Aₛ)
21.4 W/m²

🏗️ Applications

  • Real-time ISO dispatch compliance
  • Autonomous recalibration of sky camera networks
  • NWP model selection for regional fleet forecasting

📋 Real Project Case

CAISO Zone 12 Solar Ramp Event Mitigation

2.1 GW solar portfolio across Central Valley, CA

Challenge: Unpredicted cloud-edge ramp rates exceeding 150 MW/min causing reserve shortfalls
CAISO Zone 12 Solar Ramp Event MitigationSensors (Input Layer)CAMHemispherical SkyPYROn-siteNWPGEOS-RWeight:0.620.280.10Quantile Regression Forest Ensemble(dP/dt > 120 MW/min → Alert)Ramp Alert152 MW/min observedReal-time Reconciliation EngineKalman gain ∝ 1/RMSE²Challenge: Unpredicted cloud-edge ramps
Read full case study →

🎨 Technical Diagrams

Residuals (W/m²)Time →0+50−50Bias = −83 W/m²
Spectral PowerFrequency (mHz) →0Maxfₚ = 0.36 mHzAₛ = 21.4 W/m²
BiasVarianceResidualSeasonalityError Decomposition (Orthogonal)

📚 References