Problem
PR #390 updates the live HMRC SPI target source to the 2023-24 ODS and maps that actual tax year to calendar 2024, but policyengine_uk_data/storage/incomes_projection.csv remains a checked-in generated artifact from the older SPI projection path. hmrc_spi.py skips projection rows at or before _SPI_YEAR and uses incomes_projection.csv for later years, so 2025+ HMRC income-band targets can still reflect the older base distribution.
Proposed work
Regenerate the projection inputs from the 2023-24 SPI base and commit the resulting incomes_projection.csv after reviewing aggregate totals and high-income-band behavior. If needed, modernize utils/incomes_projection.py so it derives its base targets from the same SPI parser used by targets/sources/hmrc_spi.py rather than the older storage/incomes.csv path.
Context
Found during review of #390. This is separate from the ONS age parsing CI failure fixed there.
Problem
PR #390 updates the live HMRC SPI target source to the 2023-24 ODS and maps that actual tax year to calendar 2024, but
policyengine_uk_data/storage/incomes_projection.csvremains a checked-in generated artifact from the older SPI projection path.hmrc_spi.pyskips projection rows at or before_SPI_YEARand usesincomes_projection.csvfor later years, so 2025+ HMRC income-band targets can still reflect the older base distribution.Proposed work
Regenerate the projection inputs from the 2023-24 SPI base and commit the resulting
incomes_projection.csvafter reviewing aggregate totals and high-income-band behavior. If needed, modernizeutils/incomes_projection.pyso it derives its base targets from the same SPI parser used bytargets/sources/hmrc_spi.pyrather than the olderstorage/incomes.csvpath.Context
Found during review of #390. This is separate from the ONS age parsing CI failure fixed there.