Skip to content

Fix NEED calibration to use gross income for income band assignment#288

Open
nikhilwoodruff wants to merge 3 commits intomainfrom
fix-need-income-definition
Open

Fix NEED calibration to use gross income for income band assignment#288
nikhilwoodruff wants to merge 3 commits intomainfrom
fix-need-income-definition

Conversation

@nikhilwoodruff
Copy link
Contributor

Summary

NEED 2023 income bands are based on Experian modelled gross household income, but the calibration code was using hbai_household_net_income (disposable income after taxes) to assign households to bands. This caused high-income households to be placed in lower bands than they should be, and vice versa — the £100k-£150k and £150k+ bands had far too few households.

This switches to household_gross_income (LCFS P344p for training data, household_gross_income variable for FRS raking) in both calibration steps:

  • 1D income-band calibration on LCFS training data (_calibrate_energy_to_need)
  • 4D iterative raking on FRS (impute_consumption)

The QRF model predictors are unchanged — hbai_household_net_income remains a useful predictor for the consumption imputation model itself.

Test plan

  • Rebuild consumption model and enhanced FRS dataset
  • Compare energy spending by NEED income band against targets
  • Verify decile-level energy spending patterns remain sensible

nikhilwoodruff and others added 3 commits March 8, 2026 21:45
NEED 2023 income bands use Experian modelled gross household income, not
net income. The previous code used hbai_household_net_income which
misallocated households across bands (especially at extremes — too few in
£100k+ bands). This switches to household_gross_income (LCFS P344p) for
both the LCFS training calibration and the FRS 4D raking step.

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
The test was evaluating NEED band fit using hbai_household_net_income
while the raking now targets household_gross_income.

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant