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/date-of-birth-cutoffs.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add `date_of_birth`, each person's day of birth as a YYYYMMDD number from `age` and `months_since_last_birthday`, which can also be set directly (with `age` as the person's age on 6 October) and then sets State Pension age and the cutoffs below; and add date parameters for the 6 April 2017 cutoffs: `gov.dwp.universal_credit.elements.child.limit.born_before`, `gov.dwp.tax_credits.child_tax_credit.limit.born_before` and `gov.dwp.pension_credit.guarantee_credit.child.first.born_before`, and for the Pension Credit mixed-age couple saving, `gov.dwp.pension_credit.mixed_age_couples.saving_latest_birth_date` (5 February 1954).
1 change: 1 addition & 0 deletions changelog.d/date-of-birth-cutoffs.changed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
`birth_year` is now the calendar year of `date_of_birth`. It is unchanged for household situations with whole ages; in survey data, people whose birthday falls from 7 October to 31 December now have the year before the period less their age, and a fractional age no longer truncates to the year before.
1 change: 1 addition & 0 deletions changelog.d/date-of-birth-cutoffs.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Apply the "born before 6 April 2017" rules by date of birth: the Universal Credit child limit and higher first child element (UC Regs 2013 reg 24A(3); UC (Transitional Provisions) Regs 2014 reg 43), the Child Tax Credit child limit (Tax Credits Act 2002 s.9(3A)), the Pension Credit first child addition (SPC Regs 2002 Sch IIA para 10), and the Pension Credit mixed-age couple saving, which needs the older member born on or before 5 February 1954 to have reached the qualifying age by 14 May 2019 (SI 2019/37 art. 4). The child rules compared a birth year of the period less the whole age with 2017, so in survey data the whole cohort born from October 2016 to October 2017 counted as born after the cutoff, when about half was born before it. Universal Credit and Pension Credit also now order children by date of birth (UC Regs reg 24B), so the first or eldest child is the one born first. For the child rules, household situations with whole ages, which place each person in the middle of their year of age, are unchanged; a fractional age is now read as the exact age on 6 October, as it already is for State Pension age. The mixed-age saving does change for whole ages: a situation's older member aged period less 1954 is placed on 6 April 1954, after the cutoff, where the birth year admitted them.
1 change: 1 addition & 0 deletions changelog.d/date-of-birth-cutoffs.removed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Remove `gov.dwp.universal_credit.elements.child.limit.start_year` and `gov.dwp.tax_credits.child_tax_credit.limit.start_year`, which held the year 2017, and `gov.dwp.pension_credit.mixed_age_couples.saving_latest_birth_year` (1954). A reform to a cutoff now sets the matching date parameter, written as a YYYYMMDD number: `born_before` (20170406) or `saving_latest_birth_date` (19540205).
17 changes: 13 additions & 4 deletions docs/book/programs/gov/dwp/state-pension.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,10 @@ timetable row by row:
A person attains State Pension age on the later of the two. The model
places each person's date of birth with `age` and
`months_since_last_birthday`, which counts months since their last
birthday on 6 October, the middle of the fiscal year:
birthday on 6 October, the middle of the fiscal year. `date_of_birth` holds
the resulting day (as a YYYYMMDD number), which other date-of-birth rules
also read, such as the 6 April 2017 cutoffs in Universal Credit, Child Tax
Credit and Pension Credit:

- `state_pension_age` is the person's own State Pension age;
- `months_since_state_pension_age` is how long before 6 October they
Expand All @@ -93,7 +96,12 @@ the exact age on 6 October, overriding `months_since_last_birthday` even
when another person supplies birthday months. The default implies a birth
date of 6 April: an entered age of 66 is above State Pension age at the
6 October check in 2026-27 and below it in 2027-28. Set a fractional age
or `months_since_last_birthday` to specify a different inferred birth date.
or `months_since_last_birthday` to specify a different inferred birth date,
or set `date_of_birth` directly (a YYYYMMDD number, with `age` as the age on
6 October): `state_pension_age`, `months_since_state_pension_age`,
`is_SP_age`, the State Pension Credit qualifying age and its attainment, and
the Savings Credit age test then all follow that day. A value that is not a
calendar date, or that gives a different age, raises an error.
Survey microdata records whole years only, so in
simulations built from data, including a region or constituency filtered
from it, each single year of age and sex is spread evenly over the year by
Expand Down Expand Up @@ -126,8 +134,9 @@ Other programmes test State Pension age in two ways:
itself is read as over it at the beginning of that year. With default
whole-number ages in a household situation, the inferred birthday is
6 April. Entering an integer State Pension age therefore makes this
boundary reading determine the Class 4 result; fractional ages and explicit
birthday-month inputs can place the birthday on another day. Class 1 employee
boundary reading determine the Class 4 result; fractional ages, explicit
birthday-month inputs and a `date_of_birth` input can place the birthday on
another day. Class 1 employee
contributions stop at State Pension age itself (SSCBA 1992 s.6(3)), which
the annual model reads as `is_SP_age`.

