Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 18 additions & 17 deletions changelog.d/nz-money-normalization.added.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,21 @@ complete money-normalization declaration (cited decimal-text or feed-replayed
rate, explicit quote, half-even rounding, donor money period, the one target
period every factor must age money to, per-family factors or explicit
identities, and quantile-mapped or pending rosters; a concept dropped in
transport can't be normalized) and applies it
with exact rationals, and a `money.normalize@1` transport kernel that replays
its factors against the authenticated feed, refuses a donor money period that
differs from the one CREATE records, and adds an integer cents companion per
column. CREATE now records the donor's `_time_period`. An opt-in preflight names
every consumed money column without exactly one producer and refuses a second
normalization along structural population inheritance, including a currency
conversion followed by normalization; cross-population evidence edges do not
change money ownership. Specs without the resource are unchanged. Factors gain
the additive `money_normalization_input` purpose. Declare New Zealand's
generated calendar-2024 donor factors with the existing factors' validity and
explicit per-profile selection. The donor period is a declared convention
covering flows and asset stocks, checked for consistency against `_time_period`;
ageing non-wage money by AWE growth is provisional until non-wage ageing is
ruled on. The normalization resource is the single source of the USD to NZD
rate. Both monetary rounding stages and receipt sums use exact fractions, reject
non-finite inputs, and check every integer companion for overflow.
transport can't be normalized) and applies it with exact rationals, and a
`money.normalize@1` transport kernel that replays its factors against the
authenticated feed, refuses a donor money period that differs from the one
CREATE records, and adds an integer cents companion per column. CREATE now
records the donor's `_time_period`. An opt-in preflight names every consumed
money column without exactly one producer and refuses a second normalization
along structural population inheritance, including a currency conversion
followed by normalization; cross-population evidence edges do not change money
ownership. Specs without the resource are unchanged. Factors gain the additive
`money_normalization_input` purpose. Declare New Zealand's generated
calendar-2024 donor factors with the existing factors' validity and explicit
per-profile selection. The donor period is a declared convention covering flows
and asset stocks, checked for consistency against `_time_period`. Ruling d1981
adopts AWE growth as the interim ageing index for non-wage money and
pre-declares a hold-fixed sensitivity beside it, which no profile carries yet.
The normalization resource is the single source of the USD to NZD rate. Both
monetary rounding stages and receipt sums use exact fractions, reject non-finite
inputs, and check every integer companion for overflow.
Original file line number Diff line number Diff line change
Expand Up @@ -68,31 +68,31 @@
"central": "donor_cy2024_to_ty2027_central",
"high": "donor_cy2024_to_ty2027_high"
},
"disclosure": "Self-employment income (both columns, signed) is aged by ordinary-time average weekly earnings (AWE) growth, the AWE convention: Stats NZ QES observations through June 2026, then Treasury PREFU 2026 forecast AWE growth of 2.7% (0.5 points lower and higher in the low and high profiles); provisional pending Max's ruling on non-wage ageing (H3). No separate mixed-income index is used."
"disclosure": "Self-employment income (both columns, signed) ages by ordinary-time average weekly earnings (AWE) growth, the AWE convention: Stats NZ QES observations through June 2026, then Treasury PREFU 2026 forecast AWE growth of 2.7% (0.5 points lower and higher in the low and high profiles). Max's ruling d1981 (2026-10-26) adopts this as an interim convention and pre-declares a hold-fixed sensitivity (factor 1), which no profile here carries yet (G8-w3). No separate mixed-income index applies."
},
"capital_income": {
"factors": {
"low": "donor_cy2024_to_ty2027_low",
"central": "donor_cy2024_to_ty2027_central",
"high": "donor_cy2024_to_ty2027_high"
},
"disclosure": "Interest, dividends, rental income and realized capital gains are aged by AWE growth; provisional pending Max's ruling on non-wage ageing (H3). No asset-return or price index is used."
"disclosure": "Interest, dividends, rental income and realized capital gains age by AWE growth. Max's ruling d1981 (2026-10-26) adopts this as an interim convention and pre-declares a hold-fixed sensitivity (factor 1), which no profile here carries yet (G8-w3). No asset-return or price index applies."
},
"pensions": {
"factors": {
"low": "donor_cy2024_to_ty2027_low",
"central": "donor_cy2024_to_ty2027_central",
"high": "donor_cy2024_to_ty2027_high"
},
"disclosure": "Private pension income is aged by AWE growth; provisional pending Max's ruling on non-wage ageing (H3)."
"disclosure": "Private pension income ages by AWE growth. Max's ruling d1981 (2026-10-26) adopts this as an interim convention and pre-declares a hold-fixed sensitivity (factor 1), which no profile here carries yet (G8-w3)."
},
"owner_housing_costs": {
"factors": {
"low": "donor_cy2024_to_ty2027_low",
"central": "donor_cy2024_to_ty2027_central",
"high": "donor_cy2024_to_ty2027_high"
},
"disclosure": "Mortgage interest, mortgage principal and property tax are aged by AWE growth as an interim index; provisional pending Max's ruling on non-wage ageing (H3)."
"disclosure": "Mortgage interest, mortgage principal and property tax age by AWE growth. Max's ruling d1981 (2026-10-26) adopts this as an interim convention and pre-declares a hold-fixed sensitivity (factor 1), which no profile here carries yet (G8-w3)."
}
},
"cents_suffix": "_cents",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,10 +125,16 @@ def test_every_family_uses_the_donor_factor_for_its_profile_with_a_disclosure():
for profile in ("low", "central", "high")
}, family
assert "AWE" in entry["disclosure"], family
disclosure = entry["disclosure"]
assert (
"provisional pending Max's ruling on non-wage ageing (H3)"
in entry["disclosure"]
"Max's ruling d1981 (2026-10-26) adopts this as an interim convention"
in disclosure
), family
assert (
"pre-declares a hold-fixed sensitivity (factor 1), which no profile "
"here carries yet (G8-w3)" in disclosure
), family
assert "provisional" not in disclosure, family


