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
UC rebalancing reforms don't take effect unless the Scenario applies before the data load #2252
Simulation.__init__ runs the Universal Credit rebalancing modifier (scenarios/uc_reform.py) after building the simulation. A Scenario whose parameter_changes apply after the data load (the default) is applied later, so the modifier has already set uc_LCWRA_element from the baseline parameters. As a result, reforms of these parameters silently do nothing:
There are 40 identical single LCWRA claimants in one situation; on main, the draw gives 5 of them the new-claimant rate. The reform sets the new-claimant rate to £250 from 2026-27 ({"2026": 250}).
Scenario
2026-27 monthly LCWRA element
applied_before_data_load=False (default)
5 × £217.26, 35 × £426.51 (the reform has no effect)
applied_before_data_load=True
5 × £250.00, 35 × £426.51
The documentation example in docs/book/policy/uc-rebalancing.md ("Changing the health element amount for new claimants") also keys the change "2026-01-01". A single-day key never reaches the 30 April fiscal-year sampling date, so the example does nothing in either mode. #2242 fixes the same key problem in the standard allowance example.
Expected
A reform of a rebalancing parameter should change the health element whichever way the Scenario is applied. One option is to compute the element in the uc_LCWRA_element formula, from the claimant's status (#2250) and the parameters, rather than overwriting it with set_input at build time.
Found while reviving the UK leg of PolicyBench, alongside #2247 and #2250.
Activity
Document how dated reforms are applied and read