What is wrong
A young person in non-advanced education or approved training is a qualifying young person "up to, but not including, the 1st September following their 19th birthday": UC Regs 2013 reg. 5(1)(b) and SPC Regs 2002 reg. 4A(1)(b), in the same words. The model treats a 19-year-old three ways:
| Where |
19-year-old at school, course begun before 19 |
| Universal Credit, household calculation |
not a qualifying young person: is_before_universal_credit_qualifying_young_person_terminal_date is an input that defaults to false |
| Universal Credit, microdata |
a qualifying young person: policyengine-uk-data sets that input true for every 19-year-old in qualifying education or training |
| Pension Credit, everywhere |
a qualifying young person: is_qualifying_young_person_for_pension_credit has no terminal-date condition |
So the same family gets a different answer from the calculator than from the microdata, and Pension Credit does not encode the date its regulation sets.
Fix
Since #1899 and #1904 the model places a date of birth (date_of_birth, or age and months_since_last_birthday). #2279 uses it for the 1 September after the 16th birthday. Do the same at 19:
Every 19-year-old (age on 6 October) is before that date at the start of the year, so the default becomes "counts", which is what the microdata and Pension Credit already do. A dataset or user can still set either variable to false.
policyengine-uk-data need not change: its derivation gives the same value the formula does for the records it sets true. It becomes redundant.
Needs #2279 (it edits the same Pension Credit variable).
What is wrong
A young person in non-advanced education or approved training is a qualifying young person "up to, but not including, the 1st September following their 19th birthday": UC Regs 2013 reg. 5(1)(b) and SPC Regs 2002 reg. 4A(1)(b), in the same words. The model treats a 19-year-old three ways:
is_before_universal_credit_qualifying_young_person_terminal_dateis an input that defaults to falseis_qualifying_young_person_for_pension_credithas no terminal-date conditionSo the same family gets a different answer from the calculator than from the microdata, and Pension Credit does not encode the date its regulation sets.
Fix
Since #1899 and #1904 the model places a date of birth (
date_of_birth, orageandmonths_since_last_birthday). #2279 uses it for the 1 September after the 16th birthday. Do the same at 19:is_before_first_september_following_19th_birthday, true when the fiscal year starts before that 1 September (a year counts if any of it falls in the period, as Count 16-year-olds outside education as UC and Pension Credit qualifying young persons until the 1 September after their 16th birthday #2279 counts the 16th-birthday period);is_before_universal_credit_qualifying_young_person_terminal_datefollow it unless set;Every 19-year-old (age on 6 October) is before that date at the start of the year, so the default becomes "counts", which is what the microdata and Pension Credit already do. A dataset or user can still set either variable to false.
policyengine-uk-data need not change: its derivation gives the same value the formula does for the records it sets true. It becomes redundant.
Needs #2279 (it edits the same Pension Credit variable).