Repository navigation
Conversation
… with a service-connected disability MCL 206.30(3)(b) allows the exemption for each qualified disabled veteran, defined as a veteran with a service-connected disability (38 U.S.C. 101(16)), with no rating threshold. PolicyEngine-US read is_fully_disabled_service_connected_veteran, so veterans with partial ratings got nothing. Add a has_service_connected_disability input that defaults to the fully disabled flag, and read it in mi_exemptions and mi_exemptions_count (the home heating credit's count). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
David, can you check the Michigan exemption here? MCL 206.30(3)(b) and the 2025 MI-1040 instructions give a $500 exemption for each veteran on the return with a service-connected disability, at any rating. So the PR adds a person input, |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #10714 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 1 2 +1
Lines 37 36 -1
=========================================
- Hits 37 36 -1
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:
|
PR Review: Give Michigan's qualified disabled veteran exemption to every veteran with a service-connected disabilitySummaryThe law supports the fix. MCL 206.30(3)(b) gives an additional exemption "for each taxpayer and every dependent of the taxpayer who is a qualified disabled veteran". It defines that as "a veteran with a service-connected disability": a disability "incurred or aggravated in the line of duty ... as described in 38 USC 101(16)", held by a veteran with an honorable or general discharge. Neither the statute nor the 2023-2025 MI-1040 or MI-1040CR-7 instructions set a VA rating threshold. Before this PR, the model gave the exemption only to The model now counts the exemption per person, across the head, the spouse and each dependent. It uses the right amounts ($400 for 2023, $500 for 2024-2026) and feeds both readers: One issue remains. The new variable has a default formula, so PolicyEngine treats it as computed, not as an input, and the web calculator's household builder won't offer it. That leaves the fix out of reach for calculator users, including readers of the Veterans Day post that cites this PR. Making it a plain input fixes this. Critical (must fix)None. Should address
Suggestions
Verified correct
Axiom line assessment
rulespec-us#2076 is OPEN and labelled
It matches the head's behavior. The line's legal id says If the "Should address" item changes the variable to a plain input, the issue body's description of CI statusAt the current head 4a67d2b, most checks pass, including:
Pending at the last check: Microsimulation and Baseline states-shard-1. No failures so far. Locally on the head tree, the three changed YAML files pass 33/33. On the tree merged with main:
Branch statusThe branch is 1 commit ahead and 46 behind main. Main has changed none of this PR's files since the merge base. #10398 (Michigan military survivor exemptions and The PR shares no files with the sibling military retirement PRs (#10702 UT, #10713 MT, #10715 ID, #10716 DE, #10717 ID). #10330 (open, not in this batch) adds Washington-scoped VA rating inputs: a design overlap with no file conflict (Suggestion 3). Verdict: REQUEST_CHANGES |
DTrim99
left a comment
There was a problem hiding this comment.
Requesting changes per the review above: 0 critical, 1 should (has_service_connected_disability has a default formula, so it isn't an input variable and the web calculator can't set a partial rating; make it a plain bool input and OR it with is_fully_disabled_service_connected_veteran in Michigan), 5 suggestions. The law supports the fix and the amounts check out.
What was wrong
PolicyEngine-US gave Michigan's qualified disabled veteran exemption only to veterans who set
is_fully_disabled_service_connected_veteran. Michigan law gives it to every veteran with a service-connected disability, at any rating, so a veteran rated 30% or 70% got no exemption.The law
Change
has_service_connected_disability(variables/household/demographic/person/): a veteran with a disability incurred or aggravated in the line of duty (38 U.S.C. 101(16)), at any rating. Its formula defaults it tois_fully_disabled_service_connected_veteran, so every existing input that marks a fully disabled service-connected veteran keeps the exemption.mi_exemptionsandmi_exemptions_countreadhas_service_connected_disabilityin place ofis_fully_disabled_service_connected_veteran.disabled/amount/veteran.yamlcites the 2025 MI-1040 instructions and describes the qualified disabled veteran.This PR leaves the other readers of
is_fully_disabled_service_connected_veteranas they are: Missouri's property tax credit, Illinois's CTA military service pass, Virginia's energy assistance,military_disabled_headandmilitary_disabled_spouse.Assumptions
PolicyEngine-US does not record discharge status, so the input stands for a veteran with an honorable or general discharge, as (3)(b)(iii) requires.
Invariants
For every input:
has_service_connected_disabilityis true wheneveris_fully_disabled_service_connected_veteranis, unless a user sets it false;mi_exemptionsrises by at most $500 times the unit's size;has_service_connected_disabilitygets the samemi_exemptionsandmi_exemptions_countas before this change, since the formula then returnsis_fully_disabled_service_connected_veteran;test_state_tax_head_spouse_swap_invariance.py, now drawing the new input).Tests
has_service_connected_disability.yaml, 3 cases: the default fromis_fully_disabled_service_connected_veteran, true and false, and a partial rating set directly.mi_exemptions.yaml, 4 new 2026 cases: a partial rating ($5,900 + $500 = $6,400), a fully disabled veteran counted once ($6,400), a joint return with two veterans ($11,800 + $1,000 = $12,800), and a VA beneficiary without a service-connected disability ($5,900).mi_exemptions_count.yaml, 1 new case: two people, one with a partial rating, count 3.All 727 cases under
tests/policy/baseline/gov/states/miand the new file pass.tests/core/test_state_tax_head_spouse_swap_invariance.pyandtests/code_healthgive 539 passed and 1 skipped locally. The twowith_coverage=Truecases oftest_selective_test_batches.pyfail the same way on the base commit, because the local environment lacks thecoveragepackage; CI installs it.Before and after
A single Michigan filer in 2026, a veteran with a 50% service-connected disability rating:
mi_exemptionsAt Michigan's 4.25% rate, the exemption lowers the filer's income tax by $21.25.
axiom: us-mi/statute/206.30/3 queued (TheAxiomFoundation/rulespec-us#2076)
🤖 Generated with Claude Code