diff --git a/changelog.d/618.changed.md b/changelog.d/618.changed.md new file mode 100644 index 00000000..cf52e674 --- /dev/null +++ b/changelog.d/618.changed.md @@ -0,0 +1 @@ +Document and test the 2022–2036 SPM forecast horizon: 2036 joins the supported household years and 2037 becomes the out-of-horizon example. diff --git a/docs/households.md b/docs/households.md index f83e3fc7..4b776231 100644 --- a/docs/households.md +++ b/docs/households.md @@ -70,7 +70,7 @@ set of keys is: | `as_of` | Optional information-date cutoff accepted by the pinned artifact. | Forecast paths, provider objects and fallback policies are not settings. The -canonical artifact covers 2022–2035. Its receipt distinguishes published +canonical artifact covers 2022–2036. Its receipt distinguishes published national inputs from forecast components and research geography; an unsupported year fails instead of being extrapolated by the wrapper. Scenario forecasts are conditional research estimates, not agency forecasts or uncertainty bounds. diff --git a/docs/microsim.md b/docs/microsim.md index 98dd0244..6a8047e1 100644 --- a/docs/microsim.md +++ b/docs/microsim.md @@ -64,7 +64,7 @@ The same `spm=` selection is accepted by `pe.us.managed_microsimulation`; its returned country simulation exposes `spm_config` and `spm_provenance()` too. See the [household SPM contract](households.md#spm-geography-and-measurement-selection) for exact keys, -the 2022–2035 artifact horizon and explicit geography errors. No provider or +the 2022–2036 artifact horizon and explicit geography errors. No provider or forecast-file path can replace the bundle's pinned artifact. For a small local development dataset, explicitly opt out of managed data diff --git a/tests/test_spm_household.py b/tests/test_spm_household.py index 5e63ca8e..03401682 100644 --- a/tests/test_spm_household.py +++ b/tests/test_spm_household.py @@ -62,7 +62,7 @@ def household_inputs(**overrides): return values -@pytest.mark.parametrize("year", [2024, 2026, 2035]) +@pytest.mark.parametrize("year", [2024, 2026, 2035, 2036]) def test_explicit_national_amounts_and_component_provenance(year, tmp_path): result = pe.us.calculate_household( **household_inputs(year=year), @@ -390,7 +390,7 @@ def test_axes_reforms_and_scenarios_keep_detached_receipts(): assert selection == {"geography_kind": "national", "scenario": "ce_trend"} -@pytest.mark.parametrize("year", [2021, 2036]) +@pytest.mark.parametrize("year", [2021, 2037]) def test_year_outside_canonical_horizon_is_not_silently_extrapolated(year): with pytest.raises(ValueError, match="no entry|unavailable|not available"): pe.us.calculate_household(