feat: add student loan plan uprating to economic assumptions#1499
Merged
nwoodruff-co merged 6 commits intomainfrom Feb 19, 2026
Merged
feat: add student loan plan uprating to economic assumptions#1499nwoodruff-co merged 6 commits intomainfrom
nwoodruff-co merged 6 commits intomainfrom
Conversation
Re-labels student loan plans each year based on cohort start year, writes off Plan 1 loans after 29 years, and samples new Plan 5 entrants for England using empirical age/income take-up probabilities.
- Replace cumulative stochastic sampling with idempotent approach - Each year's assignment depends only on base year data + year parameter - Add Plan 1/2 holders in extended age bands (30-35 for Plan 2, 41-46 for Plan 1) - Use highest_education == TERTIARY as signal for graduate status - Apply flat 40% take-up rate derived from SLC forecasts - Remove income-decile take-up table (unsourced)
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
uprate_student_loan_plans()ineconomic_assumptions.pyto be idempotent — each year's output depends only on base year data and year parameter, not accumulated state from previous yearshighest_education == TERTIARYas signal for graduate status when adding new cohort membersChanges from v1
Validation results
Age distributions by year:
Totals (weighted):
Plan 2 totals remain below SLC targets (~4-5M) due to FRS under-coverage of graduate cohort — reweighting tracked as follow-on work in policyengine-uk-data.
Test plan