You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
The High Income Child Benefit Charge ignores the rounding in ITEPA 2003 s. 681C(3) #2321
ITEPA 2003 s. 681C sets the High Income Child Benefit Charge at the appropriate percentage of the Child Benefit concerned. The percentage is (ANI − £60,000) / £200, capped at 100% (s. 681C(2)). Subsection (3) then says:
(3) If— (a) the total of the amounts mentioned in paragraphs (a) and (b) of subsection (1), or the amount of the charge determined under that subsection, is not a whole number of pounds, or (b) the percentage determined under subsection (2)(b) is not a whole number, it is to be rounded down to the nearest whole number.
So the Child Benefit total, the percentage and the charge are each rounded down. For example, with adjusted net income of £71,336 and Child Benefit of £1,406.60:
the percentage is 56.68%, rounded down to 56%;
the Child Benefit is rounded down to £1,406;
56% × £1,406 = £787.36, so the charge is £787.
What the model does
CB_HITC multiplies the received Child Benefit by child_benefit_charge_share, a continuous share (policyengine_uk/utils/child_benefit.py). Nothing is rounded, so the charge here is 56.68% × £1,406.60 = £797.26, which is £10.26 too much.
The PolicyBench UK round 2 internal audit (October 2026). The two strongest models round the percentage down, and the engine does not. The affected audit cells will be added below once the audit has run.
Evidence from PolicyBench UK round 2, an internal audit of policyengine-uk 2.126.7 (references identical on 2.126.8). Six models answered the same 200 households. A reference adversary (a blind GPT-6.1 Sol judge, then reconciliation with the engine log) reviewed consensus disagreements and a sample of single-model misses, and each verdict was adjudicated against the engine code and the law.
Audited cells that turn on this issue: 39. "With #2323" is the reference recomputed on that branch alone; "exact" counts the six models within £1 of the reference, before and after.
All cells, audited or not. Of the run's 2,800 references, #2323 moves 62 (43 of them audited). In those 62 cells, model answers matching the reference go from 104 to 177 of 372.
Source: audit/adjudication.json and audit/attribution/attribution.json in the round 2 record.
Activity
MaxGhenis commentedon Oct 11, 2026
Evidence from PolicyBench UK round 2, an internal audit of policyengine-uk 2.126.7 (references identical on 2.126.8). Six models answered the same 200 households. A reference adversary (a blind GPT-6.1 Sol judge, then reconciliation with the engine log) reviewed consensus disagreements and a sample of single-model misses, and each verdict was adjudicated against the engine code and the law.
Audited cells that turn on this issue: 39. "With #2323" is the reference recomputed on that branch alone; "exact" counts the six models within £1 of the reference, before and after.
All cells, audited or not. Of the run's 2,800 references, #2323 moves 62 (43 of them audited). In those 62 cells, model answers matching the reference go from 104 to 177 of 372.
Source:
audit/adjudication.jsonandaudit/attribution/attribution.jsonin the round 2 record.