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
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.
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