Problem
Rent a household gets from subletting part of its home (FRS household SUBRENT) lands in the head's property_income. policyengine_uk_data/datasets/frs.py (origin/main) adds household.tentyp2.isin((5, 6)) * household.subrent, commented "Owned and subletting", to the head's property_income, along with cvpay and royyr1. Nothing populates sublet_income, which policyengine-uk defines as an input (variables/input/sublet_income.py) but reads nowhere today.
The means tests treat the two kinds of rent differently:
- Rent from a let property the claimant does not occupy is actual income from capital. Pension Credit disregards it (SPC Regs 2002 Sch IV para 18), as does pension-age HB (HB (SPC) Regs 2006 Sch 5 para 22). The property's value counts as capital instead.
- Rent from someone occupying part of the claimant's home counts, less £20 a week per occupier: SPC Regs reg 15(5)(i) with Sch IV para 9; HB (SPC) reg 29(1)(v) with Sch 5 para 10.
Once policyengine-uk drops property_income from the Pension Credit and HB income lists, which branch legacy-capital-derived-income does, owner-occupier sublet rent would fall out of those means tests while it sits inside property_income.
Change
Write SUBRENT to sublet_income on the household reference person instead of adding it to property_income. In the same change, update the microcosm FRS spine (packages/microcosm-build/src/microcosm/build/uk_runtime/frs_spine.py), which builds the same columns.
Order (do not move the data first)
Nothing in policyengine-uk reads sublet_income yet. If the data moves first, sublet rent drops out of income tax, HBAI net income and every means test until the model catches up. Ship in this order:
- A policyengine-uk release that reads
sublet_income in income tax (rent-a-room receipts), HBAI income, and the PC, HB, CTR and IS means tests with the £20 per-occupier disregard. The work is in policyengine-uk branches legacy-capital-derived-income and boarder-lodger-rent; they are agreeing one disregard variable and one parameter.
- This data move, with a lock bump.
Notes from the SUBRENT fix (branch frs-property-losses-subrent, stacked on #503)
- That branch makes SUBRENT count for every tenure, not only
TENTYP2 5 or 6, because SubLet is asked of all households. The move should take all tenures.
SUBALLOW = 1 means the amount is before allowable expenses, so gross receipts; 2 means after. The FRS has no expense amount from which to rebuild gross receipts for SUBALLOW = 2, and it does not record whether the let is furnished, which rent-a-room relief requires. Document the column as "receipts as reported" and say which answers are net.
- FRS 2024-25 has a few dozen households with SUBRENT > 0. Don't publish a tenure split, because the cells are small.
- The tests in
tests/test_frs_property_income.py (conservation and locality) would split along with the column.
Related: policyengine-uk#1954 (Pension Credit income omissions).
🤖 Generated with Claude Code
Problem
Rent a household gets from subletting part of its home (FRS household
SUBRENT) lands in the head'sproperty_income.policyengine_uk_data/datasets/frs.py(origin/main) addshousehold.tentyp2.isin((5, 6)) * household.subrent, commented "Owned and subletting", to the head'sproperty_income, along withcvpayandroyyr1. Nothing populatessublet_income, which policyengine-uk defines as an input (variables/input/sublet_income.py) but reads nowhere today.The means tests treat the two kinds of rent differently:
Once policyengine-uk drops
property_incomefrom the Pension Credit and HB income lists, which branchlegacy-capital-derived-incomedoes, owner-occupier sublet rent would fall out of those means tests while it sits insideproperty_income.Change
Write SUBRENT to
sublet_incomeon the household reference person instead of adding it toproperty_income. In the same change, update the microcosm FRS spine (packages/microcosm-build/src/microcosm/build/uk_runtime/frs_spine.py), which builds the same columns.Order (do not move the data first)
Nothing in policyengine-uk reads
sublet_incomeyet. If the data moves first, sublet rent drops out of income tax, HBAI net income and every means test until the model catches up. Ship in this order:sublet_incomein income tax (rent-a-room receipts), HBAI income, and the PC, HB, CTR and IS means tests with the £20 per-occupier disregard. The work is in policyengine-uk brancheslegacy-capital-derived-incomeandboarder-lodger-rent; they are agreeing one disregard variable and one parameter.Notes from the SUBRENT fix (branch frs-property-losses-subrent, stacked on #503)
TENTYP25 or 6, because SubLet is asked of all households. The move should take all tenures.SUBALLOW= 1 means the amount is before allowable expenses, so gross receipts; 2 means after. The FRS has no expense amount from which to rebuild gross receipts forSUBALLOW= 2, and it does not record whether the let is furnished, which rent-a-room relief requires. Document the column as "receipts as reported" and say which answers are net.tests/test_frs_property_income.py(conservation and locality) would split along with the column.Related: policyengine-uk#1954 (Pension Credit income omissions).
🤖 Generated with Claude Code