Flagged during #1026's implementation. The PV model's new relative-error EMA (RelMAE, the input to the per-slot downside hedge) updates beside the MAE EMA — after Update's outlier rejections, including the band = max(MAE·10, 200) filter. On a site with MAE ≈ 300 W the band is 3 kW, so a genuine 6 kW cloud-burst miss is rejected and never reaches σ_rel: the gate censors exactly the "the forecast was worthless" events the hedge exists to price. Cloudy volatile sites will read a too-small σ_rel and hedge too little.
Same failure family as the load model's MAE band, which was removed for an analogous reason (multimodal reality rejected as outliers).
Fix direction: split "update coefficients" (keeps the outlier gate — it protects the RLS Beta from bad meter data) from "measure error" (gated only by physical sanity, e.g. against rated power). MAE arguably deserves the same treatment; decide together. Safety direction is positive: honest σ_rel can only increase the hedge on volatile sites, never decrease it.
Flagged during #1026's implementation. The PV model's new relative-error EMA (RelMAE, the input to the per-slot downside hedge) updates beside the MAE EMA — after
Update's outlier rejections, including theband = max(MAE·10, 200)filter. On a site with MAE ≈ 300 W the band is 3 kW, so a genuine 6 kW cloud-burst miss is rejected and never reaches σ_rel: the gate censors exactly the "the forecast was worthless" events the hedge exists to price. Cloudy volatile sites will read a too-small σ_rel and hedge too little.Same failure family as the load model's MAE band, which was removed for an analogous reason (multimodal reality rejected as outliers).
Fix direction: split "update coefficients" (keeps the outlier gate — it protects the RLS Beta from bad meter data) from "measure error" (gated only by physical sanity, e.g. against rated power). MAE arguably deserves the same treatment; decide together. Safety direction is positive: honest σ_rel can only increase the hedge on volatile sites, never decrease it.