Skip to content

Update NH 2025 income tax parameters for I&D tax repeal#7379

Merged
PavelMakarchuk merged 2 commits intomainfrom
nh-2025-income-tax-updates
Feb 17, 2026
Merged

Update NH 2025 income tax parameters for I&D tax repeal#7379
PavelMakarchuk merged 2 commits intomainfrom
nh-2025-income-tax-updates

Conversation

@PavelMakarchuk
Copy link
Collaborator

Summary

  • Add explicit 2025-01-01: 0 rate entry to rate.yaml to show the I&D tax rate is 0 after repeal (complements the existing in_effect: false entry)
  • Add TIR 2025-001 repeal reference to disability_age_threshold.yaml and old_age_eligibility.yaml (the 2 remaining files that were missing it)

All 9 NH income tax parameter files now reference TIR 2025-001 confirming the Interest & Dividends tax repeal effective January 1, 2025. The education tax credit (Chapter 77-G) is unchanged for 2025.

Test plan

  • All 47 NH tax tests pass

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@codecov
Copy link

codecov bot commented Feb 13, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (1ffb212) to head (19d21ec).
⚠️ Report is 266 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff              @@
##             main     #7379       +/-   ##
============================================
+ Coverage   71.93%   100.00%   +28.06%     
============================================
  Files        3819         2     -3817     
  Lines       55013        24    -54989     
  Branches      274         0      -274     
