Skip to content

Commit 439ed19

Browse files
committed
Merge branch 'codex/repro-1153' of https://github.com/PolicyEngine/policyengine-uk into codex/merge-1549
2 parents 9c31db7 + be59bff commit 439ed19

5 files changed

Lines changed: 47 additions & 4 deletions

File tree

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
"""Test abolishing council tax affects household and government balances."""
2+
3+
import pytest
4+
5+
from policyengine_uk import Microsimulation
6+
7+
YEAR = 2025
8+
9+
SITUATION = {
10+
"people": {"person": {"age": {YEAR: 40}, "employment_income": {YEAR: 30000}}},
11+
"benunits": {"benunit": {"members": ["person"]}},
12+
"households": {
13+
"household": {
14+
"members": ["person"],
15+
"council_tax": {YEAR: 2000},
16+
"council_tax_band": {YEAR: "C"},
17+
}
18+
},
19+
}
20+
21+
22+
@pytest.mark.microsimulation
23+
def test_abolish_council_tax_removes_budget_impact():
24+
baseline = Microsimulation(situation=SITUATION)
25+
reform = Microsimulation(
26+
situation=SITUATION,
27+
reform={"gov.contrib.abolish_council_tax": True},
28+
)
29+
30+
baseline_household_tax = baseline.calculate("household_tax", YEAR).sum()
31+
reform_household_tax = reform.calculate("household_tax", YEAR).sum()
32+
baseline_gov_balance = baseline.calculate("gov_balance", YEAR).sum()
33+
reform_gov_balance = reform.calculate("gov_balance", YEAR).sum()
34+
baseline_hbai = baseline.calculate("hbai_household_net_income", YEAR).sum()
35+
reform_hbai = reform.calculate("hbai_household_net_income", YEAR).sum()
36+
37+
assert reform_household_tax == baseline_household_tax - 2000
38+
assert reform_gov_balance == baseline_gov_balance - 2000
39+
assert reform_hbai == baseline_hbai + 2000

policyengine_uk/variables/contrib/policyengine/pre_budget_change_household_tax.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ class pre_budget_change_household_tax(Variable):
2929
]
3030

3131
def formula(household, period, parameters):
32-
if parameters(period).gov.contrib.abolish_council_tax:
32+
abolish_council_tax = parameters.gov.contrib.abolish_council_tax(period)
33+
if abolish_council_tax:
3334
return add(
3435
household,
3536
period,

policyengine_uk/variables/gov/gov_tax.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ class gov_tax(Variable):
3535

3636
def formula(household, period, parameters):
3737
variables = list(gov_tax.adds)
38-
if parameters(period).gov.contrib.abolish_council_tax:
38+
abolish_council_tax = parameters.gov.contrib.abolish_council_tax(period)
39+
if abolish_council_tax:
3940
variables = [
4041
variable for variable in variables if variable != "council_tax"
4142
]

policyengine_uk/variables/gov/hmrc/household_tax.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ class household_tax(Variable):
3535
]
3636

3737
def formula(household, period, parameters):
38-
if parameters(period).gov.contrib.abolish_council_tax:
38+
abolish_council_tax = parameters.gov.contrib.abolish_council_tax(period)
39+
if abolish_council_tax:
3940
return add(
4041
household,
4142
period,

policyengine_uk/variables/household/income/hbai_household_net_income.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ class hbai_household_net_income(Variable):
7171
]
7272

7373
def formula(household, period, parameters):
74-
if parameters(period).gov.contrib.abolish_council_tax:
74+
abolish_council_tax = parameters.gov.contrib.abolish_council_tax(period)
75+
if abolish_council_tax:
7576
return add(
7677
household,
7778
period,

0 commit comments

Comments
 (0)