Skip to content

Savings and dividends are banded without the property income below them (ITA 2007 s. 16) #2351

Closed

Description

@MaxGhenis

What the law says

ITA 2007 s. 16 treats savings and dividend income as the highest part of a person's total income. Dividends are the higher part of that (s. 16(5)). This decides:

  • how much savings income falls under the starting rate limit (s. 16(1)(a));
  • the rate on savings income above it (s. 16(1)(aa)-(ab));
  • the rate on dividend income (s. 16(1)(b)).

Property income is neither savings nor dividend income, so it sits below both and uses up the bands first. That holds in 2026-27, and from 2027-28 too, when Finance Act 2026 gives property income its own rates.

What the model does

earned_taxable_income subtracts taxable_property_income (it is in gov.hmrc.income_tax.earned_taxable_income_exclusions, since #1408), because property_income_tax taxes property income separately. But the savings and dividend band variables use earned_taxable_income as the "other income" the savings or dividends sit on top of:

  • basic_rate_savings_income_pre_starter, basic_rate_savings_income, higher_rate_savings_income, add_rate_savings_income;
  • savings_starter_rate_income;
  • dividend_income_tax.

So savings and dividends are banded as if the property income were not there.

Minimal reproduction

policyengine-uk main at c6d15c8, 2026, a single adult in England:

Income dividend_income_tax Law
£40,000 pay + £20,000 dividends £4,528.75 £4,528.75
£40,000 property income + £20,000 dividends £2,096.25 £4,528.75

With £40,000 of property income, taxable non-savings income is £27,430. The £500 dividend allowance and £9,770 of dividends then fill the basic-rate band at 10.75% (£1,050.28), and £9,730 is at 35.75% (£3,478.48), totalling £4,528.75. The model charges all £19,500 at 10.75%.

from policyengine_uk import Simulation
sit = {"people": {"p": {"age": {"2026": 45}, "property_income": {"2026": 40_000}, "dividend_income": {"2026": 20_000}}},
       "benunits": {"b": {"members": ["p"]}}, "households": {"h": {"members": ["p"], "country": {"2026": "ENGLAND"}}}}
Simulation(situation=sit).calculate("dividend_income_tax", 2026)  # [2096.25]; law 4528.75

Savings income is affected the same way, both its band and the starting-rate taper. #1799's taper bug currently masks the starting-rate part.

Where it showed up

PolicyBench UK round 2, scenario 069: a Scottish taxpayer with £13,194 of other taxable income, £11,858 of property income and £30,813 of dividends. The model's dividend tax is £4,835.40; with the property income in the band base it is £7,799.90. Three of six models gave £12,852 of Income Tax, against the reference's £9,887.09. The £2,964.50 gap is exactly this.

Activity

  1. MaxGhenis commented on Oct 11, 2026

    @MaxGhenis
    CollaboratorAuthor

    Evidence from PolicyBench UK round 2, an internal audit of policyengine-uk 2.126.7 (references identical on 2.126.8). Six models answered the same 200 households. A reference adversary (a blind GPT-6.1 Sol judge, then reconciliation with the engine log) reviewed consensus disagreements and a sample of single-model misses, and each verdict was adjudicated against the engine code and the law. Cells that turn on this issue:

    Cell Reference Models (answer × count) With the fix Class
    scenario_069/income_tax £9,887.09 £12,852 ×3 £12,851.59 engine defect
    scenario_188/income_tax £25,725.80 £26,834 ×5 £26,833.60 engine defect

    With #2352 alone: 069 goes to £12,851.59 (3 of 6 models agree) and 188 to £26,833.60 (5 of 6 agree). No other cell of the 2,800 moves.

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