You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Aggregate impact: record which small-cell condition withheld a reform-year #2654
The aggregate-impact tool (policyengine_uk/utils/aggregate_impact/measure.py, reform_withheld, added with #2335) withholds a reform's costing and target change in a year where any of three conditions holds:
the reform changes a record of a component suppressed in the baseline;
it leaves another component with 1 to 9 records;
it changes gov_balance in 1 to 9 households, or its target variable in 1 to 9 records.
The report records only that a year was withheld, not which condition fired.
Why this matters: the qualification gate (policyengine.py's reform_responsiveness) can't recompute the tool's verdict for a withheld year, so it returns needs_review and someone has to read the code to resolve it.
Example: in the reform-responsiveness.json receipt for Microcosm cut microcosm-uk-2024-25-national-20261023T075039Z-a133f37a (pe-uk 2.147.2, tool at 1191ac5a), reform_targets.additional_rate_plus_3pp is withheld in 2027 to 2030 and published in 2025, 2026 and 2031 (+£3.9bn to +£5.5bn). The baseline suppresses the same two heads, spending.disabled_students_allowance and spending.statutory_paternity_pay, in all seven years. So the receipt alone can't say why only 2027 to 2030 are withheld. The Budget coordinator accepted the gate for that cut (PolicyEngine/policyengine.py#715, comment). The tool's own responsive:additional_rate_plus_3pp check, computed before withholding, passes in every year.
Ask: record, for each withheld reform-year, which condition fired (for example withheld_because: suppressed_component_changed | small_component_left | small_target_change), without publishing any small-cell value or count. Check first that the condition label can't itself disclose a small cell, for example combined with the published years. Add a test.
Non-blocking: the release decision above doesn't depend on it.
Activity