PolicyEngine / PolicyEngine/firm-microsim-paper

Future calibration extensions: tighten VAT-liability and below-threshold realism

Open
#1 1 comment 0 reactions 0 assignees View on GitHub

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 (the Negative_or_Zero band 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

  1. HMRC T9 (fixes the actual weak dimension, already in-hand)
  2. ABS intermediate consumption
  3. BPE for below-threshold coverage
  4. the rest opportunistically

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.