Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/2150.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Correct the free TV licence discount so the over-75 person and Pension Credit recipient must belong to the same benefit unit.
Original file line number Diff line number Diff line change
Expand Up @@ -79,3 +79,98 @@
is_blind: false
output:
tv_licence_discount: 0

- name: Separate benefit units do not combine age and Pension Credit.
period: 2023
input:
people:
older_person:
age: 75
pension_credit_recipient:
age: 70
benunits:
older_person_benunit:
members: [older_person]
pension_credit: 0
recipient_benunit:
members: [pension_credit_recipient]
pension_credit: 1
households:
household:
members: [older_person, pension_credit_recipient]
output:
tv_licence_discount: 0

- name: Partners combine age and Pension Credit within one benefit unit.
period: 2023
input:
people:
older_partner:
age: 75
pension_credit_recipient:
age: 70
benunits:
couple:
members: [older_partner, pension_credit_recipient]
pension_credit: 1
households:
household:
members: [older_partner, pension_credit_recipient]
output:
tv_licence_discount: 1

- name: Separate benefit units retain only the unrestricted 2020 free licence share.
period: 2020
absolute_error_margin: 0.01
input:
people:
older_person:
age: 75
is_blind: false
pension_credit_recipient:
age: 70
benunits:
older_benunit:
members: [older_person]
pension_credit: 0
recipient_benunit:
members: [pension_credit_recipient]
pension_credit: 1
households:
household:
members: [older_person, pension_credit_recipient]
tv_licence_required: true
would_evade_tv_licence_fee: false
output:
tv_licence_free_licence_share: 0.3205479452
tv_licence_discount: 0.3205479452
free_tv_licence_value: 50.49
tv_licence: 107.01

- name: Separate benefit units do not extend the 2020 free share for a blind older person.
period: 2020
absolute_error_margin: 0.01
input:
people:
older_person:
age: 75
is_blind: true
pension_credit_recipient:
age: 70
benunits:
older_benunit:
members: [older_person]
pension_credit: 0
recipient_benunit:
members: [pension_credit_recipient]
pension_credit: 1
households:
household:
members: [older_person, pension_credit_recipient]
tv_licence_required: true
would_evade_tv_licence_fee: false
output:
tv_licence_free_licence_share: 0.3205479452
tv_licence_discount: 0.6602739726
free_tv_licence_value: 50.49
tv_licence: 53.51
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,36 @@ class tv_licence_free_licence_share(Variable):
label = "Share of the year covered by a free TV licence"
documentation = (
"Share of the year for which the household qualifies for the complete "
"age-based TV licence exemption. This excludes the blind discount."
"age-based TV licence exemption. Where Pension Credit is required, "
"the qualifying older person must belong to the recipient's benefit "
"unit. This excludes the blind discount."
)
entity = Household
definition_period = YEAR
value_type = float
unit = "/1"
reference = (
"https://www.legislation.gov.uk/ukpga/2003/21/section/365A",
"https://www.legislation.gov.uk/uksi/2022/693/pdfs/uksi_20220693_en.pdf",
"https://www.gov.uk/government/news/bbc-and-governments-joint-statement-on-delaying-the-tv-licence-fee-for-over-75s",
"https://www.gov.uk/free-discount-tv-licence",
"https://www.gov.uk/government/publications/pension-credit-technical-guidance/a-detailed-guide-to-pension-credit-for-advisers-and-others",
"https://www.nidirect.gov.uk/articles/free-tv-licences",
"https://www.legislation.gov.uk/uksi/2004/692/regulation/5",
)

def formula(household, period, parameters):
person = household.members
claims_pc = add(household, period, ["pension_credit"]) > 0
receives_pc = person.benunit("pension_credit", period) > 0
free_licence_share = 0
for aged_rules, share in fiscal_year_segments(
parameters.gov.dcms.bbc.tv_licence.discount.aged,
period.start.year,
):
has_aged = household.any(person("age", period) >= aged_rules.min_age)
meets_pc_requirement = not_(aged_rules.must_claim_pc) | claims_pc
aged = person("age", period) >= aged_rules.min_age
has_aged = household.any(aged)
has_aged_with_pc = household.any(aged & receives_pc)
meets_pc_requirement = not_(aged_rules.must_claim_pc) | has_aged_with_pc
free_licence_share += (
has_aged * meets_pc_requirement * aged_rules.discount * share
)
Expand Down
Loading