Skip to content

Commit c8f9a43

Browse files
authored
Add Newham council tax reduction (#1772)
1 parent 8549b4c commit c8f9a43

12 files changed

Lines changed: 318 additions & 0 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
- Add working-age Council Tax Reduction for Newham.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
description: Maximum share of eligible Council Tax liability covered for working-age households under the Newham Council Tax Reduction scheme.
2+
values:
3+
2026-04-01: 0.70
4+
metadata:
5+
unit: /1
6+
period: year
7+
label: Newham Council Tax Reduction maximum support rate
8+
reference:
9+
- title: Council Tax Reduction Scheme 2026
10+
href: https://www.newham.gov.uk/downloads/file/10753/council-tax-reduction-scheme-2026
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
description: Capital limit for working-age households under the Newham Council Tax Reduction scheme.
2+
values:
3+
2026-04-01: 6_000
4+
metadata:
5+
unit: currency-GBP
6+
period: year
7+
label: Newham Council Tax Reduction capital limit
8+
reference:
9+
- title: Council Tax Reduction Scheme 2026
10+
href: https://www.newham.gov.uk/downloads/file/10753/council-tax-reduction-scheme-2026
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
description: Withdrawal rate for working-age households under the Newham Council Tax Reduction scheme.
2+
values:
3+
2026-04-01: 0.25
4+
metadata:
5+
unit: /1
6+
period: year
7+
label: Newham Council Tax Reduction withdrawal rate
8+
reference:
9+
- title: Council Tax Reduction Scheme 2026
10+
href: https://www.newham.gov.uk/downloads/file/10753/council-tax-reduction-scheme-2026
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
description: Weekly working-age non-dependant deduction schedule under the Newham Council Tax Reduction scheme.
2+
brackets:
3+
- threshold:
4+
2026-04-01: 0
5+
amount:
6+
2026-04-01: 7.54
7+
- threshold:
8+
2026-04-01: 183
9+
amount:
10+
2026-04-01: 14.96
11+
- threshold:
12+
2026-04-01: 316
13+
amount:
14+
2026-04-01: 18.84
15+
- threshold:
16+
2026-04-01: 394
17+
amount:
18+
2026-04-01: 22.61
19+
metadata:
20+
amount_unit: currency-GBP
21+
period: week
22+
threshold_unit: currency-GBP
23+
type: single_amount
24+
label: Newham Council Tax Reduction non-dependant deduction schedule
25+
reference:
26+
- title: Council Tax Reduction Scheme 2026
27+
href: https://www.newham.gov.uk/downloads/file/10753/council-tax-reduction-scheme-2026
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
description: Weekly hours threshold for remunerative work in the Newham Council Tax Reduction non-dependant deduction schedule.
2+
values:
3+
2026-04-01: 16
4+
metadata:
5+
unit: hour
6+
period: week
7+
label: Newham Council Tax Reduction remunerative work hours
8+
reference:
9+
- title: Council Tax Reduction Scheme 2026
10+
href: https://www.newham.gov.uk/downloads/file/10753/council-tax-reduction-scheme-2026

policyengine_uk/tests/policy/baseline/gov/local_authorities/council_tax_reduction/council_tax_reduction.yaml

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -407,3 +407,161 @@
407407
output:
408408
uc_assessable_capital: 0
409409
council_tax_reduction: 1_800
410+
411+
- name: Newham working-age claimant receives 70 percent maximum support
412+
period: 2026
413+
absolute_error_margin: 0.01
414+
input:
415+
people:
416+
claimant:
417+
age: 35
418+
benunits:
419+
benunit:
420+
members: [claimant]
421+
would_claim_uc: false
422+
claims_all_entitled_benefits: true
423+
households:
424+
household:
425+
members: [claimant]
426+
country: ENGLAND
427+
local_authority: NEWHAM
428+
council_tax: 1_800
429+
savings: 0
430+
output:
431+
council_tax_reduction_scheme_supported: true
432+
simulated_council_tax_reduction_benunit: 1_260
433+
council_tax_reduction: 1_260
434+
council_tax_less_benefit: 540
435+
436+
- name: Newham working-age claimant above capital limit gets no local support
437+
period: 2026
438+
absolute_error_margin: 0
439+
input:
440+
people:
441+
claimant:
442+
age: 35
443+
council_tax_benefit_reported: 500
444+
benunits:
445+
benunit:
446+
members: [claimant]
447+
claims_all_entitled_benefits: true
448+
households:
449+
household:
450+
members: [claimant]
451+
country: ENGLAND
452+
local_authority: NEWHAM
453+
council_tax: 1_800
454+
savings: 6_001
455+
output:
456+
council_tax_reduction_scheme_supported: true
457+
simulated_council_tax_reduction_benunit: 0
458+
council_tax_benefit: 0
459+
council_tax_reduction: 0
460+
461+
- name: Newham applies a 25 percent excess-income taper
462+
period: 2026
463+
absolute_error_margin: 0.01
464+
input:
465+
people:
466+
claimant:
467+
age: 35
468+
benunits:
469+
benunit:
470+
members: [claimant]
471+
would_claim_uc: false
472+
claims_all_entitled_benefits: true
473+
council_tax_reduction_applicable_amount: 10_000
474+
council_tax_reduction_applicable_income: 11_000
475+
council_tax_reduction_relevant_income_based_benefit: false
476+
households:
477+
household:
478+
members: [claimant]
479+
country: ENGLAND
480+
local_authority: NEWHAM
481+
council_tax: 1_800
482+
savings: 0
483+
output:
484+
council_tax_reduction: 1_010
485+
council_tax_less_benefit: 790
486+
487+
- name: Newham applies its 2026 local non-dependant deduction schedule
488+
period: 2026
489+
absolute_error_margin: 0.01
490+
input:
491+
people:
492+
claimant:
493+
age: 35
494+
non_dep:
495+
age: 25
496+
employment_income: 5_200
497+
private_pension_income: 11_232
498+
weekly_hours: 16
499+
benunits:
500+
claimant_benunit:
501+
members: [claimant]
502+
would_claim_uc: false
503+
claims_all_entitled_benefits: true
504+
non_dep_benunit:
505+
members: [non_dep]
506+
households:
507+
household:
508+
members: [claimant, non_dep]
509+
country: ENGLAND
510+
local_authority: NEWHAM
511+
council_tax: 1_800
512+
savings: 0
513+
output:
514+
council_tax_reduction_scheme_supported: true
515+
council_tax_reduction: 280.32
516+
517+
- name: Newham uses the not-in-remunerative-work non-dependant deduction below 16 weekly hours
518+
period: 2026
519+
absolute_error_margin: 0.01
520+
input:
521+
people:
522+
claimant:
523+
age: 35
524+
non_dep:
525+
age: 25
526+
employment_income: 31_460
527+
weekly_hours: 15
528+
benunits:
529+
claimant_benunit:
530+
members: [claimant]
531+
would_claim_uc: false
532+
claims_all_entitled_benefits: true
533+
non_dep_benunit:
534+
members: [non_dep]
535+
households:
536+
household:
537+
members: [claimant, non_dep]
538+
country: ENGLAND
539+
local_authority: NEWHAM
540+
council_tax: 1_800
541+
savings: 0
542+
output:
543+
council_tax_reduction: 867.92
544+
545+
- name: Newham UC claimant uses UC-reported capital against the local limit
546+
period: 2026
547+
absolute_error_margin: 0.01
548+
input:
549+
people:
550+
claimant:
551+
age: 35
552+
benunits:
553+
claimant_benunit:
554+
members: [claimant]
555+
would_claim_uc: true
556+
claims_all_entitled_benefits: true
557+
uc_reported_capital: 0
558+
households:
559+
household:
560+
members: [claimant]
561+
country: ENGLAND
562+
local_authority: NEWHAM
563+
council_tax: 1_800
564+
savings: 20_000
565+
output:
566+
uc_assessable_capital: 0
567+
council_tax_reduction: 1_260

policyengine_uk/variables/gov/local_authorities/council_tax_reduction/config.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,20 @@ def is_kingston_upon_thames_working_age(local_authority, country, has_pensioner)
3535
)
3636

