Skip to content

tax_band before 2017-18 puts the higher band at £150,000, so 2016-17 higher-rate taxpayers get the Marriage Allowance #2356

Open

Description

@MaxGhenis

What the law says

A person can receive the Marriage Allowance only if none of their income is charged at the higher or additional rate (ITA 2007 s. 55B). In 2016-17 the higher rate applied above a £32,000 basic rate limit.

What the model does

tax_band's first formula, which covers periods before 2017-04-06 and so the periods 2016 and 2017, places the bands at allowances + thresholds[0], allowances + thresholds[-2] and allowances + thresholds[-1]. In 2016 rates.uk.thresholds is [0, 32,000, 150,000, 10,000,000], so:

  • the higher band starts at £150,000 above the allowances;
  • the additional band starts at £10,000,000.

A higher-rate taxpayer is labelled BASIC. meets_marriage_allowance_income_conditions reads tax_band, so they pass.

Minimal reproduction

policyengine-uk main at c6d15c8: a married couple in England, one earning £60,000 and the other £5,000.

Period tax_band of the £60,000 earner meets_marriage_allowance_income_conditions marriage_allowance
2016 BASIC True £1,060
2017 BASIC True £1,150
2018 HIGHER False £0
from policyengine_uk import Simulation
year = 2016
sit = {"people": {"a": {"age": {year: 40}, "employment_income": {year: 60_000}}, "b": {"age": {year: 40}, "employment_income": {year: 5_000}}},
       "benunits": {"u": {"members": ["a", "b"], "is_married": {year: True}}}, "households": {"h": {"members": ["a", "b"], "country": {year: "ENGLAND"}}}}
Simulation(situation=sit).calculate("marriage_allowance", year)  # [1060., 0.]; law: nil for a higher-rate recipient

Fix

Use thresholds[1] and thresholds[2] in the pre-2017 formula, as the 2017-04-06 formula does. #2348 stops the Personal Savings Allowance reading tax_band, so after it, Marriage Allowance is the only remaining reader.

Found in review of #2348.

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