PolicyEngine / PolicyEngine/firm-microsim-paper
Future calibration extensions: tighten VAT-liability and below-threshold realism
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 0
- Forks
- 0
- Avg merge
- 5h 5m
- Merged PRs (30d)
- 10
Description
Context: the synthetic firm population currently calibrates to six targets (HMRC VAT population by turnover band; ONS total population; ONS employment bands; HMRC sector distribution; HMRC VAT liability by sector; HMRC VAT liability by band). The VAT-liability dimensions — especially by sector — are the weakest, because the model generates firm inputs (annual_input_k) and sets liability = turnover − input, but nothing currently pins the input/output tax structure. These extensions would tighten realism. They are NOT required for the paper's core threshold/bunching/revenue results and are deferred.
Already-in-hand (inside files we already downloaded)
- HMRC
T9 Input and output tax— calibrate aggregate output tax & input tax. Directly targets the weak VAT-liability dimensions (the root cause). Highest value / lowest effort. - HMRC
T6 Trader status— payment vs repayment trader counts; pins the share of negative/zero-liability firms (theNegative_or_Zeroband currently injected manually). - HMRC
T7 Flat Rate Scheme— FRS trader counts; relevant to the £150k FRS step in the turnover distribution. - ONS UK Business workbook — region / local-authority counts (adds a geographic dimension, currently none).
- ONS UK Business workbook — legal status (company / sole proprietor / partnership) — adds a legal-form dimension.
Needs new gov sources
- DBT Business Population Estimates (BPE) — covers ALL businesses incl. unregistered sole traders, which ONS IDBR/UK Business undercounts. Matters for below-threshold bunching realism.
- ONS Annual Business Survey (ABS) — turnover, approximate GVA, and total purchases / intermediate consumption by industry; the other direct way to calibrate the input/cost structure (
input_k). - ONS Business Demography — firm births/deaths/survival; needed if dynamic entry-exit modeling is added.
- HMRC VAT gap — compliance/coverage context.
Suggested priority
- HMRC T9 (fixes the actual weak dimension, already in-hand)
- ABS intermediate consumption
- BPE for below-threshold coverage
- the rest opportunistically
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files, tests, or entry points. Start by locating the existing calibration targets and the downloaded HMRC data, then investigate the highest-priority T9 input/output-tax extension before considering the other listed sources. Done should mean a scoped calibration extension with results demonstrating improved VAT-liability realism, but the issue does not define exact acceptance tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100