Skip to content

fix(priceforecast): bucket local hours, not UTC #1161

Description

@frahlg

Price-forecast buckets are UTC. The baked prior is a local-hour shape (morning 07–09, evening 17–20). For Nordic CET/CEST the evening peak is shifted 1–2 hours, so overnight fill after the day-ahead cutoff is the wrong shape.

Found on master 6eadec3f in go/internal/priceforecast/forecast.go.

What happens

FitFromHistory and Predict index t.UTC(). Comments claim DST-stable hour-of-week. UTC does the opposite for local peaks: CET 19:00 is 18:00 UTC in winter and 17:00 UTC in summer.

MPC extendPricesWithForecast calls the pricer with UTC. Combined with the VAT mismatch (stored 25% vs forecast 0%), the forecast tail is both cheap and time-shifted.

Predict() never uses Counts/MAE despite the package claiming confidence downweighting.

What a fix needs

  • Bucket in the site timezone (or a documented fixed offset), matching how prices are displayed.
  • Test: a SE3 evening peak in CEST must land in the evening prior bucket, not 17:00 UTC.
  • Either use MAE/counts for confidence or stop claiming it.

Open PR overlap: #1044 (stale harvest) and #1051 (static tariff). This is the forecast filler, not the harvest. Recheck those PRs before touching priceforecast.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions