Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
344 commits
Select commit Hold shift + click to select a range
eeaf911
Index the savings starting-rate limit after its freeze
juaristi22 Oct 16, 2026
f17f060
Add UC housing contribution exemption for adults responsible for unde…
juaristi22 Oct 17, 2026
5092abf
Fix UC higher disabled-child eligibility
juaristi22 Oct 17, 2026
04c843d
Correct the Northern Ireland UC citation
juaristi22 Oct 17, 2026
11406ad
Exclude Child Benefit from GB pensioner CTR income
juaristi22 Oct 17, 2026
be2d8e4
Keep WTC worker age and hours conditions together
juaristi22 Oct 17, 2026
f077c01
Fix Child Tax Credit family element birth-date eligibility
juaristi22 Oct 17, 2026
ecb9c8a
Fix participation periods, eligible bins and local random draws
juaristi22 Oct 17, 2026
2ed33b1
Add normalized squared poverty-gap measures
juaristi22 Oct 17, 2026
3576003
Fix poverty measure source section links
juaristi22 Oct 17, 2026
f91ca35
Fix Scottish CTR severe-disability family test
juaristi22 Oct 17, 2026
e4af43e
Count legacy incapacity benefits in UC unearned income
juaristi22 Oct 17, 2026
e8bb9f3
Fix dated reform replay inside construction wrappers
juaristi22 Oct 17, 2026
92b6a30
Isolate construction reform state in cloned simulations
juaristi22 Oct 17, 2026
a8fcd4c
Add configurable Income Support withdrawal rate
juaristi22 Oct 17, 2026
3a195c3
Restrict ordinary ATI pension uplift to relief at source
juaristi22 Oct 17, 2026
bfc18db
Use public Core APIs for UK parameter caches
juaristi22 Oct 18, 2026
a132083
Retain UK parameter structure in cache lifecycle fixtures
juaristi22 Oct 18, 2026
e9a2334
Use the Housing Benefit pension deduction parameter consistently
juaristi22 Oct 18, 2026
d539e33
Fix supplied formula input exports
juaristi22 Oct 18, 2026
1e98d96
Include SSP and SMP in pension-relief earnings
juaristi22 Oct 16, 2026
750de13
Allocate the CGT annual exempt amount at the rate each schedule's top…
vahid-ahmadi Oct 18, 2026
1cee5b3
Bring the pension tax relief page in line with main's relief rules
vahid-ahmadi Oct 18, 2026
4d4787e
Align statutory pay in pension annual-allowance earnings
juaristi22 Oct 18, 2026
96526d1
Merge origin/main into fix/cgt-additional-band-stacking
vahid-ahmadi Oct 18, 2026
a6a9750
Hold gains fixed in the exemption allocation test
vahid-ahmadi Oct 18, 2026
4dfe70b
Keep the pension salary sacrifice cap within National Insurance
juaristi22 Oct 16, 2026
ba1508c
Preserve actual pension payments when integrating NI-only sacrifice cap
juaristi22 Oct 17, 2026
3531d11
Cover childcare and actual-return pension interactions
juaristi22 Oct 18, 2026
d5cd1da
Merge remote-tracking branch 'origin/main' into wt1661-oct18
vahid-ahmadi Oct 18, 2026
7bef0d2
Merge remote-tracking branch 'origin/main' into scenario-keeps-baseli…
vahid-ahmadi Oct 18, 2026
b28e8cf
Merge origin/main into uprate-four-remaining-columns
vahid-ahmadi Oct 18, 2026
f34503a
Uprate pension_contributions_via_salary_sacrifice_pre_2015 by average…
vahid-ahmadi Oct 18, 2026
31e3f63
Merge main, rename the floored cap reduction and use the award's clai…
vahid-ahmadi Oct 18, 2026
5b6a38c
Keep carried-forward PIP categories when no points are supplied
vahid-ahmadi Oct 18, 2026
f400f24
Use main's Simulation.apply_reform instead of a second definition
vahid-ahmadi Oct 18, 2026
44d696c
Merge origin/main into fix/benefit-cap-exemption-defects
vahid-ahmadi Oct 18, 2026
ce3e0bc
Merge origin/main into fix/benefit-cap-exemption-defects
vahid-ahmadi Oct 18, 2026
f84bc24
Document employer National Insurance incidence assumptions
juaristi22 Oct 17, 2026
2e16ce0
Format employer NI documentation example
juaristi22 Oct 17, 2026
f72a29b
Fix issues from review: shorten employer NI incidence descriptions
juaristi22 Oct 18, 2026
270be00
Merge origin/main into uprate-four-remaining-columns
vahid-ahmadi Oct 19, 2026
d7ed288
Correct three planning formulas and a broken link from review
vahid-ahmadi Oct 19, 2026
16d4c7b
Fix program registry model references
juaristi22 Oct 16, 2026
d6fe42c
Fix issues from review: narrow Benefit Cap registry prefix
juaristi22 Oct 19, 2026
56d21a8
Document domestic and overseas carbon flows
juaristi22 Oct 17, 2026
00b8e9b
Fix issues from review: clarify carbon footprint sources
juaristi22 Oct 19, 2026
2f75e2d
Apply annual employee NI for full-year category A directors in 2022
juaristi22 Oct 18, 2026
cd065c7
Clarify director NI propagation through the existing Class 4 cap
juaristi22 Oct 18, 2026
54b9f73
Fix issues from review: restore director NI source references
juaristi22 Oct 19, 2026
508fbcc
Set the CGT annual exempt amount pound by pound where it saves most
vahid-ahmadi Oct 19, 2026
c19ce75
Separate the £3,600 relief deduction from the £720 provider claim
vahid-ahmadi Oct 19, 2026
1bfd949
Merge origin/main into fix/cgt-additional-band-stacking
vahid-ahmadi Oct 19, 2026
9b00e43
Decide PIP categories from points per person
vahid-ahmadi Oct 19, 2026
a577eba
Keep Northern Ireland LHA rates off Great Britain freeze and percenti…
vahid-ahmadi Oct 19, 2026
39fbc3d
Merge pull request #2456 from PolicyEngine/fix-1796-welsh-ltt-rates
juaristi22 Oct 19, 2026
7e86825
Merge pull request #2457 from PolicyEngine/fix-1822-dividend-band-dates
juaristi22 Oct 19, 2026
a34642b
Merge pull request #2458 from PolicyEngine/fix-2121-savings-credit-el…
juaristi22 Oct 19, 2026
8e6b228
Merge pull request #2460 from PolicyEngine/fix-1932-care-to-learn-his…
juaristi22 Oct 19, 2026
73d8889
Merge pull request #2464 from PolicyEngine/fix-2371-statutory-pay-pen…
juaristi22 Oct 19, 2026
92bf9b9
Merge pull request #2466 from PolicyEngine/fix-2071-uc-parent-housing…
juaristi22 Oct 19, 2026
d540619
Merge pull request #2468 from PolicyEngine/fix-1970-uc-disabled-child…
juaristi22 Oct 19, 2026
0b1c708
Merge pull request #2469 from PolicyEngine/docs-2168-employer-ni-inci…
juaristi22 Oct 19, 2026
aff7cd2
Merge pull request #2470 from PolicyEngine/fix-2111-pensioner-ctr-chi…
juaristi22 Oct 19, 2026
e3af4eb
Merge pull request #2472 from PolicyEngine/fix-2042-wtc-worker-condit…
juaristi22 Oct 19, 2026
a4a6b31
Merge pull request #2475 from PolicyEngine/fix-2050-ctc-family-element
juaristi22 Oct 19, 2026
3aa5e1e
Merge pull request #2478 from PolicyEngine/add-71-squared-poverty-gap
juaristi22 Oct 19, 2026
3948f97
Merge pull request #2479 from PolicyEngine/fix-2295-scottish-ctr-nond…
juaristi22 Oct 19, 2026
6abcff5
Merge pull request #2481 from PolicyEngine/fix-2424-uc-incapacity-income
juaristi22 Oct 19, 2026
7bcdb45
Merge pull request #2485 from PolicyEngine/fix-2480-construction-refo…
juaristi22 Oct 19, 2026
42575e6
Merge pull request #2487 from PolicyEngine/add-332-income-support-wit…
juaristi22 Oct 19, 2026
0e14cdf
Merge pull request #2497 from PolicyEngine/fix-140-hb-pension-deducti…
juaristi22 Oct 19, 2026
3c0e48d
Merge pull request #2498 from PolicyEngine/fix-2297-formula-input-export
juaristi22 Oct 19, 2026
7a5b559
Require runtime identity for aggregate-impact data comparisons
juaristi22 Oct 19, 2026
4044d6c
Fix recent residential SDLT purchase schedules and inclusive first-bu…
juaristi22 Oct 17, 2026
540f4e4
Clarify validation scope of SDLT chart caption
juaristi22 Oct 17, 2026
83ac102
Fix issues from review: refresh stamp duty example outputs
juaristi22 Oct 19, 2026
13a4442
Remove stored local-path warning from SDLT notebook
juaristi22 Oct 19, 2026
bbb12c0
Count IIDB, SDA, incapacity benefit and maternity allowance in Pensio…
MaxGhenis Oct 2, 2026
2b2d51f
Finish builder edits after review (checkpoint)
MaxGhenis Oct 19, 2026
4a5de76
Count war pensions and AFCS payments in Pension Credit income
MaxGhenis Oct 2, 2026
5a006ab
Finish builder edits after review (checkpoint)
MaxGhenis Oct 19, 2026
c5528fc
Merge origin/main into hb-pension-age-allowance-cohorts
MaxGhenis Oct 19, 2026
981da5a
Merge main (e2ea32893) into ctr-applicant-means-test
MaxGhenis Oct 19, 2026
e6b2e12
Label the CTR applicant change in the legacy award readers property
MaxGhenis Oct 19, 2026
7b22556
Floor Savings Credit excluded sources at nil; test working-age HB wit…
MaxGhenis Oct 19, 2026
22ddb9e
Drop the war_widows_pension claim from the changelog; #2382 added it
MaxGhenis Oct 19, 2026
685963c
Update package version
github-actions[bot] Oct 19, 2026
414e915
Fit the prescribed-benefit properties to savings-credit-only HB and t…
MaxGhenis Oct 19, 2026
0a6b36b
Give CTR and Income Support their own pension contribution shares
MaxGhenis Oct 19, 2026
f8b8459
Compare war pension income with HB only where neither credit is due
MaxGhenis Oct 19, 2026
88056f5
Merge pull request #2147 from PolicyEngine/fix-tv-licence-liability-2145
MaxGhenis Oct 19, 2026
955329b
Correct a YAML comment: Case 11 asserts the new variable, so it fails…
MaxGhenis Oct 19, 2026
8991834
Read Carer's Allowance's pension contribution share from a parameter
MaxGhenis Oct 19, 2026
b9b5671
Update package version
github-actions[bot] Oct 19, 2026
893dcff
Merge current main into the NI-only pension salary-sacrifice fix
juaristi22 Oct 20, 2026
c1a6f3a
Keep the war widow's pension aggregate test outside the means tests
MaxGhenis Oct 20, 2026
b96ec3f
Use an untaxed carer for the Housing Benefit locality case
MaxGhenis Oct 20, 2026
565fabe
Read the cohort from the claimant and partner only (review P2)
MaxGhenis Oct 20, 2026
cc86a33
Compare the float32 share within a tolerance in the property test
MaxGhenis Oct 20, 2026
99d9703
Count pence in the model's float32 in the eligibility property
MaxGhenis Oct 20, 2026
caceb55
Describe the cutoff in terms of the claimant and partner (review P3)
MaxGhenis Oct 20, 2026
7949915
Say 'otherwise' for the lower rate, which also covers mixed-age couples
MaxGhenis Oct 20, 2026
4c1cc37
Keep war pensions out of savings-credit-only HB and CTR; review fixes
MaxGhenis Oct 20, 2026
4422b97
Review fixes: real HB disregard in tests, reg 15(1)(c)-(e) wording, r…
MaxGhenis Oct 20, 2026
a1eef99
Floor the savings-credit-only war pension removal; avoid reg 7(4) in …
MaxGhenis Oct 20, 2026
0a543c8
Merge origin/main a4a6b315 into hb-pension-age-allowance-cohorts (clean)
MaxGhenis Oct 20, 2026
815f89c
Update package version
github-actions[bot] Oct 20, 2026
42b11b4
Keep main's new England CTR Child Benefit tests on the higher rate
MaxGhenis Oct 20, 2026
d77037f
Address review round 1: reproducer, route coverage, UC caveats
MaxGhenis Oct 20, 2026
daa3291
Cite UC Regs reg 57(2) step 4 for self-employed UC earnings
MaxGhenis Oct 20, 2026
4401f73
Merge origin/main into pension-credit-prescribed-benefits
MaxGhenis Oct 20, 2026
ba78c29
Merge origin/main into pension-credit-war-pensions
MaxGhenis Oct 20, 2026
f81447a
Count IIDB, SDA and incapacity benefit in Council Tax Reduction income
MaxGhenis Oct 19, 2026
8fc098c
Count war pensions less £10 a week under the Kingston and Newham schemes
MaxGhenis Oct 19, 2026
b26748b
Test IIDB, SDA, IB and war pensions in Council Tax Reduction income
MaxGhenis Oct 19, 2026
f027311
Apply the Kingston and Newham war pension disregard at pension age too
MaxGhenis Oct 20, 2026
e135b13
Keep war pensions uncounted and count only the applicant's and partne…
MaxGhenis Oct 20, 2026
b224d1e
Label the Scottish Carer Support Payment exception in the GC boundary…
MaxGhenis Oct 20, 2026
b12bdf9
Fix inactive UC health-element counterfactual
juaristi22 Oct 20, 2026
e38883e
Count IIDB, SDA and IB for the Council Tax Reduction applicant and pa…
MaxGhenis Oct 20, 2026
33dabfd
Fix late LCWRA amount reform cache coherence
juaristi22 Oct 20, 2026
93e769f
Merge current main for LCWRA cache validation
juaristi22 Oct 20, 2026
47642d1
Update package version
github-actions[bot] Oct 20, 2026
5a8a179
Merge current main for ATI statutory-pay fixture compatibility
juaristi22 Oct 20, 2026
818e966
Fix statutory-pay pension relief fixture after main integration
juaristi22 Oct 20, 2026
1ae527d
Declare claimant and dependant roles in the CTR prescribed-benefit pr…
MaxGhenis Oct 20, 2026
47c525c
Merge main (47642d1ee) into ctr-applicant-means-test
MaxGhenis Oct 20, 2026
a6c42d7
Merge pull request #2507 from PolicyEngine/pension-credit-prescribed-…
MaxGhenis Oct 20, 2026
8ac9d97
Merge pull request #2508 from PolicyEngine/pension-credit-war-pensions
MaxGhenis Oct 20, 2026
f75b904
Merge pull request #1913 from PolicyEngine/hb-pension-age-allowance-c…
MaxGhenis Oct 20, 2026
a27f777
Merge commit '47642d1ee00e33f98affd32d47e7a5516e5e4bd8' into fix-2283…
juaristi22 Oct 20, 2026
63edffe
Merge remote-tracking branch 'origin/main' into docs-planning-batch
vahid-ahmadi Oct 20, 2026
0163a61
Count SSP and SMP in relevant UK earnings in the pension docs
vahid-ahmadi Oct 20, 2026
6659ebf
Update pension docs for the statutory annual allowance taper and carr…
vahid-ahmadi Oct 20, 2026
2ae2959
Preserve LCWRA wrapper provenance for benefit-cap exemptions
juaristi22 Oct 20, 2026
10ee9bc
Compare a pull request's merge commit with its first parent
MaxGhenis Oct 20, 2026
0d98f7a
Merge pull request #2518 from PolicyEngine/ca-earnings-pension-share
MaxGhenis Oct 20, 2026
bb031e2
Merge pull request #2516 from PolicyEngine/ctr-is-pension-deduction-r…
MaxGhenis Oct 20, 2026
3c7f6bc
Correct the salary sacrifice NI earnings note
juaristi22 Oct 20, 2026
7d2ad8c
Pin the head-alone carer, earnings-disregard and Pension Credit paths…
MaxGhenis Oct 20, 2026
9186a6e
Update package version
github-actions[bot] Oct 20, 2026
f120163
Pin the CI counterexample at the dependant age CI drew (19)
MaxGhenis Oct 20, 2026
29e52f5
Merge pull request #2522 from PolicyEngine/fix/aggregate-impact-merge…
MaxGhenis Oct 20, 2026
5689fad
Merge commit 'e2ea32893' into pc-earnings-disregard
MaxGhenis Oct 20, 2026
9eb9aaf
Preserve late explicit inputs in Pension Credit tax counterfactuals
MaxGhenis Oct 20, 2026
7736d5f
Fix Pension Credit notional Class 2 profit base
MaxGhenis Oct 20, 2026
9e23ce7
Reuse Pension Credit earnings tax in UC housing branch
MaxGhenis Oct 20, 2026
a10ab0c
Pin protected mixed-age couple Pension Credit award
MaxGhenis Oct 20, 2026
efcc491
fix: update Pension Credit gross earnings fixtures and held tax inputs
MaxGhenis Oct 20, 2026
eaf03fb
Merge remote-tracking branch 'origin/main' into pc-earnings-disregard
MaxGhenis Oct 20, 2026
d157482
test: remove pre-netted Pension Credit child amount inputs
MaxGhenis Oct 20, 2026
8bbace7
Merge #2516 (scheme pension contribution shares) into ctr-applicant-m…
MaxGhenis Oct 20, 2026
ea7c98b
Update package version
github-actions[bot] Oct 20, 2026
7142a40
Qualify the carer-attribution note for under-18 carers; cite Sch 4 pa…
MaxGhenis Oct 20, 2026
42c01db
Update package version
github-actions[bot] Oct 20, 2026
4e08807
test: use gross earnings in Pension Credit passport fixtures
MaxGhenis Oct 20, 2026
3055d0c
test: hold Pension Credit personal reliefs in trading-loss invariant
MaxGhenis Oct 20, 2026
dcf8d54
docs: qualify Pension Credit earnings flatness for pension contributions
MaxGhenis Oct 20, 2026
e3b9330
Merge current main into pc-earnings-disregard for round 2 validation
MaxGhenis Oct 20, 2026
54b409d
ci: retain Python collection after policy YAML failures
MaxGhenis Oct 20, 2026
c6715d4
Merge pull request #1819 from PolicyEngine/fix-uc-deductions-floor-re…
vahid-ahmadi Oct 20, 2026
efc35bc
Merge pull request #2193 from PolicyEngine/scenario-keeps-baseline-tree
vahid-ahmadi Oct 20, 2026
1d94053
State that BSP rates are held flat and note the War Widow's Pension s…
vahid-ahmadi Oct 20, 2026
22eecac
Preserve couple grouping and requested years after participation inte…
juaristi22 Oct 20, 2026
c281c2e
Update package version
github-actions[bot] Oct 20, 2026
38a251c
Merge origin/main (c281c2e96: #2508, #1913, #2518, #2516) into ctr-ap…
MaxGhenis Oct 20, 2026
ffa476e
Fix inactive UC health counterfactual 2026 CPI anchor
codex Oct 20, 2026
370aade
Count CA earnings-limit pence in the model's float32 in the property …
MaxGhenis Oct 20, 2026
5f4b81c
Update package version
github-actions[bot] Oct 20, 2026
9cf93da
Merge pull request #2488 from PolicyEngine/fix-2486-ordinary-ati-net-…
juaristi22 Oct 20, 2026
9cb4395
Integrate current UC deductions with the inactive health counterfactual
codex Oct 20, 2026
78f480f
Merge pull request #1863 from PolicyEngine/uprate-four-remaining-columns
juaristi22 Oct 20, 2026
61b5854
Update package version
github-actions[bot] Oct 20, 2026
79fa317
Merge pull request #2078 from PolicyEngine/ctr-applicant-means-test
MaxGhenis Oct 20, 2026
3b466a0
Pin the 2026 penny-over outcome and cover a trading loss
MaxGhenis Oct 20, 2026
76cfc9e
Update package version
github-actions[bot] Oct 20, 2026
c741489
Merge origin/main (76cfc9e79: #2078) into ctr-income-prescribed-benefits
MaxGhenis Oct 20, 2026
4e495b7
Merge origin/main (76cfc9e79) into asp-cpi-uprating-1941
MaxGhenis Oct 20, 2026
4b996b5
Keep the bus fare cap schedules on their calendar dates
juaristi22 Oct 20, 2026
f1b2909
Label the per-recipient growth as pre-fix; state the forecast-year fl…
MaxGhenis Oct 20, 2026
fa27e49
Drop an unverified contracted-out note from the State Pension docs
MaxGhenis Oct 20, 2026
f669da0
Merge pull request #2493 from PolicyEngine/fix-721-director-ni-2022
juaristi22 Oct 20, 2026
7a8750c
Merge pull request #2506 from PolicyEngine/fix-2499-data-axis-runtime…
juaristi22 Oct 20, 2026
d6a8b82
Merge pull request #2443 from PolicyEngine/fix-2116-program-registry
juaristi22 Oct 20, 2026
e6ca569
Merge pull request #2477 from PolicyEngine/fix-2245-sdlt-purchase-his…
juaristi22 Oct 20, 2026
7b6980b
Merge pull request #2482 from PolicyEngine/fix-478-carbon-flow-docs
juaristi22 Oct 20, 2026
07985ed
Merge pull request #2495 from PolicyEngine/fix-2175-parameter-cache-apis
juaristi22 Oct 20, 2026
7b92389
Move bus fares with the published fares index by area and year
juaristi22 Oct 20, 2026
b096877
Price bus fare cap changes from a fitted table of uncapped single fares
juaristi22 Oct 20, 2026
dec3d00
Integrate captured main for the Universal Credit counterfactual fix
juaristi22 Oct 20, 2026
d32849c
Test a head who applies alone with her own State Pension and IIDB
MaxGhenis Oct 20, 2026
60b09a4
Update package version
github-actions[bot] Oct 20, 2026
773747c
Merge remote-tracking branch 'origin/main' into wt1820-oct21
vahid-ahmadi Oct 20, 2026
df4b886
Merge remote-tracking branch 'origin/main' into HEAD
vahid-ahmadi Oct 20, 2026
e4e01ed
Merge origin/main (60b09a4e5: #2488, #1863) into ctr-income-prescribe…
MaxGhenis Oct 21, 2026
6990350
Update package version
github-actions[bot] Oct 21, 2026
b814f50
Merge pull request #2462 from PolicyEngine/fix-2454-nics-salary-sacri…
juaristi22 Oct 20, 2026
81cbb70
Update package version
github-actions[bot] Oct 21, 2026
629c87c
Merge pull request #2512 from PolicyEngine/ctr-income-prescribed-bene…
MaxGhenis Oct 21, 2026
9dcd1cc
Merge-fix: AFIP earns no UC disabled child addition in the young-pers…
vahid-ahmadi Oct 21, 2026
a5cbe7d
Update package version
github-actions[bot] Oct 21, 2026
1fac3a5
Merge pull request #2019 from PolicyEngine/pc-earnings-disregard
MaxGhenis Oct 21, 2026
68ce6a6
Update package version
github-actions[bot] Oct 21, 2026
0fb7c52
Restate list-valued parameters only through routes that accept lists
vahid-ahmadi Oct 21, 2026
ddede0b
Say which coverage the trading-loss example adds
MaxGhenis Oct 21, 2026
b3d5718
Merge pull request #2452 from PolicyEngine/fix-2431-savings-starting-…
juaristi22 Oct 21, 2026
9387f49
Derive the UC benefit cap earnings threshold from the national living…
juaristi22 Oct 20, 2026
38cc9c4
Give the old-rules reference the new earnings threshold, and pin a fa…
juaristi22 Oct 20, 2026
7bb21ef
Use one relevant-earnings rule for pension relief and adjusted total …
juaristi22 Oct 20, 2026
628a51d
Uprate water and sewerage charges by country
juaristi22 Oct 20, 2026
ffbe123
Read each water series by its path; cover water in the fingerprint te…
juaristi22 Oct 20, 2026
35bec9c
Defined-benefit input and a carry-forward default for the annual allo…
juaristi22 Oct 20, 2026
ed1902c
Fix carry-forward at nil in the UC deductions case; document how supp…
juaristi22 Oct 20, 2026
70ef5a7
Uprate water charges by country instead of through the Ofwat list
juaristi22 Oct 20, 2026
baf2d54
Address review: keep stored carry-forward to its own year, state the …
juaristi22 Oct 20, 2026
8a4c67d
Merge pull request #2534 from PolicyEngine/ca-earnings-limit-float32-…
MaxGhenis Oct 21, 2026
4ed5990
Update package version
github-actions[bot] Oct 21, 2026
c0c010d
ci: split the Python tests over five shards instead of four
vahid-ahmadi Oct 21, 2026
6a4192d
Address review: pin the BUS0415a vintage and report what the fit leav…
juaristi22 Oct 21, 2026
7cbdc2b
Update package version
github-actions[bot] Oct 21, 2026
3a03cb4
Merge pull request #2536 from PolicyEngine/fix-2523-survey-pensions-u…
juaristi22 Oct 21, 2026
07534c3
Update package version
github-actions[bot] Oct 21, 2026
ce0ee44
Merge pull request #2547 from PolicyEngine/ci/test-shards-5
vahid-ahmadi Oct 21, 2026
c9f05a2
Merge pull request #2433 from PolicyEngine/fix/cgt-additional-band-st…
vahid-ahmadi Oct 21, 2026
1ef4df9
Merge pull request #2386 from PolicyEngine/docs-planning-batch
vahid-ahmadi Oct 21, 2026
d1a3c5f
Merge pull request #2503 from PolicyEngine/fix/2502-ni-lha-gb-params
vahid-ahmadi Oct 21, 2026
1c42168
Merge pull request #1661 from PolicyEngine/vahid-ahmadi/issue-1069-pi…
vahid-ahmadi Oct 21, 2026
88fd2be
Merge origin/main into fix/benefit-cap-exemption-defects
vahid-ahmadi Oct 21, 2026
763d21d
Update package version
github-actions[bot] Oct 21, 2026
4425252
Merge origin/main into council-tax-computed-liability
vahid-ahmadi Oct 21, 2026
72d4aa7
Update package version
github-actions[bot] Oct 21, 2026
ac43212
Scope legacy-benefit closure to each award owner
juaristi22 Oct 21, 2026
4de0922
Merge pull request #2546 from PolicyEngine/bus-fares-index-cap-saving…
juaristi22 Oct 21, 2026
ecd5317
Update package version
github-actions[bot] Oct 21, 2026
02f8024
Fix issues from review: preserve reported legacy awards
juaristi22 Oct 21, 2026
825a6fa
Merge commit 'ecd531776efeb15f30678ce2f143c773c202f251' into fix-2395…
juaristi22 Oct 21, 2026
6a67498
Merge pull request #2336 from PolicyEngine/asp-cpi-uprating-1941
MaxGhenis Oct 21, 2026
0878d8d
Update package version
github-actions[bot] Oct 21, 2026
799d1c6
Merge pull request #2476 from PolicyEngine/fix-1836-participation-cor…
MaxGhenis Oct 21, 2026
c72e5c4
Merge pull request #2521 from PolicyEngine/fix-2283-inactive-lcwra-co…
MaxGhenis Oct 21, 2026
09a236a
Merge pull request #1820 from PolicyEngine/fix/benefit-cap-exemption-…
MaxGhenis Oct 21, 2026
a67aeb7
Merge pull request #1855 from PolicyEngine/council-tax-computed-liabi…
MaxGhenis Oct 21, 2026
9dcfe33
Merge pull request #2549 from PolicyEngine/fix-2395-legacy-closure-scope
MaxGhenis Oct 21, 2026
7918fc2
Update package version
github-actions[bot] Oct 22, 2026
a8b2848
Update package version
github-actions[bot] Oct 22, 2026
4f8ed05
Merge origin/main into wealth-share-components
MaxGhenis Oct 22, 2026
6600477
Merge remote-tracking branch 'origin/main' into wealth-share-components
MaxGhenis Oct 22, 2026
fab2993
Merge remote-tracking branch 'origin/uc-capital-sale-expenses' into s…
MaxGhenis Oct 22, 2026
e78257a
Merge #1974 (660047702) into sale-expense-share-split on #1969's b3f6…
MaxGhenis Oct 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 7 additions & 0 deletions .github/test_outcome_allowlist.toml
Original file line number Diff line number Diff line change
Expand Up @@ -64,3 +64,10 @@ nodeid = "policyengine_uk/tests/test_dwp_published_rates.py::test_projection_con
outcome = "skipped"
reason = '^(not uprated|series ends before 2026-27|Universal Credit Act 2025 s\.1 departs from CPI uprating)$'
why = "The test is parametrised over every DWP rate parameter and skips those it does not apply to: parameters with no uprating, series that end before 2026-27, and the four UC standard allowances, whose minimum the Universal Credit Act 2025 s.1 sets above CPI uprating (#1925). The LCWRA element, frozen by s.3, is checked against its own uprating index (#2284). 64 cases on 12 October 2026."

[[allow]]
nodeid = "policyengine_uk/tests/microsimulation/test_annual_allowance_against_hmrc.py::test_2024_annual_allowance_charge_and_payers_are_near_hmrc"
outcome = "xfailed"
reason = "policyengine-uk-data#606"
data = ["present"]
why = "Known data gaps, chiefly PolicyEngine/policyengine-uk-data#606: the certified Enhanced FRS imputes employer pension contributions as three times employee contributions, which puts the 2024 annual allowance count, charge and excess several times above HMRC's; with a third of those contributions all three fall within the band. Pinned by a strict xfail until the data is fixed (#2523)."
39 changes: 34 additions & 5 deletions .github/workflows/aggregate-impact.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Measure a pull request's base and head on the certified dataset and post
# the comparison: receipts by tax head, spending and caseloads, poverty,
# inequality, deciles and the standard reform costings, 2025-26 to 2031-32.
# For a pull request, the head is GitHub's merge commit and the base is that
# commit's first parent, so the report is exactly what merging would change.
#
# Both sides run the pull request head's copy of the measurement tool
# (policyengine_uk/utils/aggregate_impact), each in an environment synced
Expand Down Expand Up @@ -66,16 +68,15 @@ jobs:
id: commits
env:
EVENT: ${{ github.event_name }}
PR_BASE: ${{ github.event.pull_request.base.sha }}
PR_BASE_REF: ${{ github.event.pull_request.base.ref }}
PR_NUMBER: ${{ github.event.pull_request.number }}
INPUT_BASE: ${{ inputs.base }}
INPUT_HEAD: ${{ inputs.head }}
run: |
# A pull request's head is its merge commit, whose first parent is
# the base, so the comparison is exactly what merging would change.
# A pull request's head is its merge commit. Its base is read from
# that commit once the head is checked out (Choose the base).
if [ "$EVENT" = "pull_request" ]; then
base="$PR_BASE"; head="$GITHUB_SHA"
base=""; head="$GITHUB_SHA"
base_name="$PR_BASE_REF"; head_name="#$PR_NUMBER merged into $PR_BASE_REF"
else
base="${INPUT_BASE:-main}"; head="${INPUT_HEAD:-$GITHUB_SHA}"
Expand All @@ -93,11 +94,39 @@ jobs:
with:
ref: ${{ steps.commits.outputs.head }}
path: head
# A pull request's merge commit and its parents, so that the next
# step can read the base from it.
fetch-depth: 2

- name: Choose the base
id: base
env:
EVENT: ${{ github.event_name }}
BASE: ${{ steps.commits.outputs.base }}
run: |
# A pull request's base is its merge commit's first parent: the tip
# of the branch it merges into, as GitHub made the merge commit for
# this run. The comparison is then exactly what merging would
# change. The event's pull_request.base.sha is not that commit: it
# lags the branch once the branch has moved on, and the report then
# counted the branch's newer merges as the pull request's impact
# (#2516's took in 26 commits from main).
if [ "$EVENT" = "pull_request" ]; then
# The merge commit, then its parents.
line=$(git -C head rev-list --parents -n 1 HEAD)
read -r -a commit <<< "$line"
if [ "${#commit[@]}" -ne 3 ]; then
echo "::error::The head ${commit[0]} has $((${#commit[@]} - 1)) parents, not 2, so it is not a pull request's merge commit and its base is unknown."
exit 1
fi
BASE="${commit[1]}"
fi
echo "sha=$BASE" >> "$GITHUB_OUTPUT"

- name: Check out the base
uses: actions/checkout@v6
with:
ref: ${{ steps.commits.outputs.base }}
ref: ${{ steps.base.outputs.sha }}
path: base

- name: Install uv
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pr_code_changes.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ jobs:
run: uv pip install policyengine --system
- name: Test documentation builds
run: make documentation
# The YAML tests, the Python tests on four runners, and the check that
# The YAML tests, the Python tests on five runners, and the check that
# every test ran once and passed, in the locked environment. As one job
# they took 59 minutes on 10 October 2026 (run 38075384588), and runs were
# cancelled at a 60-minute limit (issues #2099 and #2257). The release
Expand Down
20 changes: 15 additions & 5 deletions .github/workflows/test-suite.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
# publish. All three run the same jobs in the same locked environment.
#
# Jobs: the YAML policy tests (which also list every Python test), the Python
# tests split over four runners, and Result, which fails unless every listed
# tests split over five runners, and Result, which fails unless every listed
# Python test ran in exactly one shard and passed, apart from the outcomes
# accepted in .github/test_outcome_allowlist.toml. A caller that names its job
# Test gets the checks "Test / YAML", "Test / Python K/4" and "Test / Result";
# Test gets the checks "Test / YAML", "Test / Python K/5" and "Test / Result";
# "Test / Result" is the one to require.

name: Test suite
Expand Down Expand Up @@ -82,6 +82,9 @@ jobs:
TESTS: ${{ steps.env.outputs.tests }}
run: policyengine-core test "$TESTS/policy" -c policyengine_uk
- name: List the Python tests
id: collect
# Keep Result's coverage audit available after a policy YAML failure.
if: ${{ !cancelled() && steps.env.outcome == 'success' }}
# Every Python test, collected without --shard, in the environment
# the shards use. Result checks that the shards ran each of these
# exactly once.
Expand All @@ -99,6 +102,7 @@ jobs:
--collect-only -q -p no:cacheprovider > collected.txt
tail -n 1 collected.txt
- name: Upload the list of Python tests
if: ${{ !cancelled() && steps.collect.outcome == 'success' }}
uses: actions/upload-artifact@v7
with:
name: test-collected
Expand All @@ -118,17 +122,23 @@ jobs:
# the 16 GB runners peaked at 15.6 GB, 283 MB short of running out
# (run 38156967136; two shards of an earlier run lost their runners).
# With four, each worker runs about a quarter fewer tests.
#
# Five, not four, for time: on 20 and 21 October shard 1/4 took 50 to
# 52 minutes on unrelated pull requests, close to the timeout. A pull
# request adding about a fifth more parameters (#1855) hit the timeout
# on shard 1/4 twice, and its other shards took 48 to 59 minutes (run
# 39568525017).
name: Python ${{ matrix.shard }}/${{ strategy.job-total }}
if: ${{ !inputs.skip }}
runs-on: ubuntu-24.04-arm
# The shards took 15, 20 and 15 minutes on 10 October (run
# 38085920460). 60 minutes leaves room for a slow runner and still
# stops a hung shard.
# 38085920460), and up to 52 minutes with four shards on 21 October.
# 60 minutes leaves room for a slow runner and still stops a hung shard.
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
shard: [1, 2, 3, 4]
shard: [1, 2, 3, 4, 5]
steps:
- name: Checkout repo
uses: actions/checkout@v6
Expand Down
Loading