Skip to content

Commit 167771b

Browse files
authored
Merge pull request #1579 from PolicyEngine/codex/fix-pension-credit-capital-rules
Add Pension Credit capital rules
2 parents a0e92cb + 3e17e62 commit 167771b

10 files changed

Lines changed: 309 additions & 10 deletions

File tree

policyengine_uk/parameters/gov/dwp/pension_credit/guarantee_credit/income.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@ metadata:
66
reference:
77
- href: https://www.legislation.gov.uk/ukpga/2002/16/section/15
88
title: State Pension Credit Act 2002 s. 15(1)
9+
- href: https://www.legislation.gov.uk/uksi/2002/1792/regulation/15
10+
title: State Pension Credit Regulations 2002 reg. 15
911
unit: list
1012
values:
1113
2002-01-01:
1214
- pension_credit_earnings
1315
- working_tax_credit
1416
- state_pension
1517
- private_pension_income
16-
- capital_income
18+
- pension_credit_deemed_income
1719
- esa_contrib
1820
- jsa_contrib
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
description: Capital amount disregarded before Pension Credit deemed income applies.
2+
metadata:
3+
unit: currency-GBP
4+
period: year
5+
reference:
6+
- href: https://www.legislation.gov.uk/uksi/2002/1792/regulation/15
7+
title: State Pension Credit Regulations 2002 reg. 15(6)
8+
- href: https://www.gov.uk/pension-credit/eligibility
9+
title: Pension Credit eligibility guidance
10+
values:
11+
2003-10-06: 6000
12+
2009-11-16: 10000
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
description: >
2+
PolicyEngine approximation of Pension Credit capital sources that count
3+
toward deemed income from capital, excluding the claimant's main home.
4+
metadata:
5+
label: Pension Credit capital sources
6+
name: pension_credit_capital_sources
7+
unit: list
8+
reference:
9+
- href: https://www.legislation.gov.uk/uksi/2002/1792/regulation/15
10+
title: State Pension Credit Regulations 2002 reg. 15
11+
- href: https://www.legislation.gov.uk/uksi/2002/1792/schedule/5
12+
title: State Pension Credit Regulations 2002 Sch. 5
13+
- href: https://www.gov.uk/government/publications/pension-credit-technical-guidance/a-detailed-guide-to-pension-credit-for-advisers-and-others
14+
title: Pension Credit technical guidance
15+
propagate_metadata_to_children: true
16+
values:
17+
2003-10-06:
18+
- savings
19+
- owned_land
20+
- other_residential_property_value
21+
- non_residential_property_value
22+
- corporate_wealth
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
description: Weekly deemed income amount for each Pension Credit capital step.
2+
metadata:
3+
unit: currency-GBP
4+
period: week
5+
reference:
6+
- href: https://www.legislation.gov.uk/uksi/2002/1792/regulation/15
7+
title: State Pension Credit Regulations 2002 reg. 15(6)
8+
- href: https://www.gov.uk/pension-credit/eligibility
9+
title: Pension Credit eligibility guidance
10+
values:
11+
2003-10-06: 1
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
description: Capital step used for Pension Credit deemed income from capital.
2+
metadata:
3+
unit: currency-GBP
4+
period: year
5+
reference:
6+
- href: https://www.legislation.gov.uk/uksi/2002/1792/regulation/15
7+
title: State Pension Credit Regulations 2002 reg. 15(6)
8+
- href: https://www.gov.uk/pension-credit/eligibility
9+
title: Pension Credit eligibility guidance
10+
values:
11+
2003-10-06: 500

