Goal
Calibration windows (introduced in #23 as Calibrator.score_windows + the driver decades: list, alongside the existing decade_start / decade_end) are named for decades, but they are really arbitrary disjoint time windows — they need not be ten years, nor aligned to calendar decades.
For v4.0, rename the vocabulary to be general and uniform:
decades: -> windows: (a list of {start, end})
decade_start / decade_end -> window_start / window_end (or fold entirely into the windows: list)
Calibrator.windows stays as the attribute name (already general).
Why defer to v4.0
The rename is a breaking config-schema change (existing params.yml files use decade_*). Per the release strategy, breaking schema changes wait for the v4.0 cut. Until then decades: is kept (see #23) and treated uniformly as the single window mechanism internally.
Related: #23 (introduced decades:), #20 (declarative calibration). Pairs with the other v4.0 schema work (#18).
🤖 Generated with Claude Code
Goal
Calibration windows (introduced in #23 as
Calibrator.score_windows+ the driverdecades:list, alongside the existingdecade_start/decade_end) are named for decades, but they are really arbitrary disjoint time windows — they need not be ten years, nor aligned to calendar decades.For v4.0, rename the vocabulary to be general and uniform:
decades:->windows:(a list of{start, end})decade_start/decade_end->window_start/window_end(or fold entirely into thewindows:list)Calibrator.windowsstays as the attribute name (already general).Why defer to v4.0
The rename is a breaking config-schema change (existing
params.ymlfiles usedecade_*). Per the release strategy, breaking schema changes wait for the v4.0 cut. Until thendecades:is kept (see #23) and treated uniformly as the single window mechanism internally.Related: #23 (introduced
decades:), #20 (declarative calibration). Pairs with the other v4.0 schema work (#18).🤖 Generated with Claude Code