============================================
- Hits        39571        24    -39547     
+ Misses      15423         0    -15423     
+ Partials       19         0       -19     
Flag Coverage Δ
unittests 100.00% <100.00%> (+28.06%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@PavelMakarchuk PavelMakarchuk marked this pull request as draft February 13, 2026 02:31
@PavelMakarchuk
Copy link
Collaborator Author

State Tax Parameter Audit: NH 2025 I&D Tax Repeal

Source

Parameter Value Verification

File Change Verified Value Source Status
rate.yaml Add 2025-01-01: 0 0% (tax repealed) TIR 2025-001, HB 2 ✅ CORRECT
disability_age_threshold.yaml Add TIR 2025-001 reference N/A (reference only) ✅ CORRECT
old_age_eligibility.yaml Add TIR 2025-001 reference N/A (reference only) ✅ CORRECT

Rate History Verified

Period Repo Value Confirmed Value Status
Before 2023 5% 5% (RSA 77:1)
2023 4% 4% (HB 2 phase-down)
2024 3% 3% (HB 2 phase-down)
2025 0% (PR adds this) 0% (repealed per HB 2)

Defense-in-Depth Check

The repeal is correctly implemented via two independent mechanisms:

  1. in_effect.yaml: Already set to false for 2025-01-01 (pre-existing, not in this PR)
  2. rate.yaml: This PR adds 0 for 2025-01-01

The formula in nh_income_tax_before_refundable_credits.py checks if p.in_effect first, so the in_effect: false flag alone would zero out the tax. Adding rate: 0 is a good belt-and-suspenders approach that makes the parameter tree self-documenting.

TIR Reference Consistency

After this PR, all 8 income tax parameter files under gov/states/nh/tax/income/ reference TIR 2025-001:

File Had TIR Before PR Has TIR After PR
rate.yaml
in_effect.yaml
exemptions/amount/base.yaml
exemptions/amount/blind_addition.yaml
exemptions/amount/disabled_addition.yaml
exemptions/amount/old_age_addition.yaml
exemptions/disability_age_threshold.yaml ✅ (this PR)
exemptions/old_age_eligibility.yaml ✅ (this PR)

The education tax credit (tax/credits/education/rate.yaml) is under Chapter 77-G (separate from Chapter 77 I&D tax) and correctly does not reference TIR 2025-001.

Pre-existing Issues (not from this PR)

  1. Metadata unit: currency-USD on age parameters: disability_age_threshold.yaml and old_age_eligibility.yaml both specify unit: currency-USD but store age values (65). Should be unit: year.

  2. TIR 2025-001 PDF URL returns 403: The URL https://www.revenue.nh.gov/sites/g/files/ehbemt736/files/documents/2025-001-technical-information-release-repeal.pdf currently returns "Access Denied" from the NH DOR CDN. This affects all 8 files that reference it. The content is still available via the NH DOR news page.

  3. Broken statute URLs: The gencourt.state.nh.us URLs (e.g., RSA 77:1, 77:4, 77:5) redirect to gc.nh.gov and then 404. These are referenced across multiple files.

Verdict

All changes are correct. Clean, minimal PR that properly documents the NH I&D tax repeal for 2025. No parameter value issues found.


Audit performed by comparing PR changes against TIR 2025-001, HB 2, NH DOR announcements, and existing repo parameter files.

- Fix unit: currency-USD → year on disability_age_threshold and old_age_eligibility (these store ages, not dollar amounts)
- Update all broken gencourt.state.nh.us statute URLs to gc.nh.gov/rsa/html/V/77/77-mrg.htm (Chapter 77 was fully repealed; individual section pages now 404)
- Update Chapter 77-G education tax credit URL to new gc.nh.gov domain

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@PavelMakarchuk PavelMakarchuk marked this pull request as ready for review February 17, 2026 04:39
@DTrim99
Copy link
Collaborator

DTrim99 commented Feb 17, 2026

State Tax Parameter Audit

Source


✅ All Parameter Values Verified Correct

Parameter Repo Value Official Source Status
Tax rate 2020 5% TIR 2025-001
Tax rate 2023 4% TIR 2025-001
Tax rate 2024 3% TIR 2025-001
Tax rate 2025 (NEW) 0% TIR 2025-001 - "repealed for taxable periods beginning after December 31, 2024"
in_effect 2025 false RSA Chapter 77 - "[Repealed by 2021, 91:189, II, eff. Jan. 1, 2025.]"
Base exemption (single) $2,400 Filing thresholds confirmed in TIR
Base exemption (joint) $4,800 Filing thresholds confirmed in TIR
Old age eligibility 65 Consistent with DP-10 forms
Disability age threshold 65 Consistent with DP-10 forms

✅ URL Updates Verified Working

Old URL New URL Status
gencourt.state.nh.us/rsa/html/V/77/77-1.htm gc.nh.gov/rsa/html/V/77/77-mrg.htm ✓ Working
gencourt.state.nh.us/rsa/html/V/77/77-4.htm gc.nh.gov/rsa/html/V/77/77-mrg.htm ✓ Working
gencourt.state.nh.us/rsa/html/V/77/77-5.htm gc.nh.gov/rsa/html/V/77/77-mrg.htm ✓ Working
gencourt.state.nh.us/rsa/html/NHTOC/NHTOC-V-77-G.htm gc.nh.gov/rsa/html/NHTOC/NHTOC-V-77-G.htm ✓ Working

✅ Metadata Fixes Verified Correct

File Old Unit New Unit Correct?
disability_age_threshold.yaml currency-USD year ✓ Yes - value is age 65, not dollars
old_age_eligibility.yaml currency-USD year ✓ Yes - value is age 65, not dollars

Summary

All changes in this PR are correct. The PR properly:

  1. Adds the 2025 rate of 0% reflecting the I&D tax repeal effective January 1, 2025
  2. Adds TIR 2025-001 references to the two remaining parameter files (disability_age_threshold.yaml, old_age_eligibility.yaml)
  3. Fixes incorrect unit metadata on age parameters (was currency-USD, now correctly year)
  4. Updates statute URLs from the old gencourt.state.nh.us domain to the new gc.nh.gov domain

🤖 Automated audit by Claude Code

@PavelMakarchuk PavelMakarchuk merged commit 7849643 into main Feb 17, 2026
21 of 23 checks passed
@PavelMakarchuk PavelMakarchuk deleted the nh-2025-income-tax-updates branch February 17, 2026 19:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants