Skip to content

v1.7.0 — views_frames_reconcile (forecast reconciliation)

Choose a tag to compare

@Polichinel Polichinel released this 26 Jun 05:48
· 72 commits to main since this release
55dda2d

Adds a third sibling package, views_frames_reconcile, to the views-frames mono-wheel (alongside views_frames + views_frames_summarize). CONFORMANCE_FLOOR stays 1.0.0 — additive over the frozen v1 surface.

views_frames_reconcile (ADR-023)

Forecast reconciliation — make grid (pgm) predictions sum, per posterior draw, to their country (cm) totals — as a numpy-only, views_frames-only frame operation (the same kind of thing as views_frames_summarize, ADR-017).

  • ReconciliationModule(map_keys, map_vals).reconcile(cm_frame, pgm_frame) → a new pgm PredictionFrame. The (time, priogrid_gid) → country_id mapping is injected as arrays, never fetched (ADR-014/ADR-023).
  • reconcile_proportional(grid, country) — the per-draw top-down proportional method (zeros preserved, country totals authoritative, non-negative).
  • assert_reconcile_contract(...) — the conformance suite.

How it got here

Faithfully relocated WET from views-postprocessing (where it was mis-homed and stranded) — the ported modules differ from the originals by import lines only. Proven correct by the frozen views-reporting torch-oracle parity tests and a 136-case new-vs-old np.array_equal bit-identity head-to-head.

Notes

  • Charter: frame-reconciliation only; no IO, scoring, plotting, fetched mapping, or foreign views_*. Import-DAG views_frames_reconcile → {views_frames}.
  • WET before DRY: grouping.pycross_level_align fold deferred; the probabilistic upgrade (C-37) is a future sibling module.
  • Consumer repoint (views-models) + views-postprocessing deletion are the cross-repo cutover, gated on this release.
  • Full changelog: CHANGELOG.md.