Repository navigation
Conversation
…ffordability credit in 2026 - Idaho Code 63-3029L(1) allows the $205 credit only for taxable years beginning "before January 1, 2026"; the model kept paying it. - C.R.S. 39-22-130(6)(f) (HB24-1311) allows no family affordability credit when forecast revenue growth is below three percent, and the Department of Revenue "will temporarily pause the Family Affordability Tax Credit for Tax Year 2026"; the model kept paying $3,273 per young child. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… state child credit totals The nonrefundable credit list already leaves Idaho's child tax credit out from 2026, and both contrib reforms revive it by adding it back, so zeroing the amount broke them. The only remaining place the expired credit showed up was the state child tax credit totals (`taxsim_state_ctc`), which now leave it out from 2026. `id_ctc` documents that it is the worksheet amount a reform can revive. Also points the Colorado family affordability amount at the 2025 DR 0104CN, page 3. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@hua7450, a partner-contract change for your go (the policyengine-us partner-test gate). What moves. Colorado's family affordability credit is $0 for tax year 2026 under C.R.S. 39-22-130(6)(f) (HB24-1311, p. 10): the credit pays only when forecast revenue growth clears the statute's threshold, and it doesn't for 2026. The model still paid it in 2026. With this PR,
Every new value is 0. Nothing else in these files moves. The three questions:
Once you approve, the hub updates the 21 expectations in this PR and lands it on the usual gates. If the partner should hear first, say so and the hub holds. |
|
Partner cases. The 21 values going to 0 are correct. C.R.S. 39-22-130(6)(f) allows no credit when the estimated adjustment factor is below 3% (HB24-1311, p. 10), and Legislative Council Staff confirm that the December 2025 forecast put the FY 2026-27 factor below 3%, so the credit is unavailable for tax year 2026 (memo R26-322, p. 3). Yes to the three partner-test questions. Please update the four files; I'll review once that's pushed. |
Summary
Colorado's refundable family affordability credit still paid out in 2026, while Idaho's expired child tax credit still counted in state child tax credit reporting:
gov.states.co.tax.income.credits.family_affordability.amount: $3,273 in 2025, $0 from 2026gov.states.household.state_ctcs: dropid_ctcfrom 2026The Colorado change removes a refundable credit the model was still paying in 2026 (the age multiplier scales the base amount, so the older-child amount, $2,455 in 2025, is also $0).
Idaho's applied credit was already zero in 2026: the nonrefundable credit list drops
id_ctcfrom 2026, and the two contributed reforms that revive the credit (gov.contrib.states.id.ctc, S1450) add it back to that list. The expired worksheet amount still counted in the baseline state child tax credit totals (taxsim_state_ctc), which now leave it out from 2026.id_ctckeeps its $205 amount and documents that it is the worksheet amount a reform can revive.Both revival reforms also restore
id_ctcto state child tax credit reporting, preserving their aggregate outputs. The ordinary/refundable revival uses its existing activation date, so reporting remains zero before delayed activation. Later changes to other states' reporting entries, including Rhode Island's 2027 credit, remain intact. Existing reform tests now cover these totals without adding a model setup or counting the refundable top-up twice.Found while auditing the claimable-filer rules (#10049, #10050); these are not dependency rules, so they are separate. Branched from
main.Open question for 2027 and later: the Colorado credit returns only if the revenue trigger allows it, and HB26-1223, p.3 creates a separate credit (C.R.S. 39-22-131) from 2027 that the model does not have. The parameter stays at $0 until a later year is known.
Partner contract tests (needs the partner gate)
The 2026 Colorado pause intentionally removes positive partner-facing API outputs. The unchanged contract fixtures contain 12 affected cases and 21 assertions, listed below. File paths are relative to
policyengine_us/tests/policy/baseline/partners/; every output ispeople.<person>.co_family_affordability_creditin 2026. Old values are the preserved contract expectations. New values follow from the current 2026 base amount of zero: the formula multiplies that amount by finite eligibility, age, and phaseout factors. All listed fixtures have ordinary finite inputs and no reform overrides. File-level runtime comparisons could not finish on the overloaded host and remain pending.policyengine_us/tests/policy/baseline/partners/)The age-17 child in the ladder already expects $0. The fully phased-out FATC case also stays at $0. A scan of all partner fixtures found no positive FATC assertions outside these four files, and no Idaho partner fixture or
id_ctc/taxsim_state_ctcassertion.Pending hub coordination with Ziming (hua7450): the hub asks the three-question partner gate before any expected-output edit and obtains his approval before landing. These failing fixtures remain unchanged as evidence.
This PR does not edit any file under
tests/policy/baseline/partners/. Per the repo's partner-test rule, those expectations change only after the three-question gate, and Ziming (hua7450) gives the go for partner contract tests.Tests
The touched baseline YAML covers an Idaho household with no applied credit or state CTC reporting in 2026, and Colorado's $3,273 young-child credit in 2025 followed by zero for both age groups in 2026. The contributed YAML now checks restored reporting alongside revival payouts. The existing activation Python file covers delayed activation, plus a parameter-only case for later credit entries and duplicate prevention; it adds no country-model setup. Its existing CI group remains
test-policy-contrib-python.Local model verification is blocked at
1e71253423537ffd4ab0ff5cd748594c0b3581ea. The parameter-only reporting assertions passed in an isolated function check; formatting and lint passed before every commit. The expanded activation Python file collected no cases after approximately 25 minutes, while the host reported load 270–289 and the process used about 13 seconds of CPU. A separate Colorado baseline attempt also stalled before collection (load remained above 220, under 3 seconds of CPU after about 10 minutes). Both attempts were stopped; these are incomplete checks, not assertion failures. The final activation run's peak RSS was unavailable after interruption.Before the reporting extension, head
9440865b16d51ab50b6bf2f310fc6448e0c14ac3passed the activation Python file (2 cases; overall 514.52s; peak RSS 2.08 GiB, borrowed Python 3.13.9/core 3.32.15) and the Idaho contrib CTC YAML (5 cases; overall 917.39s; peak RSS 10.05 GiB, isolated Python 3.14.4/core 3.33.2). S1450 reported 7 passing cases before interruption to implement the reporting fix. These local measurements include host contention and do not establish Linux CI cost.Required reruns on a host with capacity, still one foreground file per process:
policyengine_us/tests/policy/contrib/states/test_id_ga_ctc_reform_activation.py(3 cases after expansion).policyengine_us/tests/policy/contrib/states/id/ctc/id_ctc_reform.yaml(5 cases).policyengine_us/tests/policy/contrib/states/id/s1450/id_s1450.yaml(7 cases).policyengine_us/tests/policy/baseline/gov/states/co/tax/income/credits/family_affordability/co_family_affordability_credit.yaml(6 cases).policyengine_us/tests/policy/baseline/gov/states/id/tax/income/credits/id_ctc.yaml(10 cases).Hub microsimulation impact (current head)
A real microsimulation on the default dataset, main at the merge base
35f3c1f92aagainst this PR's head1e71253423, for 2026. The runs went one at a time under the shared heavy-job lock. Sums are weighted.co_family_affordability_creditco_refundable_creditsco_income_taxid_ctcid_income_taxstate_income_taxincome_taxhousehold_net_incomehousehold_benefitsComparison files are in
fixes/10051-impact/on the hub host.axiom: TheAxiomFoundation/rulespec-us#1698 queued; TheAxiomFoundation/rulespec-us#1704 queued
🤖 Generated with Claude Code