Repository navigation
Correct the indirect tax effects docs page (#1114) - #1719
Conversation
0b0bfba to
ff65045
Compare
#1114 asks for an automatic pass-through from direct-tax reforms (income tax, NI) to indirect-tax revenue (VAT, excise) via household consumption response, citing UKMOD's TCO module elasticity of 0.8. Persist the plan in-repo. The current model has the destination infrastructure (consumer_incident_tax_revenue_change distributes an aggregate change across households by consumption share) but the upstream link is missing: today the user has to manually set the aggregate via gov.contrib.policyengine.budget.consumer_incident_tax_change. The page covers: - the current state (manual lever only) and what TCO does differently, - Phase 1: a single household-level consumption_response_factor driven by net income change and a single elasticity parameter (UKMOD's 0.8), - Phase 2: per-category elasticities calibrated to ONS Living Costs and Food Survey, - Phase 3: automatic linkage to consumer_incident_tax_revenue_change so the user no longer needs to set a separate budget lever, - the recommended hook pattern (split *_consumption -> *_consumption_baseline data input + *_consumption derived formula applying the factor) to avoid breaking non-indirect-tax users, - open questions on decile-varying elasticities, saving residual, and interaction with the existing labour-supply response.
…elog fragment Checked every variable, parameter, path and link against main in October 2026, updated the data pipeline references to Microcosm UK, and renamed the changelog fragment to a Towncrier type. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fuel duty reads litres derived from petrol_spending and diesel_spending, so the response factor belongs on those inputs; tobacco duty inputs are now named; the labour-supply parameter tree is labour_supply_responses; the existing relative_income_change variable is cited for the income change. Code links now point to GitHub, since the docs site does not serve files outside docs/. Removed em dashes and dropped the extra bullet from the changelog fragment. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ff65045 to
5664e01
Compare
Main already carries this page (added by #2386); the merge brings the branch up to date before the page is corrected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ntation - UKMOD's TCO technical note (revised October 2025) offers three expenditure assumptions and gives no 0.8 consumption elasticity; #1114's figure came from a ChatGPT conversation. The page and reference now say so. - Labour supply responses: employment_income_behavioral_response reads gov.simulation.labour_supply_responses (0 by default), while dynamics/labour_supply.py applies the OBR elasticities through Simulation.apply_dynamics when gov.dynamic.obr_labour_supply_assumptions is true. - Fuel duty also reads lpg_kg and natural_gas_kg (fuel_duty.py). - policyengine-core has no default_formula, and a dataset value is returned before any formula runs. - ONS publishes no LCF income elasticities; the reference is the Family spending bulletin. Cut the uncited claim about low-income MPCs, fixed the saving share implied by the Phase 1 formula, and made the Phase 3 test conditional on Phase 3. - Replaced the released .added fragment with a .changed fragment. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From the independent review of the corrections: - consumer_incident_tax_revenue_change's weighted aggregate equals the lever's amount (in £bn, times 1e9) only with positive weighted consumption; it falls back to consumption / £846bn without a dataset. - The OBR route runs only when apply_dynamics is called on a simulation with a baseline, and gov.dynamic.obr_labour_supply_assumptions is true by default. - The saving share uses baseline consumption and baseline net income; the ONS reference is the LCF's headline publication, with elasticities to be estimated from microdata. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
UK hub (Claude build session, for Max) Head: Context. This page already reached main, byte for byte, through #2386 (merged 21 October 2026; batch commit d50ee85), and its Review. I had a verifier extract and check every claim, checked each correction myself, and then ran independent adversarial reviews. Round 1 asked for changes, and round 2 approved this head. Corrected (12)
Checked and correct (unchanged)
Left for the hub (plan design, not page facts)
|
Corrects the indirect tax effects of reforms planning page (
docs/book/policy/indirect-tax-effects-plan.md), written for #1114.The page itself is already on main: it shipped in #2386 (merged 21 October 2026), and its original
.addedchangelog entry was released in 2.143.0. This branch has merged main, dropped the released fragment and now carries only corrections to main's copy of the page.What this PR corrects (from its changelog fragment):
The claim-by-claim review behind these corrections, with sources, is in the "Ready for hub review" comment on this PR.
changelog.d/1114-indirect-tax-page-corrections.changed.md(changed).🤖 Generated with Claude Code