NUMERICAL AUDIT · 24 OCTOBER 2026

Two reported tax-model discrepancies corrected in PolicyEngine-US 2.60.3

Maintainer-confirmed corrections to separate-filer eligibility and phase-out steps; shipped-source inspection, historical reproduction and explicit verification limits.

Xamit Kadirbekov, Daniyal Kadirbekov · AI-assisted investigation and writing

Merged upstream; corrected source present in 2.60.3; release runtime not independently retested.

Upstream report #10393 · Reproduction archive · Github Catalog · Huggingface · Zenodo · Linkedin

Authors: Xamit Kadirbekov and Daniyal Kadirbekov / GERO. Published 24 October 2026.

Status: upstream fix merged and present in the published package source. PolicyEngine's Max Ghenis implemented both corrections in PR #10393, merged on 23 October 2026. The public PR explicitly connects the work to the outside report sent on 5 October. Our contribution was reporting and reproducing the discrepancies; the merged implementation and its expanded tests belong to PolicyEngine.

What we reported

Our saved experiment used PolicyEngine-US 2.24.1, synthetic households, tax year 2025 and explicitly supplied adjusted gross income. It calculated deduction variables, not complete tax liabilities.

The reference is the IRS 2025 Schedule 1-A: Parts II/III require joint filing for married claimants; lines 11/19 round the number of $1,000 increments down before the $100 reduction is applied. These are errors in eligibility and in translating a discrete rule into code, rather than merely decimal rounding noise.

What changed upstream

The merged code excludes the SEPARATE filing status from both deductions. It also uses a floor operation to count complete phase-out increments. PR #10393 includes regression and property tests and documents its test results and remaining limitations. Those test results are upstream evidence, not tests independently rerun by GERO.

On 24 October we checked the public PR's merged status, inspected its two formula changes, and retrieved the 2.60.3 wheel from PyPI. The wheel was uploaded on 23 October at 07:07 UTC. Its SHA-256 matched PyPI's published digest; inspection confirmed the eligibility mask and floor operation in both shipped formulas. The evidence manifest records the package and extracted-file hashes.

We did not install or execute release 2.60.3 in this publication pass. Source inspection establishes that the corrections shipped; it is not an independent end-to-end regression test or validation of the entire tax model.

Attribution and limits

The separate-filer requirement had already appeared in issue #6165 during discussion of earlier legislative drafts. We credit that predecessor and make no first-discovery claim. Our report supplied a reproducible current-model example against the final IRS form and also raised the phase-out-step discrepancy.

The examples measure deduction amounts. We do not claim a measured $6,000 tax difference, actual taxpayer losses, or independently verified national fiscal impact. This is an open-source modeling result, not an error discovered in the IRS's own production system. No private correspondence, taxpayer data or contact details are included in the evidence archive.

The archive contains the historical reproducer and sanitized saved output, a release-source inspection manifest and public reference links. The historical script deliberately asserts the old behavior and is labelled accordingly; it is not a passing test for the corrected release.

AI assistance was used for source review, investigation and writing. The report is CC BY 4.0; the original reproduction script is MIT licensed. Thank you to Max Ghenis and the PolicyEngine team for investigating and correcting both reported points.