Skip to content

Conversation

@hua7450
Copy link
Collaborator

@hua7450 hua7450 commented Jan 14, 2026

Summary

Closes #6780. Implements the Illinois Senior Citizens Real Estate Tax Deferral Program (SCRETD).

This program allows qualified seniors (65+) to defer property taxes as a loan from the State of Illinois. The deferred amounts accrue interest and must be repaid upon sale, transfer, or death.

Regulatory Authority

Eligibility Requirements

Age Requirement (320 ILCS 30/2)

  • Must be 65+ years old by June 1 of the application year

Income Limits (320 ILCS 30/2, SB1821)

Tax Year Income Limit
2006-2011 $50,000
2012-2021 $55,000
2022-2024 $65,000
2025 $75,000
2026 $77,000
2027+ $79,000

Benefit Calculation

Parameter Value Source
Maximum Annual Deferral $7,500 320 ILCS 30/3, PIO-64

Formula: deferral = min(real_estate_taxes, $7,500) when eligible

Files Added

Parameters (3 files)

policyengine_us/parameters/gov/states/il/idor/scretd/
├── age_threshold.yaml        # Primary applicant age (65)
├── income_limit.yaml         # Household income limits by year
└── max_annual_deferral.yaml  # $7,500 annual limit

Variables (4 files)

policyengine_us/variables/gov/states/il/idor/scretd/
├── il_scretd_age_eligible.py      # Person-level age eligibility (65+)
├── il_scretd_income_eligible.py   # Tax unit income eligibility
├── il_scretd_eligible.py          # Combined eligibility
└── il_scretd_deferral_amount.py   # Deferral amount (loan, not benefit)

Tests (5 files, 37 test cases)

policyengine_us/tests/policy/baseline/gov/states/il/idor/scretd/
├── il_scretd_age_eligible.yaml      # 4 cases
├── il_scretd_income_eligible.yaml   # 12 cases
├── il_scretd_eligible.yaml          # 4 cases
├── il_scretd_deferral_amount.yaml   # 6 cases
└── integration.yaml                 # 11 cases

Non-Simulatable Rules

The following program rules cannot be implemented (require data not available in point-in-time simulation):

Rule Reason
Interest rate (3%/6%) Requires tracking cumulative interest across multiple years
80% equity limit Requires property fair market value, mortgage balance, and cumulative prior deferrals
Surviving spouse continuation (age 55+) Only applies to continuing an existing deferral after primary applicant's death
3-year ownership requirement Cannot verify ownership duration
Annual reapplication Cannot enforce annual renewal

Example Calculation

Case: Eligible senior in 2024

Input:
  - Age: 70 years
  - Employment income: $50,000
  - Real estate taxes: $10,000

Calculation:
  - Age check: 70 >= 65 = true
  - Income check: $50,000 <= $65,000 = true
  - Eligible: true AND true = true
  - Deferral: min($10,000, $7,500) = $7,500

Output:
  - il_scretd_eligible: true
  - il_scretd_deferral_amount: $7,500

Implementation Notes

  1. Entity Level: Tax unit (property-owner based program)
  2. Income Definition: Uses irs_gross_income as proxy for household income per 320 ILCS 25/3.07
  3. Age Aggregation: Uses add() > 0 pattern to check if ANY tax unit member is age-eligible
  4. Loan, Not Benefit: The deferral amount is a loan that accrues interest and must be repaid - this is noted in the variable's formula comments

hua7450 and others added 2 commits January 14, 2026 15:44
…Program implementation

Starting implementation of IL Senior Citizens Real Estate Tax Deferral Program.
Documentation and parallel development will follow.
…etd)

- Add parameters for age threshold, income limit, interest rate, max deferral, equity limits
- Add variables for age eligibility, income eligibility, overall eligibility, maximum deferral
- Add unit tests and integration tests for all components
- Add working references documentation

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@codecov
Copy link

codecov bot commented Jan 14, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (8649b3a) to head (7261e11).
⚠️ Report is 17 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main     #7173   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            3         4    +1     
  Lines           39        51   +12     
=========================================
+ Hits            39        51   +12     
Flag Coverage Δ
unittests 100.00% <100.00%> (ø)

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.

@hua7450 hua7450 marked this pull request as ready for review January 15, 2026 22:35
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.

Senior Citizens Real Estate Tax Deferral Program

1 participant