applications / firms

an application · a new population

The firms.

Populace builds weighted synthetic populations where policy-relevant microdata is missing. Households were the first population; this is the second. The UK's VAT registration threshold is a cliff in the firm-size distribution, published statistics resolve it only in coarse turnover bands, and the firm-level data needed to cost reforms is not available in open form — so the same recipe applies: draw records from the published structure, calibrate weights to administrative aggregates, simulate reforms on the file.

paper: preprint Read the paper Repository
01 — the 30-second version

Three reform families, one common base.

Once turnover crosses £85,000, VAT falls due on a firm's whole base — a notch, not a kink. Reform proposals change the threshold's level (move it), its shape (taper the rate in), or its rate (a reduced-rate band above it), and the three are not comparable through the reduced-form methods used to study the threshold. A firm-level file makes them comparable by construction: every reform is costed statically on the same 2,460,268 weighted firms and the same £184.8bn 2023–24 registered base.

raise threshold to £100k −£753mlevel: moves the notch static, 2023–24 base
graduated taper £85k–£105k −£520mshape: removes the notch phases the rate in over the band
reduced-rate band £85k–£105k −£484mrate: 10% in the band (−£242m at 15%) splits the notch into two smaller ones
Static cost of four VAT threshold reforms on one base Horizontal bars compare the static revenue cost of four reforms priced on the same £184.8bn 2023–24 base: raising the threshold to £100,000 costs £753 million, a graduated taper over £85,000 to £105,000 costs £520 million, a 10 percent reduced-rate band costs £484 million, and a 15 percent reduced-rate band costs £242 million. static revenue change, £m, common 2023–24 base raise to £100k −753 graduated taper −520 reduced rate 10% −484 reduced rate 15% −242 £0
Table 3 of the paper: level, shape, and rate reforms priced statically on the £85,000-notch / £184.8bn 2023–24 baseline.

firm-microsim-paper, 2023–24 vintage; seed half-ranges ±£2.1m (raise) and ±£1.5m (taper) across generator seeds. Conditional on an assumed turnover elasticity, intensive-margin re-optimisation barely moves these figures in the paper's region-confined model: a threshold raise there has zero intensive-margin offset — released firms leave the VAT base, so their expansion is untaxed — and the reduced-rate bands recover at most £17m of £484m at the highest elasticity swept. The static menu is the costing.

02 — the method

The household recipe, on business registers.

The pipeline is two stages, parameterised by a single threshold. Draw: sample 2,941,232 firm records — continuous within-band turnover, employment, sector, and intermediate inputs — from the ONS business-register structure, so the file has firm-level resolution the published bands lack. Calibrate: fit the weights by the same optimisation family as the household stack (Adam on a symmetric relative-error loss) so weighted totals reproduce HMRC VAT-registered counts by turnover band and sector, ONS employment bands, HMRC liability totals, and the OBR's £1,000-band counts near the threshold. Registration is mandatory above the threshold and voluntary below at the HMRC-calibrated rate.

Each firm carries a structural net liability — the 20% rate applied to value added, τ(turnover − inputs) — rather than a residual the optimiser is free to absorb. An earlier build set liability to value added itself, five times too large per firm; aggregate calibration scores barely moved while the near-threshold density distorted. The lesson is a design rule the household stack shares: build liabilities from structured components, and never let the weight optimiser determine what an accounting identity should.

calibration, 2023–24 89.2%across five calibrated dimensions turnover bands 93.8% · liability by band 91.3%
calibration, 2024–25 92.8%£90k threshold vintage, one-line switch 2,945,974 rows → 2,531,324 weighted firms
dominated region £21,250(£85,000, £106,250): no firm profits from locating there elasticity-free measure of the notch distortion

results/calibration_accuracy.txt; Kleven–Waseem dominated-region width at τ=0.20. Because the population is calibrated to the HMRC aggregates, agreement with them is an internal consistency check, not external validation. The frame is the ONS register of VAT- and/or PAYE-registered businesses (~2.7M): unregistered sole traders below the threshold are out of frame, so cross-threshold level comparisons against all-business tabulations will differ by construction.

03 — what the file cannot support

Band-calibrated data carry no bunching evidence.

The generator has no location-choice model, so any excess mass below the threshold is inherited from the calibration targets, not discovered. The paper measures this directly: on the 2023–24 build the bunching estimator reads excess mass E = 7,933 firms (bLLAT = 1.91, roughly 1.4× the administrative-data estimate of Liu et al.), but a placebo population regenerated with the near-threshold step removed from the targets returns zero excess mass. The estimator also recovers injected bunching cleanly — the machinery works; the synthetic data simply contain no behavioural signal of their own. The paper therefore reports bunching geometry as a target-consistency diagnostic and computes no elasticities from it.

measured excess mass, 2023–24 E = 7,933b_LLAT = 1.91 at the £85k notch seed half-range ±161
placebo without the target step E = 0smooth-density regeneration the shape is target-inherited

results/bunching_inference.txt, placebo_bunching.txt, recovery_bunching.txt, seed_sensitivity.txt. On the 2024–25 vintage the £90,000 threshold sits on an OBR band edge, and the estimator reads E = 11,072 there — a window-edge measurement artifact the paper flags rather than hides. No standard errors are reported because there is no estimand: the quantity is a property of the calibrated file, not of firm behaviour.

04 — where this lives in the stack

From standalone paper to Populace population.

The paper ships as a standalone repository — generator, calibration, estimator, and manuscript, regenerable end to end. Its official target surface is being mirrored into PolicyEngine's Ledger fact store, and an experimental UK firm generator already sits in Populace behind the household stack's gates; the repository includes a comparison command so the pinned migration snapshot can be audited against the published paper population. populace#258 tracks porting the corrected liability identity before any Populace firm build is certified, and an adversarial referee review is open on the paper repository (firm-microsim-paper#32).

Read the full costings.