Correct net-VAT liability scaling; rewrite paper on the corrected model#21
Open
MaxGhenis wants to merge 4 commits into
Open
Correct net-VAT liability scaling; rewrite paper on the corrected model#21MaxGhenis wants to merge 4 commits into
MaxGhenis wants to merge 4 commits into
Conversation
v_i = 0.20 x (turnover - inputs) in generator, calibration, and validator; rho recentred to mean ~0.6 and clamped to [0.1, 0.95] so value added is strictly positive; secondary-notch mass block in dominated_region_mass. Cherry-picked from origin/fix-vat-liability-scaling (issue #15) without the tex changes, which are superseded by the rewrite in this branch. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Replace the damped fixed-point forward solve (no fixed point at reform notches; iterates oscillate) with a closed-form region-confined solve: each firm re-optimises within the schedule region containing its observed turnover, using the formulation-A response ratio y* = y_obs [(1-tau f1)/(1-tau f0)]^e (deductible share cancels). e->0 nesting is now exact; a pure threshold raise provably has zero intensive-margin offset (behavioural == static at every e) — asserted in the crosscheck; baseline reproduction asserted in reform_revenue. - Remove the non-identified elasticity outputs (sigma/Pi/eps) and the tau/2 wedge normalisation inherited from a deleted sigmoid model from the bunching estimator; keep the geometry (b, b_llat, E, Delta_R, y_R). - Fix bootstrap replicate weights to sum to the population mass W rather than the row count n (E replicates were scaled by n/W). - Redesign the recovery test: KW-consistent injection with missing mass extending beyond the exclusion window, scored by the headline estimator (the previous injection was invisible to the counterfactual fit by construction). - Relabel e sweep values as assumptions (0.05 external KW anchor); remove the false 'calibrated to reduced-form estimates' provenance. - report.py: fall back to the generic output CSV name; taper guard in the dynamic CLI. Addresses issues #15 and the methodology findings in the review. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Both vintages rebuilt with v = 0.20(turnover - inputs); all artifacts regenerated: calibration report (89.4%/89.4%), static sweep + anchor (new static_sweep.txt artifact with voluntary-retention sensitivity), reform menu (raise -698m, taper -466m, 10% band -460m, 15% band -230m on the common 184.7bn base), behavioural table (raise == static at every e; band offsets second-order), bunching (E=0 at 85k; spurious E=196k at the 90k band edge on the 2024-25 vintage), placebo (E=0 under all treatments), redesigned recovery test, dominated-region masses, iso-optimum verification. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Abstract/intro/data/static/bunching/model/behavioural/conclusion and both appendices rewritten against the corrected pipeline and the review findings: - Section 5 reframed: the corrected data contain no bunching at 85k (E=0, b=-0.139) and a spurious spec-robust signal at the 90k band edge (E~196k); the earlier draft's 'reproduced step' is documented as a liability-scaling artifact and its correction reported openly. - Anchor comparison rewritten: full-deregistration (-248m, 2025-26) and 43% voluntary-retention (-141m) conventions bracket HMRC's -185m in every forecast year; 'fiscal drag lifts the frozen baseline' replaced with the uprated counterfactual threshold path the code implements. - Behavioural section rewritten around the region-confined solver: raise-to-100k behavioural == static at every e (derived and asserted); reduced-rate offsets under 4%; taper exclusion restated structurally; the orphaned 'pathological FOC solve' claim removed; e sweep relabelled as assumptions (KW 0.05 anchor; LLAT UK 0.09-0.14 noted). - Dominated region: formulation-A invariance replaces the erroneous per-firm tau0/(1-tau0) robustness paragraph (which implied widths above the statutory cap); masses updated to the corrected population. - Static: new sweep (2024-25 vintage, explicitly introduced), menu on the 184.7bn base, direct-vs-smooth method reconciliation, +5.8% base overshoot disclosed against HMRC liability-target sums. - Neutrality/style: metric-scoped verdicts only; hedges consolidated; self-praise removed; findings renumbered to four consistently. - Citations: LLAT setting corrected (2004-14 sample, 58k-81k thresholds); Chetty et al. credited for the polynomial counterfactual; URLs/DOIs added throughout; benedek2015 to techreport; belloncopestake year fixed; HMT 2018 call for evidence and Council Directive (EU) 2020/285 added; ONS panel relabelled to the VAT/PAYE-registered frame with a BPE note; 150k step FRS attribution removed (band edge; step absent in corrected data). - Title: 'An Open Firm-Level Microsimulation of the UK VAT Registration Threshold'. README tables updated; upstream Populace inheritance of the mis-scaling flagged. Closes #15. Supersedes #17. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This was referenced Jul 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Completes the net-VAT liability fix from #15 (superseding draft PR #17), re-runs the entire pipeline on the corrected model, and rewrites the paper against the corrected numbers plus a seven-referee review (methodology, red-team, domain, citations, neutrality, style, reproducibility).
The defect and its consequences
vat_liability_kwasturnover − input(no ×0.20), inflating per-firm liabilities ~5×, with ρ ∈ [0.6, 1.5] leaving ~47% of firms with negative value added. The weight optimiser compensated on band totals (aggregate scores barely moved) while distorting the near-threshold density — manufacturing the paper's "reproduction" of the administrative bunching step.Model fixes
v = 0.20 × (turnover − input); ρ ∈ [0.1, 0.95], mean VA share 40%, zero negative-VA firms (from Fix vat liability scaling #17, applied to current main)y* = y_obs[(1−τf₁)/(1−τf₀)]^e(deductible share cancels). e→0 nesting now exact; baseline reproduction asserted; raise-to-£100k behavioural ≡ static at every e — a derived invariance, asserted in the crosscheckdominated_region_mass; newresults/static_sweep.txtartifact (the sweep table was previously figure-pixels only); voluntary-retention sensitivity on the anchorHeadline results on the corrected model
Paper rewrite
Every section updated. Section 5 reframed around the correction: band-calibrated synthetic data cannot support bunching inference in either direction — the corrected data show nothing at £85k while the same generator shows a huge spurious signal at the £90k band edge, robust in all 16 sensitivity cells. The earlier draft's artifact is documented openly as the sharpest demonstration of the thesis. Value-added "robustness" paragraph (which implied dominated widths above the £21,250 statutory cap) replaced by the formulation-A invariance result. Anchor mechanism corrected (uprated counterfactual threshold path, not "fiscal drag"). Citations: LLAT sample setting corrected (2004–14, £58k–£81k thresholds — not "the same £85,000 notch"); Chetty et al. credited for the polynomial counterfactual; HMT 2018 call for evidence + Council Directive (EU) 2020/285 added; URLs/DOIs throughout. Full referee reports available on request.
Upstream
Closes #15. Supersedes #17.
🤖 Generated with Claude Code