Pension Credit#

Pension Credit is a means-tested benefit payment administered by the Department for Work and Pensions (DWP) in the United Kingdom. It was introduced to provide financial assistance to pensioners and ensure they have a minimum income level. Pension Credit combines two main elements: Guarantee Credit and Savings Credit.

  • Guarantee Credit: Intended for pensioners who have reached the qualifying age and have a low income. It tops up their weekly income to a guaranteed minimum level, which varies based on individual circumstances.

  • Savings Credit: Designed for pensioners who have saved for their retirement or have a modest income. It provides additional support to those who have some savings or a second pension.

Pension Credit parameters can be found in policyengine_uk/parameters/gov/dwp/pension_credit and logic in policyengine_uk/variables/dwp/pension_credit.py.

Legislation#

The legal framework for Guarantee Credit is primarily defined in the legislation provided on the The State Pension Credit Regulations 2002 legislation website. The legal framework for Savings Credit is primarily defined in the legislation provided on the State Pension Credit Act 2002 legislation website.

Pension Credit Rate Changes#

Some key components of Guarantee Credit include:

  • Additional Minimum Guarantee

  • Carer addition

  • Child-related addition

  • Disabled-child minimum guarantee

  • Severe disabled-child minimum guarantee

  • Severe disabled-adult minimum guarantee

The table below shows some of the rates covered by PolicyEngine-UK.

Hide code cell source
from policyengine_uk.system import system

parameters = system.parameters

carer_addition = parameters.gov.dwp.pension_credit.guarantee_credit.carer.addition
child_addition = parameters.gov.dwp.pension_credit.guarantee_credit.child.addition
disabled_child = parameters.gov.dwp.pension_credit.guarantee_credit.child.disability.addition
severe_disabled_child = parameters.gov.dwp.pension_credit.guarantee_credit.child.disability.severe.addition
severe_disabled = parameters.gov.dwp.pension_credit.guarantee_credit.severe_disability.addition


elements = [carer_addition, child_addition, disabled_child, severe_disabled_child, severe_disabled] # [...]

dates = ["2019-01-01","2020-01-01", "2021-01-01", "2022-01-01", "2023-01-01", "2024-01-01"]
names = ["Carer", "Child", "Disabled child", "Severe disabled child", "Severe disabled adult"]

import pandas as pd

df = pd.DataFrame()

for date in dates:
    for element, name in zip(elements, names):
        # Append to a dataframe: row = date, column = element, value = amount
        new_row = {
            "date": date,
            "element": name,
            "amount": element(date)
        }
         # Append row to the dataframe
        df = pd.concat([df, pd.DataFrame([new_row])])


# merge element cells
pivot_df = df.pivot(index="date", columns="element", values="amount")
pivot_df.fillna("")
element Carer Child Disabled child Severe disabled adult Severe disabled child
date
2019-01-01 29.020000 64.300000
2020-01-01 36.0 53.34 29.020000 65.850000 88.34
2021-01-01 37.5 54.32 29.520000 66.950000 92.12
2022-01-01 37.7 54.6 29.660000 67.300000 92.54
2023-01-01 38.85 56.35 30.580000 69.400000 95.48
2024-01-01 43.023658 62.403684 33.865212 76.855647 105.737423
Hide code cell source
import plotly.express as px
from policyengine_core.charts import format_fig

fig = px.line(
    df,
    title="Guarantee Credit elements over time",
    x="date",
    y="amount",
    color="element",
).update_layout(
    yaxis_range=[0, 100],
    yaxis_tickformat=",.0f",
    yaxis_tickprefix="£",
    yaxis_title = "Amount(£m)",
    xaxis_title = "Year",
    legend_title = "Element"
)

fig = format_fig(fig)
fig

Some key components of Savings Credit include:

  • Pension credit savings credit income threshold (couple): This component represents the income threshold for couples applying for Savings Credit within the Pension Credit program. If the total income of a couple (or a person in a couple) falls below this income threshold, they become eligible for Savings Credit. If their income exceeds this threshold, they may not be eligible, or their benefit amount may be reduced.

  • Pension credit savings credit income threshold (single): Similar to the couple threshold, this component represents the income threshold for single individuals applying for Savings Credit within the Pension Credit program. If the total income of a single individual falls below this income threshold, they become eligible for Savings Credit. If their income exceeds this threshold, they may not be eligible, or their benefit amount may be reduced.

  • Savings Threshold: This threshold represents the maximum amount of savings or assets an individual or couple can have while still being eligible for Savings Credit. If their savings or assets exceed this threshold, it may affect their eligibility or benefit amount.

These components collectively help calculate the entitlement to Savings Credit under the UK’s Pension Credit program.

The table below shows some of the rates covered by PolicyEngine-UK.

Hide code cell source
from policyengine_uk.system import system

parameters = system.parameters

threshold_single = parameters.gov.dwp.pension_credit.savings_credit.threshold.SINGLE
threshold_couple = parameters.gov.dwp.pension_credit.savings_credit.threshold.COUPLE

elements = [threshold_single, threshold_couple] # [...]

dates = ["2015-01-01", "2016-01-01", "2017-01-01", "2018-01-01","2019-01-01","2020-01-01", "2021-01-01", "2022-01-01"]
names = ["Income threshold (single)","Income threshold (couple)"]

import pandas as pd

df = pd.DataFrame()

for date in dates:
    for element, name in zip(elements, names):
        # Append to a dataframe: row = date, column = element, value = amount
        new_row = {
            "date": date,
            "element": name,
            "amount": element(date)
        }
         # Append row to the dataframe
        df = pd.concat([df, pd.DataFrame([new_row])])


# merge element cells
pivot_df = df.pivot(index="date", columns="element", values="amount")
pivot_df.fillna("")
element Income threshold (couple) Income threshold (single)
date
2015-01-01
2016-01-01 201.8 126.5
2017-01-01 212.97 133.82
2018-01-01 218.42 137.35
2019-01-01 223.82 140.67
2020-01-01 229.67 144.38
2021-01-01 239.17 150.47
2022-01-01 244.12 153.7
Hide code cell source
import plotly.express as px
from policyengine_core.charts import format_fig

fig = px.line(
    df,
    title="Savings Credit elements over time",
    x="date",
    y="amount",
    color="element",
).update_layout(
    yaxis_range=[0, 300],
    yaxis_tickformat=",.0f",
    yaxis_tickprefix="£",
    yaxis_title = "Amount(£m)",
    xaxis_title = "Year",
    legend_title = "Element"
)

fig = format_fig(fig)
fig