Skip to content

Cost the subsidy on the extended entitlement's take-up flag - #7

Merged
vahid-ahmadi merged 2 commits into
mainfrom
subsidy-take-up-flag
Sep 2, 2026
Merged

vahid-ahmadi merged 2 commits into
mainfrom
subsidy-take-up-flag

Conversation

@vahid-ahmadi

@vahid-ahmadi vahid-ahmadi commented Sep 2, 2026 •

Copy link
Copy Markdown
Contributor

Closes #5.

Max asked whether the 75% subsidy could take its take-up from the extended (30-hour) entitlement rather than Tax-Free Childcare, expecting that to raise the labour supply response.

This makes the take-up flag a parameter of subsidy_scenario and costs the subsidy leg and both legs together on would_claim_extended_childcare, with the labour supply response rerun rather than scaled. The result sits in subsidy_take_up.extended_entitlement_flag and on the Cost tab beside the coded figure, on the same Year / assumption / Area view.

It is not adopted as the central case, because on this data it moves the other way from the argument for it. Both flags are Enhanced FRS inputs, uncorrelated with each other, and the TFC flag is the higher (0.89 against 0.80 among families with a qualifying child). 2027-28, central:

Coded (would_claim_tfc) Extended flag
Subsidy leg, static £4.839bn £4.313bn
Subsidy leg, net entrants 11,930 9,181
Both legs, static £6.638bn £6.138bn
Both legs, net entrants 2,804 855

The switch is one line, reforms.SUBSIDY_TAKE_UP_FLAG, if we decide to make it the central case. The headline is unchanged by this PR.

A new artifact test checks the scenario is a real rerun (its response is not the coded response scaled by the take-up ratio), that it sits below the coded leg, and that its country split reconciles.

@vercel

vercel Bot commented Sep 2, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
free-childcare-reform Ready Ready Preview Sep 2, 2026 10:40am UTC

Request Review

@juaristi22

Copy link
Copy Markdown
Collaborator

Program Review

Source Documents

Critical (Must Fix)

None.

Should Address

  1. [A1] Take-up rates use different populations. pipeline.py:668-676 averages would_claim_tfc over every benefit unit, while pipeline.py:708-737 averages the extended flag only among benefit units with a TFC-qualifying child. The dashboard, README, and new artifact test compare them as if both were conditional on the same population. Issue Model the 75% subsidy's take-up on the extended entitlement rather than Tax-Free Childcare #5 records the like-for-like values as 0.893 and 0.804; the artifact publishes 0.8739 and 0.8042. The alternative simulations and costs are genuine reruns and remain valid, but the explanatory comparison and test scaling ratio need the same qualifying-child mask.

Suggestions

None.

PDF Audit Summary

Category Count
Confirmed correct N/A
Mismatches 0
Unmodeled items 0

Validation Summary

Check Result
Requirement accuracy Scenario wiring and reruns match issue #5
Reference quality No new external source-derived value
Code patterns 1 denominator/reporting issue
Test coverage New test locks in that denominator issue
Python tests 57 passed
Ruff Passed
CI status Passing
Branch status 1 ahead, 0 behind main

Review Severity: COMMENT

Next Steps

Use the same qualifying-child mask for both take-up rates, update the published 0.8739 figure and comparison test, then rerun artifacts. Fixes can be applied with the fix-pr workflow.

@vahid-ahmadi

Copy link
Copy Markdown
Contributor Author

A1 fixed in 50a7425: baseline_take_up_rate is now measured among benefit units with a TFC-qualifying child, the same mask as the extended-flag rate, via one shared helper. Published figures are 0.893 against 0.804, matching issue #5. README, the reforms.py comment and the artifact test updated; artifacts regenerated (costs and responses unchanged, as expected — only the reported rate moved).

@juaristi22

Copy link
Copy Markdown
Collaborator

Program Review

Source Documents

Prior Finding Status

  • [A1] RESOLVED. Both rates now use the same qualifying-child mask and benefit-unit weights. The artifact reports 0.8932 versus 0.8042, and the README correctly rounds these to 0.89 versus 0.80.

Critical (Must Fix)

None.

Should Address

  1. [A2] The PR description still publishes the old take-up rate. The current pull-request body says the TFC flag is 0.87 “among families with a qualifying child,” but the corrected like-for-like artifact is 0.8932 (0.89 rounded). Update the PR description so it does not preserve the denominator error that this commit fixes.

Suggestions

None.

Validation Summary

Check Result
Prior code finding Resolved
Published artifact 0.8932 vs 0.8042; dashboard copy identical
Targeted test 1 passed
Diff hygiene Passed
Current GitHub CI Passing
Branch status 2 ahead, 0 behind main

Review Severity: COMMENT

Next Steps

Update 0.87 to 0.89 in the PR description. The implementation itself is ready on this targeted re-review.

@vahid-ahmadi

Copy link
Copy Markdown
Contributor Author

A2: PR description updated to 0.89.

@vahid-ahmadi
vahid-ahmadi merged commit 8f429a3 into main Sep 2, 2026
4 checks passed
@vahid-ahmadi
vahid-ahmadi deleted the subsidy-take-up-flag branch September 2, 2026 11:58

This branch was successfully deployed

1 active deployment
Preview — 50a74253 Deployed Sep 2, 2026 by vercel[bot]
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.

Model the 75% subsidy's take-up on the extended entitlement rather than Tax-Free Childcare

2 participants