[Draft] Fix fiscal year parameter handling (on-the-fly approach - needs work)#1434
Draft
[Draft] Fix fiscal year parameter handling (on-the-fly approach - needs work)#1434
Conversation
Previously, the fiscal year conversion in convert_to_fiscal_year_parameters()
only covered years 2015-2025 (range(2015, 2026)). When querying parameters
for year 2026 or later, the system fell back to January 1 as the reference
date instead of April 30.
This caused policies that change on April 6 (UK fiscal year start) to not
be reflected in annual simulations. For example, the two-child limit repeal
on April 6, 2026 would show as limit=2 for 2026 simulations instead of
limit=infinity.
The fix:
1. Add convert_instant_to_fiscal_year() function that converts year-only
and January 1 queries to April 30 of that year
2. Override get_parameters_at_instant() in CountryTaxBenefitSystem to
apply this conversion on-the-fly
3. Make convert_to_fiscal_year_parameters() a no-op (deprecated) since
the conversion is now done on-the-fly
This ensures:
- param("2026") returns the April 30, 2026 value (fiscal year 2026/27)
- Specific date queries like param("2026-04-05") are unchanged
- Works for any future year without needing to extend a range
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Problem
Previously,
convert_to_fiscal_year_parameters()only covered years 2015-2025 (range(2015, 2026)). When querying parameters for year 2026 or later, the system fell back to January 1 as the reference date instead of April 30.This caused policies that change on April 6 (UK fiscal year start) to not be reflected in annual simulations. For example:
limit=2for 2026 simulations instead oflimit=infinitySolution
convert_instant_to_fiscal_year()function that converts year-only and January 1 queries to April 30 of that yearget_parameters_at_instant()inCountryTaxBenefitSystemto apply this conversion on-the-flyconvert_to_fiscal_year_parameters()a no-op (deprecated) since the conversion is now done on-the-flyThis ensures:
param("2026")returns the April 30, 2026 value (fiscal year 2026/27)param("2026-04-05")are unchangedTest plan
🤖 Generated with Claude Code