Expand Down
11 changes: 6 additions & 5 deletions docs/book/programs/gov/dwp/tax-credits.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,12 @@ benunit worked. PolicyEngine computes it via `ctc_entitlement`, gated by

Since April 2017 the child element has been restricted to the first two
qualifying children. The `child_count` parameter under
`child_tax_credit/limit/` and the `start_year/year.yaml` switch encode
this. Children born before the start year and a few specific exceptions
(non-consensual conception, multiple births, kinship care) are exempt;
the exemptions are modelled via `gov/contrib/two_child_limit/` and
related variables.
`child_tax_credit/limit/` encodes this, and `born_before` (6 April 2017,
Tax Credits Act 2002 s.9(3A)) sets which children it applies to: those
born before it are exempt, compared on `date_of_birth`. A few specific
exceptions (non-consensual conception, multiple births, kinship care)
also apply in law but are not modelled; `gov/contrib/two_child_limit/`
holds reform options such as an age-based exemption.

### Qualifying child tests

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
description: The first child addition replaces the standard child addition in the Pension Credit minimum guarantee for the eldest child or qualifying young person if they were born before this date, written as a YYYYMMDD number.
values:
0001-01-01: 20170406
metadata:
unit: date
period: year
label: Pension Credit first child addition cutoff date of birth
reference:
- title: The State Pension Credit Regulations 2002 Schedule IIA paragraph 10
href: https://www.legislation.gov.uk/uksi/2002/1792/schedule/IIA
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
description: Latest date of birth, written as a YYYYMMDD number, of the older member of a mixed-age couple for the couple to keep Pension Credit under the SI 2019/37 article 4 saving. The older member must have reached the qualifying age for State Pension Credit by 14 May 2019; a woman born on or before 5 February 1954 reached it on 6 May 2019, and one born on 6 February 1954 on 6 July 2019 (Pensions Act 1995 Sch 4 para 1, table 2).
values:
2019-05-15: 19540205
metadata:
unit: date
label: Latest date of birth for the mixed-age couple Pension Credit saving
reference:
- title: SI 2019/37 art. 4(1)
href: https://www.legislation.gov.uk/uksi/2019/37/article/4
- title: Pensions Act 1995 Sch 4 para 1 (pensionable age by date of birth)
href: https://www.legislation.gov.uk/ukpga/1995/26/schedule/4
- title: State Pension Credit Act 2002 s.1(6) (qualifying age)
href: https://www.legislation.gov.uk/ukpga/2002/16/section/1

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
description: The Child Tax Credit child limit applies to children and qualifying young persons born on or after this date, written as a YYYYMMDD number; those born before it are exempt.
values:
0001-01-01: 20170406
metadata:
unit: date
period: year
label: Child Tax Credit child limit cutoff date of birth
reference:
- title: Tax Credits Act 2002 s. 9(3A) and (3B)
href: https://www.legislation.gov.uk/ukpga/2002/21/section/9
- title: The Child Tax Credit Regulations 2002 reg. 9 (exceptions to the restriction on numbers)
href: https://www.legislation.gov.uk/uksi/2002/2007/regulation/9

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
description: A child or qualifying young person born before this date, written as a YYYYMMDD number, is transitionally protected from the Universal Credit child limit, and a claimant responsible for one keeps the higher child element for the first child.
values:
0001-01-01: 20170406
metadata:
unit: date
period: year
label: Universal Credit child limit and higher first child element cutoff date of birth
reference:
- title: The Universal Credit Regulations 2013 reg. 24A(3) (born before 6 April 2017, as worded from 1 February 2019 until revoked from 6 April 2026; from 6 April 2017 to 31 January 2019 it referred to the transitional circumstances in UC (Transitional Provisions) Regs 2014 reg 40, whose further conditions are not modelled)
href: https://www.legislation.gov.uk/uksi/2013/376/regulation/24A/2025-04-06
- title: The Universal Credit (Transitional Provisions) Regulations 2014 reg. 43 (saving of the higher first child element)
href: https://www.legislation.gov.uk/uksi/2014/1230/regulation/43

This file was deleted.

114 changes: 114 additions & 0 deletions policyengine_uk/tests/policy/baseline/demographic/date_of_birth.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# The date of birth is age years and months_since_last_birthday months before
# 6 October of the fiscal year, on a grid whose months start on the 6th; the
# day of birth is the one starting at or after that instant.

