Skip to content

Income tax loss_relief deducts each trading loss twice, and again in every later year the input carries into #2087

Description

@MaxGhenis

Problem

loss_relief (policyengine_uk/variables/gov/hmrc/income_tax/reliefs/loss_relief.py) is:

current_loss = person("trading_loss", period)
previous_loss = person("trading_loss", period.last_year)
return current_loss + previous_loss

It is deducted only from self-employment income (taxable_self_employment_income_deductions), and taxable_self_employment_income floors the result at zero.

  1. Each loss is deducted twice. A year's loss is deducted in full in that year and again in the next, however much of it the first year used.
  2. A one-off loss recurs in every later year. trading_loss is an input, and the engine carries an input into later years that are not set (auto_carry_over_input_variables in tax_benefit_system.py). Take a loss entered only for 2025. It is read as 2026's trading_loss, then 2027's, and so on, so loss_relief deducts it twice in each of those years. To avoid this, users have to enter zeros for the later years; Charge Class 4 NICs on Chapter 2 profits, after capital allowances, the trading allowance and Schedule 2 losses #1919 documents that on trading_loss.
  3. The statutory limits are missing.
    • ITA 2007 s.64(2) deducts a loss in calculating net income, against general income. The deduction is for the loss-making year, the previous year, or both. The model's second deduction falls in the following year instead.
    • s.83(2) carries forward only "the part of the loss for which relief has not been given".
    • s.83(3) deducts it "only from profits of the trade". s.84 deducts it from the next year's trade profits, then each later year's, "until all the unrelieved loss is deducted".
    • The model neither tracks the part already used nor carries an excess beyond one year: whatever self-employment income does not absorb is lost.

#1919 fixes this for Class 4 NICs only:

  • ni_class_4_trading_loss counts a loss only in the year it is entered for;
  • ni_class_4_losses_brought_forward carries unrelieved losses forward year by year, with no ten-year spiral limit.

SSCBA 1992 Sch. 2 para. 3(4) ties Class 4 loss relief to the income tax deduction, so once income tax is fixed the two should agree.

Fix

On impact: the #1919 PR body reports trading_loss totalling £0 in enhanced_frs_2024_25.h5@1.56.16. Check the current dataset before estimating anything.

Follow-up from #1919.

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