3737

38+
def is_newham(local_authority):
39+
return local_authority == LocalAuthority.NEWHAM
40+
41+
42+
def is_newham_working_age(local_authority, country, has_pensioner):
43+
return (country == Country.ENGLAND) & ~has_pensioner & is_newham(local_authority)
44+
45+
3846
def is_supported_scheme(country, has_pensioner, local_authority):
3947
return (
4048
is_england_pensioner_scheme(country, has_pensioner)
4149
| is_scotland_scheme(country)
4250
| is_wales_scheme(country)
4351
| is_merton_working_age(local_authority, country, has_pensioner)
4452
| is_kingston_upon_thames_working_age(local_authority, country, has_pensioner)
53+
| is_newham_working_age(local_authority, country, has_pensioner)
4554
)

policyengine_uk/variables/gov/local_authorities/council_tax_reduction/simulated_council_tax_reduction_benunit.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
LOCAL_COUNCIL_TAX_REDUCTION_VARIABLES = [
99
"merton_council_tax_reduction",
1010
"kingston_upon_thames_council_tax_reduction",
11+
"newham_council_tax_reduction",
1112
]
1213

1314

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
from policyengine_uk.model_api import *
2+
from policyengine_uk.variables.gov.local_authorities.council_tax_reduction._legacy import (
3+
legacy_council_tax_reduction,
4+
)
5+
from policyengine_uk.variables.gov.local_authorities.council_tax_reduction.config import (
6+
is_newham_working_age,
7+
)
8+
9+
10+
class newham_council_tax_reduction(Variable):
11+
value_type = float
12+
entity = BenUnit
13+
label = "Newham Council Tax Reduction"
14+
definition_period = YEAR
15+
unit = GBP
16+
17+
def formula(benunit, period, parameters):
18+
ctr = parameters(period).gov.local_authorities.newham.council_tax_reduction
19+
household = benunit.household
20+
working_age = is_newham_working_age(
21+
household("local_authority", period),
22+
household("country", period),
23+
household("council_tax_reduction_household_has_pensioner", period),
24+
)
25+
return legacy_council_tax_reduction(
26+
benunit,
27+
period,
28+
ctr,
29+
working_age,
30+
"newham_council_tax_reduction_non_dep_deductions",
31+
)

0 commit comments

Comments
 (0)