Skip to content

Hold the Child Tax Credit family element at £545 and apply the 6 April 2017 birth-date condition - #2051

Draft
MaxGhenis wants to merge 4 commits into
mainfrom
ctc-family-element-2017-cutoff
Draft

MaxGhenis wants to merge 4 commits into
mainfrom
ctc-family-element-2017-cutoff

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Oct 2, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

The Child Tax Credit family element was £545 a year for the whole life of tax credits, 6 April 2003 to 5 April 2025. PE-UK started the parameter in 2016 and CPI-uprated it, so it read £550.99 in 2017-18, rising to £721.57 in 2024-25. The model also paid it to every eligible family, though from 6 April 2017 it is only for families with a child or qualifying young person born before 6 April 2017.

This PR:

Change Law
elements/family_element.yaml: £545 from 2003-04-06, uprating removed CTC Regs 2002 reg 7(3)(b) as made; reg 7(3) as substituted by SI 2011/1035 reg 2(2)
New elements/family_element_baby_addition.yaml: £545 more where any child is under one, 2003-04-06 to 2011-04-05 reg 7(3)(a) as made (£1,090)
New eligibility/family_element_born_before.yaml: 20170406 TCA 2002 s.9(2)(a) (WRWA 2016 s.13(2)(a)); CTC Regs reg 7(2)(a) (SI 2017/387 reg 4(b))
CTC_family_element applies the cutoff and the pre-2011 baby rate as above

The law

Fetched verbatim from legislation.gov.uk /data.xml on 2026-10-02.

CTC Regs 2002 reg 7(3), as made (in force for awards from 6 April 2003, reg 1):

The family element of child tax credit— (a) in a case where any of the children referred to in paragraph (2)(b) above is under the age of one year, is £1,090; and (b) in any other case, is £545.

SI 2011/1035 reg 2(2) (Tax Credits Up-rating Regulations 2011, awards for the year from 6 April 2011):

For paragraph (3) substitute— (3) The family element of child tax credit is £545.

Never uprated.

  • Apart from that 2011 substitution, the Tax Credits Up-rating Regulations from 2004/941 to 2024/247 amend only reg 7(4) (individual element) and (5) (disability element).
  • legislation.gov.uk's changes feed for SI 2002/2007 records 107 effects on reg 7, and the substitution is the only one on paragraph (3). The feed is not a complete list: it omits SI 2008/796 reg 2, which amends paragraph (4) only (fetched separately).
  • Point-in-time texts of reg 7(3) for 2003-04, 2010-11, 2011-12, 2016-17, 2017-18 and 2024-25 all agree.
  • The 2016-20 tax credit freeze (WRWA 2016 s.12 and Sch 1 para 2(b)) covers reg 7(4)(c) and (f), not paragraph (3).
  • HMRC's rates page gives £545 for 2023-24 and 2024-25, and "not applicable" for 2025-26.

Reg 7(2)(a) from 6 April 2017 (words inserted by SI 2017/387 reg 4(b)):

the family element of child tax credit if the claimant is, or either or both the joint claimants are, responsible for a child or qualifying young person who was born before 6th April 2017, and

TCA 2002 s.9(2)(a), as substituted by WRWA 2016 s.13(2)(a) (in force 6 April 2017, s.36(4)), says the same. SI 2017/387 has no transitional saving for existing awards.

Two corrections to the brief that led to this PR: the rule is in reg 7(2)(a), and reg 7(2A) is the child limit. And the amount was £545 from 2003; what changed in 2011 was the end of the £1,090 rate for a family with a baby.

Model notes

  • Birth dates. On main a person's date of birth is known only to the year (birth_year, the period less age, or an input). A child counts as born before the cutoff when 6 April of their birth year is before 20170406. That means a birth year of 2016 or earlier, exactly as is_CTC_child_limit_exempt reads the 2017 child limit. Apply the 6 April 2017 child cutoffs by date of birth #1904 (date of birth from age and months since the last birthday) will replace this with its birth_day helper; the parameter is already a YYYYMMDD date to match its born_before parameters.
  • Partial birth-year inputs. A situation that enters birth_year for some people leaves everyone else at 0 (core fills the input array). Read naively, 0 is "born before 2017". The formula treats 0 as not given and uses the period less age. The Hypothesis characterisation found this case, and it has a YAML case. is_CTC_child_limit_exempt, uc_is_child_born_before_child_limit and the Pension Credit child addition share the issue on main. Apply the 6 April 2017 child cutoffs by date of birth #1904 fixes those by moving them to its helper, which ignores birth_year inputs and treats a 0 date_of_birth as not given.
  • Under one. The baby rate reads age < 1 for the year. In law it ran by relevant period (daily), so in a whole-year model a child who turns one mid-year keeps it all year. It affects only 2003-04 to 2010-11.
  • Years before 2015. PE-UK converts parameters to fiscal years for 2015 to 2040 only. An earlier YEAR period reads parameters at 1 January, which is in the previous tax year. The pre-2015 YAML cases use periods 2004, 2010 and 2012, where both tax years have the same law. The individual element and income thresholds start in April 2016 in the parameter files, and the model backdates each parameter's earliest value to 1 January 2015, so neither has values before 2015. Follow-up chip: extend the conversion.

Invariants (stated and tested)

