What this is about
Two related concerns surfaced while diagnosing why the EnergyZero live series (green) and the Augur ML forecast (purple) don't share an amplitude scale on the Prices tab.
Concern 1 — apples-to-oranges comparator (UX)
static/js/modules/constants.js:32-34 explicitly notes:
// Note: energy_zero is excluded — it's ALL_IN consumer pricing (incl. energy tax,
// ODE, transport) which is ~100 EUR/MWh above wholesale.
The dashboard plots:
- Green diamonds: EnergyZero live (per the comment, all-in consumer)
- Purple dashed: Augur ML Forecast — wholesale p50 (
data-processor.js:303)
- Orange dotted: Augur Consumer Forecast — wholesale × 1.21 + ~110 EUR/MWh surcharge (
data-processor.js:362)
The natural eye-level comparison "is the green line near the dashed line?" is misleading: the correct apples-to-apples comparator for the green diamonds is the orange dotted line, not the purple dashed line.
Possible UX improvements (pick one, this is a design call):
- Option A (least invasive): rename trace names so the layer is obvious — e.g. "Augur Wholesale (p50)" and "Augur Consumer (incl. VAT)" instead of "Augur ML Forecast" and "Augur Consumer Forecast"; add a one-line legend hint about the EZ layer
- Option B: add a layer toggle (Wholesale / Consumer) so only one set of comparable traces shows at a time
- Option C: plot EZ wholesale (if available from a different EZ endpoint) alongside EZ consumer with clear labels
Concern 2 — verify what EZ actually returns (correctness)
The constants.js comment says EZ is all-in consumer. But in the screenshot that triggered this issue, the green diamonds dipped to near zero during a midday trough. Consumer pricing should not reach zero given a +110 EUR/MWh surcharge structure — wholesale would have to crash to ~−130 EUR/MWh to drag consumer to zero. That's possible in extreme solar-surplus events but uncommon.
It's worth verifying empirically:
Out of scope
- The timezone misalignment is a separate bug (filed as its own issue)
- The lower-band clamp at 0 is a separate bug (filed as its own issue)
Severity
Low — neither correctness-breaking nor model-breaking, but the current dashboard invites the wrong visual conclusion ("LightGBM is mis-predicting consumer prices") when the real story is "user is comparing two different price layers, and one of them may not be labelled correctly."
Related
memory/pricing-layers.md
data-processor.js:303,362
constants.js:32-34,73-95
🤖 Generated with Claude Code
What this is about
Two related concerns surfaced while diagnosing why the EnergyZero live series (green) and the Augur ML forecast (purple) don't share an amplitude scale on the Prices tab.
Concern 1 — apples-to-oranges comparator (UX)
static/js/modules/constants.js:32-34explicitly notes:The dashboard plots:
data-processor.js:303)data-processor.js:362)The natural eye-level comparison "is the green line near the dashed line?" is misleading: the correct apples-to-apples comparator for the green diamonds is the orange dotted line, not the purple dashed line.
Possible UX improvements (pick one, this is a design call):
Concern 2 — verify what EZ actually returns (correctness)
The constants.js comment says EZ is all-in consumer. But in the screenshot that triggered this issue, the green diamonds dipped to near zero during a midday trough. Consumer pricing should not reach zero given a +110 EUR/MWh surcharge structure — wholesale would have to crash to ~−130 EUR/MWh to drag consumer to zero. That's possible in extreme solar-surplus events but uncommon.
It's worth verifying empirically:
api-client.js) and confirm whatpricePoint.pricerepresents in current unitsOut of scope
Severity
Low — neither correctness-breaking nor model-breaking, but the current dashboard invites the wrong visual conclusion ("LightGBM is mis-predicting consumer prices") when the real story is "user is comparing two different price layers, and one of them may not be labelled correctly."
Related
memory/pricing-layers.mddata-processor.js:303,362constants.js:32-34,73-95🤖 Generated with Claude Code