Fix Maryland CTC phaseout per qualifying child - #9591
PavelMakarchuk wants to merge 2 commits into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #9591 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 4 1 -3
Lines 76 30 -46
Branches 2 2
=========================================
- Hits 76 30 -46
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Program ReviewSource Documents
Critical (Must Fix)None. Should AddressNone remaining.
SuggestionsNone. PDF Audit Summary
The prior complete audit's legal evidence remains applicable because no formula, parameter or reference changed. The worksheet supports per-child phaseout. No outstanding cross-reference, external-source request or numerical mismatch requires further verification; queue is NONE. Validation Summary
The isolated checks use actual formula ASTs, dated parameters and lightweight entity stubs. They are not full-framework tests. No local full-model test success is claimed: a missing dependency prevents that local runtime, and heavy installs/imports were avoided for RAM/disk constraints. Prior-head CI passed selective tests but cannot validate this new head. Review Severity: APPROVENo unresolved review findings. Request Ziming's review; wait for current-head CI before merging. This recommendation does not perform a merge or formal GitHub approval. Run MetricsInitial full review: 3 unique delegates, 60 pages rendered at 300 DPI, 0 cache hits, 6.9 minutes before initial consolidation. Incremental pass reuses the same delegate and 60 checksum-valid page renders (no new rendering). Exact incremental duration not recorded. Initial captured branch was 0 commits behind base. Next StepsRequest Ziming's review and monitor current-head CI. No further fix identified. |
hua7450
left a comment
There was a problem hiding this comment.
The per-child phaseout fix is correct. I checked it against § 10-751 as amended by HB 352 and against the 2025 Worksheet 21C, and I worked out every new or changed expected value by hand; all of them match. I'm requesting changes only for the small cleanups below.
What I checked
- Worksheet 21C, lines 4–7: line 6 subtracts the reduction from $500, and line 7 multiplies the result by the number of qualified children. The formula now does the same. Flooring the family total at $0 gives the same result as a per-child floor, because every qualified child gets the same $500, including a child with a disability.
- § 10-751(c) as amended by HB 352 (Ch. 604): the credit drops by $50 for each $1,000 "or fraction thereof" of federal AGI over $15,000. The
ceilstep matches worksheet line 4 ("round up to the next whole number"). - The 2024 hard cap of "$15,000 or less" (Ch. 604, struck text) and refundability under § 10-751(d) both match the new 2024 and integration tests.
Requested changes
- References:
md_ctc.pycites casetext and Justia's 2022 edition of § 10-751. The 2022 edition only has the pre-2025 hard cap, not the phaseout. Please add the current official text: https://mgaleg.maryland.gov/mgawebsite/Laws/StatuteText?article=gtg§ion=10-751&enactments=false.md_ctc_eligible.pyhas the same references and could get the same update. - Number formatting in tests: the new cases write
15000,24001and so on. The rest ofmd_ctc.yamluses underscore grouping (15_000). Please match it. - Derivation comments in tests: the existing cases show their arithmetic; the new ones don't. One line per case would make the per-child math easy to check, for example
# 2 × ($500 − ceil($1,001 / $1,000) × $50) = 2 × $400 = $800. - Edited $18,000 case: the comment
Phase-out reduction: ($3,000 / $1,000) * $50 = $150should say "per child", now that the reduction applies to each child.
Fixes #9589.
Maryland's 2025 child tax credit phaseout was subtracted once per family, overstating credits for families with multiple qualifying children. Apply the reduction per eligible child: two children and $16,000 AGI now receive $900 instead of $950.
Maryland Worksheet 21C, lines 4–7 reduces the per-child credit before multiplying by qualifying children. Line 7 states: “Multiply Line 6 by the number of qualified children”. The existing two-child $18,000 test is corrected from $850 to $700; new tests cover $15,000/$15,001, $16,000/$16,001 and $24,000/$24,001. Also adds negative-AGI, 2024 cutoff, and credit-to-final-tax integration cases. Single-child and pre-2025 calculations are preserved.
Validation:
make formatandgit diff --checkpassed. Isolated execution of the current formula against all 23 CTC YAML cases passed; the initial regression run demonstrated five failures against the original formula. Full local YAML execution was blocked before tests by the existing environment's missingspm_calculator.policyengine_adapterdependency; CI must validate full-model execution.