policyengine_uk/tests/test_ctc_family_element_properties.py:

  1. Parameter, exhaustive. On every day from 2003-04-06 to 2040-12-31 the family element is £545. With the baby addition it is £1,090 before 2011-04-06 and £545 from then. In every converted fiscal year (2015 to 2040) the YEAR value is £545, the baby addition is 0 and the cutoff is 20170406.
  2. One flat amount, for the right families (Hypothesis, 2015-16 to 2024-25). The populations mix 1-2 adults, 0-4 dependants aged 0-21 (with or without non-advanced education), entered or missing birth years, and CTC eligible or not. The family element is always 0 or £545, never per child. It is £545 exactly when the family is CTC-eligible and counts a child or qualifying young person born in 2016 or earlier. The oracle computes birth years from the generated data, not from the model.
  3. Order invariance (Hypothesis): reversing each family's member order changes nothing.
  4. Metamorphic (Hypothesis, 2017-18 on): adding a newborn never changes the family element.
  5. Baby rate (Hypothesis, 2004 to 2010): £1,090 when an eligible family counts a child under one, otherwise £545.

Tests

policyengine_uk/tests/policy/baseline/gov/dwp/tax_credits/ctc_family_element.yaml: 22 cases, worked from the law in the file header. On main, 20 fail on value or the missing parameters. The two that pass are 2016-17 (where main already had £545) and the 2025-26 zero award. For example, in 2024-25 a lone parent on £25,000 with one child born in 2014 gets £3,455 + £545 - 41% x (25,000 - 19,995) = £1,947.95 (main: £2,124.52). With one child born in 2019 the award is £1,402.95. Awards use the model's annual arithmetic. SI 2002/2008 reg 8(3) steps 1-2 take each element as a daily rate rounded up to the penny, so a full-year statutory award is a few pounds higher (£1,952.00 for the first case). The element amounts and the condition are exact.

test_ctc_family_element_properties.py: 31 passed locally. The characterisation property pins a partial birth-year example in both directions. The full YAML and pytest suites run in CI's Test job.

Enhanced FRS impact (2024-25)

One real Microsimulation per package state on a copy of enhanced_frs_2024_25.h5 (sha256 e433e532…): base origin/main 15de0cadf, branch b34cc9478. Scripts and aggregate outputs are kept with the session notes. Weighted totals, 2024-25:

Main This PR Change
Family element in CTC maximum rates £15.2m £9.1m −£6.1m
Child Tax Credit paid £80.8m £78.6m −£2.19m
Housing Benefit (tax credits are HB income) +£0.19m
Household net income −£2.00m
Poverty rates (BHC, AHC, children, pensioners) unchanged

Where the family element moves:

  • 21,000 weighted families are CTC-eligible in the data.
    • 16,600 keep it, at £545 instead of £721.57: −£2.94m in maximum rates.
    • 4,400 lose it because every child was born on or after 6 April 2017: −£3.17m.
    • None gain it.
  • CTC paid falls by less (−£1.77m and −£0.42m). Families still paid CTC on both bases take the full element change (−£2.19m). The other −£3.92m of element falls on families tapered to zero on both bases.
  • No family stops getting CTC altogether.

The amounts are small because the data has few tax credit awards left in 2024-25: 21,000 weighted CTC-eligible families and £80.8m of CTC paid on main. In 2025-26 tax credits pay nothing on either base. Maximum rates and pre-minimum CTC still change, but abolition stops those changes reaching paid CTC, Housing Benefit or household net income.

Coordination

axiom: TheAxiomFoundation/rulespec-uk#372 queued (extended with reg 7(3) as made and as substituted from 2011, plus companion tests)

Fixes #2050

🤖 Generated with Claude Code

…fore-2017 rule

The family element was £545 from 6 April 2003 until tax credits ended on
5 April 2025 (CTC Regs 2002 reg 7(3) as made, and as substituted by
SI 2011/1035 reg 2(2)); no Tax Credits Up-rating Regulations changed it.
The parameter started in 2016 and was CPI-uprated, giving £721.57 in 2024-25.

- family_element: £545 from 2003-04-06, no uprating.
- family_element_baby_addition: £545 more where a child is under one, until
  5 April 2011 (reg 7(3)(a) as made).
- eligibility/family_element_born_before (20170406): from 6 April 2017 the
  element is included only where a child or qualifying young person was born
  before 6 April 2017 (TCA 2002 s.9(2)(a); reg 7(2)(a), SI 2017/387 reg 4(b)).
  CTC_family_element applied no such condition.
- A birth year entered for some people leaves the others at 0; the formula
  falls back to the period less age for them.

Tests: 20 YAML cases worked from the law (17 fail on main) and Hypothesis
properties (bounds, characterisation, order invariance, newborn metamorphic,
pre-2011 baby rate).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis and others added 3 commits October 2, 2026 09:57
A situation that enters birth_year for some people leaves the others at 0,
which is the case the formula's fallback handles; the family element
assertion is what the property is about.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-input cases

- family_element.yaml: the 2011 substitution is the one Up-rating change to
  reg 7(3); cite the point-in-time texts rather than the changes feed.
- YAML header: award amounts are the model's annual arithmetic (reg 8(3)
  steps 1-2 round daily rates up to the penny); the model backdates
  parameters to 2015.
- Two YAML cases: an older child without an entered birth year beside an
  entered one, and two pre-cutoff children (one family element).
- Pin a partial birth-year example on the characterisation property.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Child Tax Credit family element is CPI-uprated and ignores the 6 April 2017 birth-date condition

1 participant