Skip to content

Commit 6969613

Browse files
Merge pull request #166 from PolicyEngine/nikhilwoodruff/issue165
Calibrate Council Tax band household counts
2 parents 4576c57 + ee0b08f commit 6969613

5 files changed

Lines changed: 44 additions & 10 deletions

File tree

changelog_entry.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
- bump: patch
2+
changes:
3+
added:
4+
- Council Tax calibration.

policyengine_uk_data/datasets/frs/frs.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -89,15 +89,6 @@ def generate(self):
8989
for variable in frs:
9090
frs[variable] = {self.dwp_frs.time_period: np.array(frs[variable])}
9191

92-
# Domestic rates need to be set for 2025 too
93-
domestic_rates = np.array(
94-
frs["domestic_rates"][self.dwp_frs.time_period]
95-
)
96-
frs["domestic_rates"] = {
97-
self.dwp_frs.time_period: domestic_rates,
98-
"2025": domestic_rates,
99-
}
100-
10192
self.save_dataset(frs)
10293

10394
impute_brmas(self, frs)
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Region,A,B,C,D,E,F,G,H,I,Total
2+
NORTH_EAST,667260,205250,194090,111950,60000,26180,14430,1550,0,1280700
3+
NORTH_WEST,1381000,700030,610850,360710,213480,103150,65240,7280,0,3441730
4+
SOUTH_EAST,366180,682890,1067530,836070,547270,334360,263930,39980,0,4138200
5+
SOUTH_WEST,469430,641160,618890,428320,289050,146600,81270,8320,0,2683030
6+
LONDON,148830,496490,1031190,969650,580310,295330,223990,68020,0,3813790
7+
EAST_MIDLANDS,800340,500990,399250,245090,152700,73090,38980,3370,0,2213820
8+
WEST_MIDLANDS,784110,650540,521020,299270,191300,104660,62300,6110,0,2619300
9+
YORKSHIRE,1068570,510140,427750,246960,156680,75040,41820,3720,0,2530680
10+
EAST_OF_ENGLAND,400900,595180,733990,502180,310470,170910,112790,14660,0,2841060
11+
WALES,214540,306120,321500,239690,199500,121740,54850,13130,5630,1476690
12+
SCOTLAND,497867,581576,423304,365001,362354,217954,140162,14327,0,2602545

policyengine_uk_data/tests/microsimulation/reforms_config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ reforms:
1616
parameters:
1717
gov.hmrc.child_benefit.amount.additional: 25
1818
- name: Reduce Universal Credit taper rate to 20%
19-
expected_impact: -41.3
19+
expected_impact: -37.3
2020
parameters:
2121
gov.dwp.universal_credit.means_test.reduction_rate: 0.2
2222
- name: Raise Class 1 main employee NICs rate to 10%

policyengine_uk_data/utils/loss.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,33 @@ def pe_count(*variables):
308308
target_names.append("dwp/pip_dl_enhanced_claimants")
309309
target_values.append(1_608_000)
310310

311+
# Council Tax band counts
312+
313+
ct_data = pd.read_csv(STORAGE_FOLDER / "council_tax_bands_2024.csv")
314+
uk_population = (
315+
sim.tax_benefit_system.parameters.gov.economic_assumptions.indices.ons.population
316+
)
317+
uprating = uk_population(time_period) / uk_population(2024)
318+
319+
# England and Wales data from https://www.gov.uk/government/statistics/council-tax-stock-of-properties-2024
320+
321+
# Scotland data from https://www.gov.scot/publications/council-tax-datasets/ (Number of chargeable dwellings, 2024)
322+
323+
for i, row in ct_data.iterrows():
324+
selected_region = row["Region"]
325+
in_region = sim.calculate("region").values == selected_region
326+
for band in ["A", "B", "C", "D", "E", "F", "G", "H", "I"]:
327+
name = f"voa/council_tax/{selected_region}/{band}"
328+
in_band = sim.calculate("council_tax_band") == band
329+
df[name] = (in_band * in_region).astype(float)
330+
target_names.append(name)
331+
target_values.append(float(row[band]) * uprating)
332+
# Add total row
333+
name = f"voa/council_tax/{selected_region}/total"
334+
df[name] = (in_region).astype(float)
335+
target_names.append(name)
336+
target_values.append(float(row["Total"]) * uprating)
337+
311338
combined_targets = pd.concat(
312339
[
313340
targets,

0 commit comments

Comments
 (0)