Add PolicyEngine vs SFC comparison table#16
Merged
Conversation
Add a detailed comparison table showing PolicyEngine estimates alongside Scottish Fiscal Commission (SFC) official costings from their January 2026 Economic and Fiscal Forecasts. The table includes: - Basic rate threshold uplift (+7.4%) - Intermediate rate threshold uplift (+7.4%) - Combined income tax threshold uplift - Higher/advanced/top rate threshold freeze extensions (2027-28, 2028-29) - SCP baby boost (Premium for under-ones) Data sourced from SFC Table A.1 (page 95) showing both static and post-behavioural costings by provision. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
- Add individual reform functions for each SFC provision: - Basic rate threshold +7.4% - Intermediate rate threshold +7.4% - Higher rate freeze (2027+) - Advanced rate freeze (2027+) - Top rate freeze (2027+) - Fix sign convention to match autumn budget dashboard: - Negative = cost to government - Positive = revenue for government - Update SFC comparison table with all 6 provisions - Add note about independent costing (not JCT-style stacking) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Issues: - scottish-budget-2k2: Investigate advanced/top rate freeze discrepancy - scottish-budget-nwg: Merge policyengine-uk baseline fix PR #1486 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update expected reform count from 4 to 9 - Add new reform IDs to expected sets - Fix sign convention: negative = cost, positive = revenue - All tests now match autumn budget dashboard convention Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add all 8 individual reforms to stacked bar chart - Use autumn budget color scheme: - Teal spectrum for costs (SCP, income tax uplifts) - Amber spectrum for revenue raisers (threshold freezes) - Chart shows costs below x-axis, revenue above - Dynamic legend shows only policies with non-zero values Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Make y-axis symmetric around zero in budgetary impact chart - Include all 8 provisions in living standards and decile charts - Use ALL_POLICY_IDS instead of selectedPolicies for data transforms Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Generate explicit tick marks at regular intervals - Always include 0 in tick marks - Choose appropriate interval based on range (100, 200, 250, 500) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix y-axis tick values: remove +50 offset so ticks show round numbers (e.g., £800m, £600m instead of £850m, £650m) - Add static values to sfc_comparison.csv calculated from SFC's published behavioural adjustment rates (8% for higher-rate, 25% for advanced-rate, 85% for top-rate freezes) - Update SFCComparisonTable note to explain static value derivation - Toggle already existed, now has data to switch between Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Contributor
Author
|
Merging. @vahid-ahmadi to investigate the gaps against SFC and also fix some of the graphs, e.g. no threshold freezes in decile charts etc. (I haven't checked household but that also probably needs it). |
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
Adds a detailed comparison table showing PolicyEngine microsimulation estimates alongside Scottish Fiscal Commission (SFC) official costings from their January 2026 Economic and Fiscal Forecasts.
Features
Key findings from comparison
Important context for reviewers
Sign convention: Negative = cost to government, positive = revenue (matching OBR comparison style)
Baby boost discrepancy explained: SFC's £3m in 2027-28 reflects only ~6 months of impact due to 18-month implementation timeline. PE assumes full-year from April 2027.
Threshold freeze discrepancies: PE shows much higher revenue than SFC, likely because:
Costing methodology: Each provision is costed independently against baseline (not JCT-style stacking where each is costed against baseline + previous provisions).
Related PR: policyengine-uk #1486 adds 2026 higher/advanced/top rate freeze to baseline (already announced in Budget 2025-26).
Data source
From SFC Table A.1 (page 95):
Test plan
🤖 Generated with Claude Code