policyengine_uk/tests/policy/baseline/gov/dwp/pension_credit/guarantee_credit/is_guarantee_credit_eligible.yaml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,22 @@
1313
minimum_guarantee: 180
1414
output:
1515
is_guarantee_credit_eligible: false
16+
17+
- name: Pension Credit deemed income from capital can remove Guarantee Credit eligibility.
18+
period: 2021
19+
input:
20+
people:
21+
person:
22+
age: 70
23+
benunits:
24+
benunit:
25+
members: person
26+
minimum_guarantee: 100
27+
households:
28+
household:
29+
members: person
30+
savings: 10_501
31+
output:
32+
pension_credit_deemed_income: 104
33+
pension_credit_income: 104
34+
is_guarantee_credit_eligible: false
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
- name: Pension Credit has no deemed income at the capital disregard.
2+
period: 2021
3+
input:
4+
people:
5+
person:
6+
age: 70
7+
benunits:
8+
benunit:
9+
members: person
10+
households:
11+
household:
12+
members: person
13+
savings: 10_000
14+
output:
15+
pension_credit_assessable_capital: 10_000
16+
pension_credit_deemed_income: 0
17+
18+
- name: Pension Credit rounds the first capital step up.
19+
period: 2021
20+
input:
21+
people:
22+
person:
23+
age: 70
24+
benunits:
25+
benunit:
26+
members: person
27+
households:
28+
household:
29+
members: person
30+
savings: 10_001
31+
output:
32+
pension_credit_assessable_capital: 10_001
33+
pension_credit_deemed_income: 52
34+
35+
- name: Pension Credit keeps one deemed-income step through the interval.
36+
period: 2021
37+
input:
38+
people:
39+
person:
40+
age: 70
41+
benunits:
42+
benunit:
43+
members: person
44+
households:
45+
household:
46+
members: person
47+
savings: 10_500
48+
output:
49+
pension_credit_assessable_capital: 10_500
50+
pension_credit_deemed_income: 52
51+
52+
- name: Pension Credit rounds the second capital step up.
53+
period: 2021
54+
input:
55+
people:
56+
person:
57+
age: 70
58+
benunits:
59+
benunit:
60+
members: person
61+
households:
62+
household:
63+
members: person
64+
savings: 10_501
65+
output:
66+
pension_credit_assessable_capital: 10_501
67+
pension_credit_deemed_income: 104
68+
69+
- name: Pension Credit counts direct land holdings as capital.
70+
period: 2021
71+
input:
72+
people:
73+
person:
74+
age: 70
75+
benunits:
76+
benunit:
77+
members: person
78+
households:
79+
household:
80+
members: person
81+
owned_land: 10_001
82+
output:
83+
pension_credit_assessable_capital: 10_001
84+
pension_credit_deemed_income: 52
85+
86+
- name: Pension Credit does not dilute pensioner capital across unrelated adult benunits.
87+
period: 2021
88+
input:
89+
people:
90+
pensioner:
91+
age: 70
92+
adult_child:
93+
age: 30
94+
benunits:
95+
pensioner_benunit:
96+
members: [pensioner]
97+
child_benunit:
98+
members: [adult_child]
99+
households:
100+
household:
101+
members: [pensioner, adult_child]
102+
savings: 10_501
103+
output:
104+
pension_credit_assessable_capital: [10_501, 0]
105+
pension_credit_deemed_income: [104, 0]
106+
107+
- name: Pension Credit splits capital across separate pension-age benunits.
108+
period: 2021
109+
input:
110+
people:
111+
pensioner_1:
112+
age: 70
113+
pensioner_2:
114+
age: 72
115+
benunits:
116+
benunit_1:
117+
members: [pensioner_1]
118+
benunit_2:
119+
members: [pensioner_2]
120+
households:
121+
household:
122+
members: [pensioner_1, pensioner_2]
123+
savings: 20_002
124+
output:
125+
pension_credit_assessable_capital: [10_001, 10_001]
126+
pension_credit_deemed_income: [52, 52]
Lines changed: 56 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,60 @@
11
- name: All income sources are included.
22
period: 2021
33
input:
4-
employment_income: 1
5-
working_tax_credit: 2
6-
state_pension: 4
7-
private_pension_income: 8
8-
capital_income: 16
9-
esa_contrib: 32
10-
jsa_contrib: 64
11-
self_employment_income: 128
4+
people:
5+
person:
6+
age: 70
7+
employment_income: 1
8+
state_pension: 4
9+
private_pension_income: 8
10+
esa_contrib: 32
11+
jsa_contrib: 64
12+
self_employment_income: 128
13+
benunits:
14+
benunit:
15+
members: person
16+
working_tax_credit: 2
17+
households:
18+
household:
19+
members: person
20+
savings: 11_000
1221
output:
13-
pension_credit_income: 255
22+
pension_credit_deemed_income: 104
23+
pension_credit_income: 343
24+
25+
- name: Interest and dividends are not counted directly in Pension Credit income.
26+
period: 2021
27+
input:
28+
people:
29+
person:
30+
age: 70
31+
savings_interest_income: 500
32+
dividend_income: 300
33+
benunits:
34+
benunit:
35+
members: person
36+
households:
37+
household:
38+
members: person
39+
savings: 10_000
40+
output:
41+
pension_credit_deemed_income: 0
42+
pension_credit_income: 0
43+
44+
- name: Pension Credit deemed income starts above the capital disregard.
45+
period: 2021
46+
input:
47+
people:
48+
person:
49+
age: 70
50+
benunits:
51+
benunit:
52+
members: person
53+
households:
54+
household:
55+
members: person
56+
savings: 10_001
57+
output:
58+
pension_credit_assessable_capital: 10_001
59+
pension_credit_deemed_income: 52
60+
pension_credit_income: 52
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+
3+
4+
class pension_credit_assessable_capital(Variable):
5+
value_type = float
6+
entity = BenUnit
7+
label = "Pension Credit assessable capital"
8+
documentation = (
9+
"Pension Credit capital counted from the configured capital sources, "
10+
"split only across pension-age adults in the household so pensioner "
11+
"couples pool capital together without dilution by unrelated working-"
12+
"age adults."
13+
)
14+
definition_period = YEAR
15+
unit = GBP
16+
17+
def formula(benunit, period, parameters):
18+
household = benunit.household
19+
person = benunit.members
20+
p = parameters(period).gov.dwp.pension_credit.income.capital
21+
household_capital = add(household, period, p.sources)
22+
any_pension_age = benunit.any(person("is_SP_age", period))
23+
benunit_pension_age_adults = benunit.sum(person("is_SP_age", period))
24+
household_pension_age_adults = benunit.max(
25+
person.household.sum(person.household.members("is_SP_age", period))
26+
)
27+
adult_divisor = max_(1, household_pension_age_adults)
28+
household_capital_proxy = (
29+
household_capital * benunit_pension_age_adults / adult_divisor
30+
)
31+
return where(any_pension_age, max_(0, household_capital_proxy), 0)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
from policyengine_uk.model_api import *
2+
import numpy as np
3+
4+
5+
class pension_credit_deemed_income(Variable):
6+
label = "Pension Credit deemed income from capital"
7+
entity = BenUnit
8+
definition_period = YEAR
9+
value_type = float
10+
unit = GBP
11+
reference = "https://www.legislation.gov.uk/uksi/2002/1792/regulation/15"
12+
13+
def formula(benunit, period, parameters):
14+
p = parameters(period).gov.dwp.pension_credit.income.capital
15+
capital = benunit("pension_credit_assessable_capital", period)
16+
excess = max_(0, capital - p.lower_threshold)
17+
steps = np.ceil(excess / p.tariff_income.step)
18+
return steps * p.tariff_income.amount * WEEKS_IN_YEAR

0 commit comments

Comments
 (0)