- name: A whole age in a household situation is the middle of the year of age.
period: 2025
absolute_error_margin: 0
input:
age: 8
output:
months_since_last_birthday: 6
# 6 October 2025 less 8 years and 6 months.
date_of_birth: 20170406
birth_year: 2017

- name: One day more since the last birthday is born the day before.
period: 2025
absolute_error_margin: 0
input:
age: 8
# The grid month from 6 March to 5 April 2017 has 31 days.
months_since_last_birthday: 6.032258064516129
output:
date_of_birth: 20170405
birth_year: 2017

- name: A birthday in December falls in the year before period less age.
period: 2025
absolute_error_margin: 0
input:
age: 8
months_since_last_birthday: 10
output:
# 6 October 2025 less 8 years and 10 months.
date_of_birth: 20161206
birth_year: 2016

- name: A fractional age is the exact age on 6 October.
period: 2025
absolute_error_margin: 0
input:
age: 8.25
output:
months_since_last_birthday: 3
date_of_birth: 20170706
birth_year: 2017

- name: A birthday on 6 October itself.
period: 2025
absolute_error_margin: 0
input:
age: 0
months_since_last_birthday: 0
output:
date_of_birth: 20251006
birth_year: 2025

- name: A date of birth from the age and birthday places the Universal Credit cutoff exactly, born 5 April 2017.
period: 2025
absolute_error_margin: 0
input:
age: 8
months_since_last_birthday: 6.032258064516129
output:
uc_is_child_born_before_child_limit: true
is_CTC_child_limit_exempt: true

- name: A date of birth from the age and birthday places the Universal Credit cutoff exactly, born 6 April 2017.
period: 2025
absolute_error_margin: 0
input:
age: 8
output:
uc_is_child_born_before_child_limit: false
is_CTC_child_limit_exempt: false

- name: A date of birth set for one person leaves the others placed by age.
period: 2025
absolute_error_margin: 0.001
input:
people:
parent:
age: 35
child:
age: 8
date_of_birth: 20170405
benunits:
benunit:
members: [parent, child]
households:
household:
members: [parent, child]
output:
# The parent's date_of_birth input is 0 (not given), so the rules place
# them on 6 April 1990, as with no input at all: State Pension age 68.
birth_year: [1990, 2017]
state_pension_age: [68, 68]
is_SP_age: [false, false]
uc_is_child_born_before_child_limit: [false, true]

- name: A date of birth sets State Pension age exactly.
period: 2026
absolute_error_margin: 0.001
input:
age: 66
date_of_birth: 19600105
output:
# Pensions Act 1995 Sch 4 para 1: born 6 October 1954 to 5 April 1960,
# State Pension age is 66, attained on 5 January 2026. From then to 6
# October 2026 is 9 grid months and the 1 day of the grid month from 6
# December 2025 to 5 January 2026 that falls after it: 10 - 30/31.
state_pension_age: 66
is_SP_age: true
months_since_state_pension_age: 9.032
Original file line number Diff line number Diff line change
Expand Up @@ -104,3 +104,63 @@
child_tax_credit_pre_minimum: 26
output:
tax_credits: 26
# Tax Credits Act 2002 s.9(3A): the child limit applies to a child or qualifying
# young person born on or after 6 April 2017. The 2024 child element is 3,455.
- name: CTC child limit, born 5 April 2017 is exempt
period: 2024
absolute_error_margin: 0
input:
age: 7
date_of_birth: 20170405
output:
is_CTC_child_limit_exempt: true
- name: CTC child limit, born 6 April 2017 is not exempt
period: 2024
absolute_error_margin: 0
input:
age: 7
date_of_birth: 20170406
output:
is_CTC_child_limit_exempt: false
- name: CTC child element for a third child born 5 April 2017
period: 2024
absolute_error_margin: 0.01
input:
people:
parent:
age: 35
child_1:
age: 10
date_of_birth: 20140301
child_2:
age: 9
date_of_birth: 20150501
child_3:
age: 7
date_of_birth: 20170405
benunits:
benunit:
members: [parent, child_1, child_2, child_3]
output:
CTC_child_element: 10_365
- name: CTC child element for a third child born 6 April 2017
period: 2024
absolute_error_margin: 0.01
input:
people:
parent:
age: 35
child_1:
age: 10
date_of_birth: 20140301
child_2:
age: 9
date_of_birth: 20150501
child_3:
age: 7
date_of_birth: 20170406
benunits:
benunit:
members: [parent, child_1, child_2, child_3]
output:
CTC_child_element: 6_910
Loading
Loading