Skip to content

Revenue calibration audit: 2025/26 EFRS vs OBR #13

@nikhilwoodruff

Description

@nikhilwoodruff

First pass comparing EFRS-based simulation against OBR fiscal forecasts for 2025/26. EFRS extracted from FRS 2023/24 with WAS round 7 (wealth) and LCFS 2021/22 (consumption) imputation, uprated to 2025/26.

program engine OBR ratio
income tax £318b £303b 1.05
employee NI £56b £60b 0.93
employer NI £157b £120b 1.31
VAT £110b £180b 0.61
fuel duty £15b £24b 0.63
alcohol duty £6b £13b 0.44
tobacco duty £4b £8b 0.46
CGT £4b £15b 0.23
SDLT £1.4b £15b 0.09
council tax £51b £46b 1.12
HICBC £0.6b £0.7b 0.87
state pension £135b £140b 0.96
child benefit £12b £13b 0.91
universal credit £59b £75b 0.78
pension credit £3.5b £5.4b 0.66
housing benefit £4b £15b 0.27
carers allowance £3.6b £4.2b 0.85

What is well calibrated (within 15%)

Income tax, employee NI, council tax, HICBC, state pension, child benefit and carers allowance all land within 15% of OBR. The big direct-tax / contributory-benefit machine is in good shape.

What needs work

Employer NI overcounts (+31%): probably applying secondary rate too broadly. Worth checking the secondary threshold logic and whether earnings under the ST are being charged.

VAT undercounts (-39%): only £110b modelled vs £180b actual. The current VAT calculation is a flat fraction of consumption; we need a proper rate-aware calculation that distinguishes standard / reduced / zero / exempt categories from the LCFS COICOP codes already imputed in EFRS.

Fuel duty (-37%), alcohol duty (-56%), tobacco duty (-54%): the LCFS-imputed spending fields capture household consumption only, excluding business and cross-border. The simple effective-rate approach in consumption_taxes.rs is also probably too low. Recalibrating effective rates against the actual ratio of OBR receipts to LCFS-aggregate spending should close most of the gap.

CGT (-77%) and SDLT (-91%): both use crude proxies. CGT uses (savings interest + dividend income) × 0.5 as a gains proxy, which fundamentally cannot capture the lumpiness of real disposals. SDLT uses property_value × 0.043 (1/23 turnover) which appears to give too few transactions, possibly because main_residence_value is missing or zero for many EFRS households.

Universal credit (-22%) and housing benefit (-73%): total benefit pot is closer than the split — most legacy HB has migrated into UC, so the engine's UC/HB allocation may differ from how OBR books them. Worth checking whether UC + HB + legacy together matches OBR's total income-related benefits.

Next steps

  • Audit employer NI secondary threshold logic
  • Implement rate-aware VAT calculation using LCFS COICOP categories
  • Recalibrate fuel / alcohol / tobacco effective rates against OBR-implied ratios
  • Improve CGT proxy (use wealth-based gains estimate from WAS, not income)
  • Investigate SDLT base — verify main_residence_value distribution in EFRS households
  • Reconcile UC + HB + income-related allocations against DWP totals

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