Repository navigation
Let datasets mark trading allowance claimants, so allowance reforms reach their base without turnover data #2764
Description
Problem
trading_allowance_deduction applies the trading allowance against self_employment_gross_receipts when receipts are supplied (ITTOIA 2005 ss. 783AF full relief, 783AI partial relief). Without them, it treats a profit within the allowance as receipts within it, so the profit is fully relieved. A larger profit is taken to reflect the better of expenses and the allowance already, so it gets no relief.
Survey data rarely carry gross receipts:
- the FRS records profit and drawings;
- the SPI public-use tape records profits, capital allowances and losses.
Neither records turnover. Without receipts:
- A rise in the allowance misses its main base. It relieves only profits up to the new allowance, in full. It misses the traders who already claim the £1,000 allowance against larger receipts, whose deduction would grow under s. 783AI. The Budget 2026 raise to £3,000 (proposed in Raise the trading allowance to £3,000 from 6 April 2027 (Budget 2026) #2713, in current law since Autumn Budget 2026 measures in current law #2719) is costed on exactly that base. HMRC's policy paper puts it at about 400,000 taxpayers with a lower bill, by about £380 on average.
- Small profits are exempt even when receipts are not. A profit of £1,000 or less is exempt at baseline even where receipts are above £1,000. Section 783AF only exempts receipts within the allowance.
What survey data can supply is whether a trader claims the allowance today. Under current law a claimant's taxable profit is their receipts less the £1,000 allowance, so their receipts are their profit plus £1,000 exactly. A trader who doesn't claim it deducts actual expenses above £1,000.
A dataset can store receipts as profit plus £1,000 for claimants. That gives the right relief at one allowance level, but it breaks in two ways:
- The gap is uprated.
self_employment_gross_receiptsis uprated by mixed income per head, as profit is. So the stored £1,000 gap grows, to about £1,106 by 2028-29, while the allowance is nominal, and a claimant's relief under a raise comes out short by the difference. - Non-claimants have no stable value. A non-claimant's expenses are unknown, and any fixed value a dataset stores for them is tailored to one threshold. Storing expenses of £3,000, so that the raise to £3,000 gives them no static gain, would relieve every non-claimant under a raise above £3,000.
Proposal
A person-level input saying whether the person claims the trading allowance in the input data, defaulting to unknown, read against the allowance deducted in the input profits. That allowance would be a parameter that reforms to the allowance do not move and that is not uprated: £1,000 since 2017-18. Then:
- Claimant. Receipts are profit plus the input allowance, so the relief at allowance A is min(profit, A − input allowance), for any A at or above the input allowance.
- Non-claimant. No static relief at any allowance level. Their actual expenses exceed the input allowance, and switching to the allowance after a raise is behaviour, as HMRC's costings book it.
- Unknown (the default). Today's behaviour: the receipts branch if receipts are supplied, otherwise the no-receipts rule. Existing datasets don't change.
- Class 4 reads the same deduction, as now.
Questions for review:
- a bool with a separate "known" flag, or an enum (unknown, claimant, non-claimant);
- what a cut below the input allowance does to a claimant. Their actual expenses are below the input allowance and unknown, so taxable profit rises by at most the input allowance less the new one;
- how the flag interacts with the allowance's share for Chapter 8 miscellaneous income (The trading allowance does not relieve miscellaneous income (ITTOIA 2005 s. 783AB) #2725, Count the 2022 Energy Bills Rebate in HBAI income, and apply the trading allowance to Chapter 8 miscellaneous income #2726), since one allowance is shared between trading and miscellaneous income.
Data side
PolicyEngine/microcosm#1428 imputes the claimant flag for the UK national dataset. It is calibrated to HMRC's published gainers until HMRC publishes claimant counts, and for now it stores receipts as profit plus £1,000 (claimants) or plus £3,000 (others). With this input it would store the flag instead.
🤖 Generated with Claude Code
Activity