def test_donor_money_basis_cites_model_lineage_as_a_declared_convention():
Expand Down
4 changes: 2 additions & 2 deletions packages/microcosm-build/tests/golden/nz_country_spec.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"country": "nz",
"fingerprint": "e7c44d3f5be90cb135a8bd284800d7c4eefcb7f8d46948ef53ee7764c41698a4",
"fingerprint": "33aeaff6d0bfee7db965eb3fb03c734aa80a1d33024e51611c6668a92ecefdeb",
"gate_ids": [
"calibration_per_family_fit",
"demography_per_family_fit",
Expand Down Expand Up @@ -53,7 +53,7 @@
"gates.json": "fa08b508ce1c93ef7627ca06f3a9e808f8fa6ea6f23ce24fa54c58241bbb9f7f",
"geography_spine.json": "5f2b1bdd9f8768249912ffd0fbcb2f7d4ed493b51c74306f793ec12441fd383f",
"holdout_references.json": "52b5a2360502156da1392a68350e4e7f61b5fd420fa74428819b65886a9f8655",
"money_normalization.json": "799540e5ea5004a39210c60df199b8d15e6b185b3aa68f0daabf44435779aeb6",
"money_normalization.json": "5e817f0b859eacc44a4f96a57923b8af8498b0bbe169565650312b9547c8157c",
"precal_references.json": "420361e424405df2312bd21808d6b6f4c3428b6fe90c44c37ab156ce197aa25d",
"reference_aging.json": "e7619ec7a02ae5f460a46d160e89c9c9836c8b1d03140aed2348761e590504f0",
"reference_intervals.json": "fcc88c0efd5f416aa15a7d5afbeee1d103dd78a136e13b1efc3973d203188412",
Expand Down
Loading