Skip to content

Move SUBRENT from property_income to sublet_income, after policyengine-uk reads sublet_income #508

Description

@MaxGhenis

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:

  1. 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.
  2. 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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions