Skip to content

Extend the population frame to all businesses (BPE) so threshold cuts and the administrative cliff are in-frame #25

Description

@MaxGhenis

Problem

The synthetic population is built on the ONS VAT/PAYE-registered frame (~2.7m businesses). Below the VAT threshold this excludes unregistered sole traders — roughly half the below-£85k business population and the group that produces most of the administrative cross-threshold cliff (Tax Policy Associates 2018-19 decomposition: the sole-trader series falls 8.7k→2.9k firms/£1k at the threshold, while companies+partnerships ≈ our frame's levels). Consequences, all currently disclosed but not modelled:

  • The distribution's cross-threshold level ratio is much shallower than all-business charts (raised in review by 2026-07-02).
  • Threshold cuts (sweep rows below £90k) omit newly covered unregistered businesses, understating revenue gains.
  • Registration/location behaviour of the most threshold-sensitive population is outside the data.

Proposed next build

Extend the frame to the full business population (~5.5–5.6m, DBT Business Population Estimates):

  1. Add a BPE-based unregistered stratum below the threshold (BPE by employment status × broad turnover bands; sole-trader-heavy).
  2. Near-threshold £1k-band structure for the full universe is directly available: the OBR Chart C / TPA-style HMRC tabulations count all businesses in tax records — use them as level targets (no shape-only rescaling needed once the frame matches the chart universe).
  3. VAT-liability targets unchanged (registered firms only, ≥ threshold — same universe as now).
  4. Registration status: mandatory above threshold; below, voluntary registration only within VAT-relevant subpopulations.

This makes threshold cuts costable on the right base, restores the administrative cliff as a frame-correct target rather than an out-of-frame comparison, and is the natural design for the populace port (see populace#258).

Refs: #21 (frame disclosures in Fig. 1 and Section 3), #23 (OBR fine targets), review thread 2026-07-02.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions