Skip to content

Set Marriage Allowance take-up rate to HMRC outturn (#368)#369

Merged
MaxGhenis merged 1 commit intomainfrom
marriage-allowance-takeup-rate-368
Apr 20, 2026
Merged

Set Marriage Allowance take-up rate to HMRC outturn (#368)#369
MaxGhenis merged 1 commit intomainfrom
marriage-allowance-takeup-rate-368

Conversation

@vahid-ahmadi
Copy link
Copy Markdown
Collaborator

Summary

Why this matters

This file is the load-bearing one for microsimulation. With take-up at 1.0, the model overstates Marriage Allowance cost by ~£500m/year (model implies ~£1.06bn vs HMRC outturn ~£580m). At 0.5 it lines up with published outturn.

Companion change in policyengine-uk: PolicyEngine/policyengine-uk#1636 — the documentation parameter on the model side. Source issue: PolicyEngine/policyengine-uk#623.

Test plan

  • FRS build run to confirm would_claim_marriage_allowance rate halves.
  • Sanity check Marriage Allowance aggregate microsim cost against £580m HMRC outturn.

🤖 Generated with Claude Code

The placeholder 1.0 (100%) overstated Marriage Allowance take-up.
HMRC outturn shows ~2.1m claimants of ~4.2m eligible couples (~50%),
which means microsimulation overstates the program cost by ~£500m/year.
Set the parameter to 0.5 with a House of Commons Library citation.

Companion change in PolicyEngine/policyengine-uk#1636.
Source issue: PolicyEngine/policyengine-uk#623.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Collaborator Author

Review note: I checked this against the corresponding policyengine-uk change and the dataset build path in policyengine_uk_data/datasets/frs.py. I did not find a blocker here. This is the load-bearing parameter for baseline microsimulation because load_take_up_rate("marriage_allowance", year) is what populates would_claim_marriage_allowance during FRS build, so changing this file to 0.5 is the part that should move baseline outputs toward HMRC outturn. The companion policyengine-uk PR should stay in sync, but this PR itself looks internally consistent.

Copy link
Copy Markdown
Contributor

@MaxGhenis MaxGhenis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified the 50% figure and £580m outturn against HoC SN00870 and HMRC's December 2024 Non-structural tax relief statistics. Downstream path via frs.pywould_claim_marriage_allowancemarriage_allowance formula is clean (no calibration double-counting; calibration targets don't include MA aggregate). Pre-2015 effective date (2000-01-01) is harmless — the marriage_allowance amount parameters in policyengine-uk don't exist pre-2015 so the formula returns 0 regardless of take-up. Optional cleanup follow-up: move effective date to 2015-04-06.

@MaxGhenis MaxGhenis merged commit cc3c80a into main Apr 20, 2026
3 checks passed
@MaxGhenis MaxGhenis deleted the marriage-allowance-takeup-rate-368 branch April 20, 2026 11:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Set Marriage Allowance take-up rate to HMRC outturn (~50%)

2 participants