Skip to content

Count railroad retirement benefits as income in state and county benefit programs - #10764

Open
MaxGhenis wants to merge 10 commits into
mainfrom
state-benefit-railroad
Open

MaxGhenis wants to merge 10 commits into
mainfrom
state-benefit-railroad

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Many of PolicyEngine's income lists for state and county benefit programs count Social Security and leave out Railroad Retirement Act benefits, including the tier 1 social security equivalent, which the IRS taxes as a Social Security benefit under IRC 86(d)(1)(B). I audited 109 income lists and variables in those programs and added railroad_benefits to the 69 whose rules cover it. That fixes part of #10551; the issue also covers the federal SNAP, HUD, TANF and school meals lists, which I left alone.

R3 (below) parses every state and county list and variable outside the tax code and flags each one that reads a Social Security amount without railroad_benefits. I also audited three files that a text search flagged although they don't read social_security: DC CCSP, MN CCAP unearned income and TX TWC child care.

This PR doesn't depend on #10696 or #10722. On main, users enter railroad_benefits directly; under #10696, the model builds it from the railroad parts. These lists read the total either way. The model keeps the railroad variables apart from social_security and pension_income, so a payment entered once counts once. Users who follow #10696's documentation enter these payments only under the railroad variables.

Changes

I added railroad_benefits to 68 income lists under policyengine_us/parameters/gov/states/ and policyengine_us/parameters/gov/local/, in every dated block of each list, and to Missouri's mo_snc_countable_income variable. I sorted the rules into three groups, and each row quotes its rule.

Rules that name railroad retirement

State Program Rule Text
CA Alameda County General Assistance Alameda County GA regulations, income section ".52 Railroad Retirement Benefits (RRB);"
CA CalWORKs EAS 44-113.3 "Net income from Social Security or from Railroad Retirement Benefits"
CO Colorado Child Care Assistance Program 8 CCR 1403-1, section 3.111(I) "Railroad retirement insurance"
CO Colorado Works 9 CCR 2503-6, section 3.605.3 "7. Railroad retirement payments - payments, such as sick pay, annuities, pensions, and unemployment insurance benefits, which ..."
DC Child Care Subsidy Program Child Care Subsidy Program Policy Manual 2.5.2 "railroad retirement, private pensions, annuities"
DE Purchase of Care 16 Del. Admin. Code 11003 "vii. Pensions; viii. Railroad retirement; ix. Annuities"
HI Child Care Subsidy HAR 17-798.3-10(b)(2)(A) "Railroad retirement insurance checks from the U.S. government"
ME Child Care Affordability Program 10-148 C.M.R. ch. 6, 2.C "railroad retirement, private pensions, annuities"
MI Child Development and Care Bridges Eligibility Manual 503 "The U.S. Railroad Retirement Board makes the payments. Count the gross benefit amount as unearned income."
MT Best Beginnings Child Care Scholarship Child Care 2-6 Income Evaluation Table (row marked pension or retirement, countable) "Railroad Retirement:"
NC LIEAP Energy Programs manual EP-300, 300.09 A, and FNS 300.01 B "Some common examples of unearned income include contributions, railroad retirement, Social Security, and Veteran's benefits."
NC Work First Work First manual WF-114 "Railroad Retirement Yes Unearned"
ND TANF N.D. Service Chapter 400-19-55-20-15 "Railroad benefits"
PA Child Care Works 55 Pa. Code ch. 3042, app. A, part I(F) "Railroad retirement, disability or survivors' benefit payments made by the United States Government under the Railroad ..."
SC Child Care Scholarship Child Care Scholarship Policy Manual 2.1 "Railroad retirement insurance benefits"
UT Child Care Assistance Utah Admin. Code R986-200-235(2)(a) "pensions and annuities such as Railroad Retirement, Social Security, VA, Civil Service"
WY Child Care, Purchase of Service Wyo. Admin. Rules, DFS, Child Care, ch. 1, app. B (row marked unearned and nonexempt) "RR retirement or UI"
WY POWER SNAP and POWER Policy Manual 901(J) "Railroad retirement or railroad unemployment Nonexempt."

Rules that list pensions, annuities, retirement benefits or federal benefits

State Program Rule Text
AK Child Care Assistance Program CCAP Policies and Procedures 4080-3(1) "Federal benefit income is considered unearned income. Common sources of federal benefit income include but are not limited to: ..."
AL Child Care Subsidy Program FFY 2025-2027 CCDF State Plan 2.2.4(c) "Survivor and retirement benefits."
AR School Readiness Assistance FFY 2025-2027 CCDF State Plan 2.2.4(c) "Pensions or annuities."
CA CARE and FERA PG&E Form 01-9077, CARE/FERA application "Social Security and pensions"
CA Los Angeles EZ-SAVE LADWP EZ-SAVE income definition ""Income" means all the money and benefits earned by everyone in the household."
CA Orange County General Relief General Relief Regulations Manual section 70.1 "a contribution from persons or organizations, pensions/retirement, interest or dividends."
CA Riverside County LIHEAP 2025 Riverside County LIHEAP application, countable income "Pension and Annuities:"
CA San Mateo County General Assistance General Assistance Program Fact Sheet "retirement benefits, interest income, child or spousal support, and other means of income or support."
CT Care 4 Kids Regs. Conn. State Agencies 17b-749-05 ""Unearned income" means pensions, annuities, dividends, interest, rental income, lottery winnings, royalties, Social Security, ..."
DC TANF D.C. Code 4-205.05 "pensions; retirement benefits; annuities"
FL School Readiness Fla. Admin. Code 6M-4.200 "veteran benefits, retirement benefits, temporary cash assistance"
GA Childcare and Parent Services CAPS Policy Manual 8.4 "retirement income, social security"
ID Idaho Child Care Program IDAPA 16.06.12 "Unearned income includes retirement"
IL ISBE meal and fee waiver income ISBE Household and Income Form 69-72 "pensions, retirement, Social Security"
LA Child Care Assistance Program LAC 28:CLXV.509.A.3.b "iv.retirement benefits; v.disability benefits;"
MA Child Care Financial Assistance EEC Interim Income Eligible Policies, October 1, 2023 "Only the following income sources are used when calculating a family's income eligibility: ... Retirement income;"
MD Child Care Scholarship COMAR 13A.14.06.02 "Pensions and annuities"
ME TANF 10-144 C.M.R. ch. 331 "benefits such as Social Security, Veterans benefits, pensions"
MN Child Care Assistance Program Minn. Stat. 256P.06, subd. 3 "(ix) retirement benefits;"
MN Minnesota Family Investment Program Minn. Stat. 256P.06, subd. 3 "(ix) retirement benefits;"
MO Child Care Subsidy 5 CSR 25-200.050 "Pensions and annuities"
MS Child Care Payment Program CCPP Policy Manual, Rule 5.4 "retirement/pension"
MT TANF TANF manual 501-1 "Recurring payments from pension plans are countable unearned income."
NJ Child Care Assistance FFY 2025-2027 CCDF State Plan 2.2.4c "Pensions or annuities."
NJ LIHEAP FY2026 and FY2027 LIHEAP Handbook 2.3.D "benefits and pensions, annuities"
NV Child Care and Development Program Child Care Policy Manual MS 306.29 "A fixed amount of money paid regularly to somebody during retirement, for either age or disability, by the government, a ..."
OK Child Care Subsidy Okla. Admin. Code 340:40-7-11(c)(2) "Annuities, pensions, retirement benefits, disability benefits from either government or private sources, or Social Security ..."
OR Employment Related Day Care OAR 414-175-0035(52)(a)(A) "Pension and retirement plans include the following: (A) Benefits employees receive only when they retire."
RI Child Care Assistance Program 218-RICR-20-00-4 "Private pensions or annuities"
SD Child Care Assistance CCA Subsidy Manual, section 4 "Countable unearned income includes, but is not limited to: TANF, pensions, VA benefits, alimony, retirement"
TX Family Planning Program Family Planning Program Policy Manual 9000 "A pension is any benefit derived from former employment, such as retirement benefits"
WA ECEAP DCYF 05-006, ECEAP application (revised 04/2025), section 9 "Social Security or other retirement benefits"
WI Wisconsin Shares Wisconsin Shares Handbook 6.2 "Pensions and annuities"
WV Child Care Assistance Child Care Subsidy Policy and Procedures Manual 5.2.4.4 "5.2.4.4 Pensions and annuities."

Rules that define income as everything outside their exclusions

State Program Rule Text
CA Child care programs 5 CCR 18078(w) ""Total countable income" means all income of the individuals counted in the family size that includes, but is not limited to, ..."
CA Los Angeles County General Relief DPSS ePolicy, General Relief 44-101 "After approval, all net income to the General Relief (GR) household is deducted from the GR grant."
CA Riverside SHARE Riverside Public Utilities SHARE program page "All household income must be provided"
IL Aid to the Aged, Blind or Disabled 89 Ill. Adm. Code 113.100 "Unearned income is all income other than that received in the form of salary for services performed as an employee or profits ..."
IL Health Benefits for Workers with Disabilities 89 Ill. Adm. Code 120.330 "Unearned income is all income other than that received in the form of salary for services performed as an employee or profits ..."
IL TANF 89 Ill. Adm. Code 112.100 "Unearned income is all income other than that received in the form of salary for services performed as an employee or profits ..."
KS Child Care Assistance KEESM 6200 and 6410 "Unearned income is any income that is not earned and may be derived from benefits (unemployment compensation, Social Security, ..."
KS LIEAP KEESM 13361 "Only the following incomes are exempt in determining eligibility"
KY Child Care Assistance Program 922 KAR 2:160 "gross income received or anticipated to be received by the applicant and responsible adult shall be considered"
MA Transitional Aid (TAFDC) 106 CMR 704.210(B) "Unearned income is all income that a person does not earn through employment."
MO Supplemental Nursing Care Supplemental Nursing Care manual 0610.005 "gross income from all sources (SSI, OASDI, earned, etc.)"
ND Child Care Assistance Program N.D.A.C. 75-02-01.3-08 "The following types of income must be disregarded in determining child care assistance eligibility and benefits."
NH Child Care Scholarship N.H. Code Admin. R. He-C 6910.06(c) "All sources of gross income shall be counted"
TX Comprehensive Energy Assistance 10 TAC 6.4(b) "Income means cash receipts earned and/or received by all Household members 18 years of age and older"
VA Child Care Subsidy Program 8 VAC 20-790-40(H) "includes all earned and unearned income received by the family except the following"
VT Child Care Financial Assistance CCFAP Regulations I B 18 "Gross Income – All income included in determining monthly gross income except that which is specifically excluded by these ..."
WA Working Connections Child Care WAC 110-15-0060(8) "Other types of income not listed in WAC 110-15-0070"

Programs that inherit the change

These programs read one of the changed income totals, so railroad benefits count there too:

  • DC General Assistance for Children reads DC TANF gross unearned income. Under D.C. Code 4-205.05a(g), DHS disregards no more than $7.50 of income from other sources.
  • The model sets DC POWER's benefit to the TANF standard less dc_tanf_countable_income.
  • Massachusetts EAEDC net income reads ma_tcap_gross_unearned_income.
  • Illinois Prevention Initiative and Preschool for All Expansion read il_isbe_countable_income.
  • Illinois Health Benefits for Immigrant Seniors adds il_aabd_countable_unearned_income.
  • Missouri's supplemental payments read mo_snc_countable_income.

Federal sources that state programs read

Within two formula steps of a federal source, state and county code reads 17 federal totals, lists and tests that count Social Security, or test for Social Security disability, and leave out railroad benefits:

  • TANF's baseline unearned income list, which 64 TANF variables in 37 states read through tanf_gross_unearned_income.
  • SNAP's unearned income list, which Nebraska LIHEAP reads. Under 7 CFR 273.9(b)(2)(ii), state SNAP agencies count "Annuities; pensions; retirement, veteran's, or disability benefits".
  • The school meals income list, which Texas CSFP and California's CVRP increased rebate read through school_meal_fpg_ratio.
  • Medicaid and ACA MAGI, which 51 variables in 28 states read, 17 CHIP premiums among them, through medicaid_magi, tax_unit_medicaid_income_level, medicaid_income_level, aca_magi and aca_magi_fraction. Under IRC 36B(d)(2)(B)(iii), taxpayers add to AGI the untaxed share of "social security benefits (as defined in section 86(d))", tier 1 included. On main, neither AGI nor the MAGI additions list counts railroad benefits, and Tax railroad retirement benefits under IRC 86 and 72(r) and subtract them from state income #10696 adds the taxable amounts to AGI and the tax-free tier 1 amount to the additions list.
  • SNAP's disability test, is_usda_disabled, which energy aid in North Carolina, Nevada, New York and Oklahoma reads. Under 7 U.S.C. 2012(j)(7), SNAP agencies count a member who receives a railroad disability annuity as disabled if the member's railroad service would have counted as Social Security employment and the member applied for disability benefits. railroad_benefits doesn't separate disability annuities.
  • Medicare eligibility, is_medicare_eligible, and seven premiums and tests built on it. The model tests age 65 or 24 months of Social Security disability. Under 42 U.S.C. 426(b)(2)(B), a person under 65 also gets Medicare Part A after 24 months as "a disabled qualified railroad retirement beneficiary". Illinois SMIB and the CTA and RTA reduced fare, the MBTA's TAP CharlieCard, Mississippi's Healthier Mississippi Waiver and Dallas DART read the test. Energy aid in 28 states and Washington's property tax exemption read medicare_part_b_premium, and energy aid in eight states reads medicare_part_a_premium. Illinois SMIB reads base_part_b_premium, Rhode Island Medicaid reads medicare_enrolled, California CCHIP and Colorado CHP+ read is_medicaid_eligible, and the Mississippi waiver reads is_adult_for_medicaid and medicaid_optional_senior_or_disabled_countable_income.

These programs leave railroad benefits out until PolicyEngine fixes the federal sources. Issue #10551 covers the TANF, SNAP and school meals lists, #10804 covers the Medicare test, and #9330 records the SNAP disability test's gap. FEDERAL_GAPS lists all 17, and R5 checks that list.

Where the whole benefit counts

railroad_benefits holds retirement, disability, spouse and survivor annuities in one amount, the limit #10540 describes for California's Working Disabled Program. Where an agency treats one kind differently, the list counts the whole amount, and I say so in its comment.

Program Rule Result
IL TANF 89 Ill. Adm. Code 112.110(aa) disregards Railroad Retirement disability up to the SSI payment level Counts in full. The model skips the same disregard for Social Security disability.
DC CCSP Manual 2.5.3 exempts permanent disability payments Counts in full, disability annuities included.
MN CCAP and MFIP Minn. Stat. 256P.06, subd. 3(2)(ix), counts retirement benefits. Item (xvi), the RSDI line, doesn't name railroad benefits. Counts in full, disability annuities included.
MA CCFA EEC's interim policies count "Retirement income" and exclude "Social Security Income, including but not limited to survivor's benefits or SSDI" Counts in full as retirement income, since the Railroad Retirement Board pays the benefits under the Railroad Retirement Act. The retirement line may not reach disability and survivor annuities.

Under CAPS 8.4.2, DECAL excludes the disability and survivors benefits "received by the Social Security Administration", so DECAL still counts railroad disability and survivor annuities.

New Jersey LIHEAP's handbook names Social Security alone in its Medicare Part B deduction (2.3.F.7) and its exclusion for children (2.3.E.9), and it has no railroad line. So the model counts railroad benefits before the premium deduction and at every age, as it counts pensions. Two YAML cases pin the premium and age results.

In Illinois TANF's list, a comment marks pension_income exempt, and the AABD and HBWD lists have no pension line. So the model counts railroad benefits in all three and leaves pensions out. 112.110 lists no pension exemption, and I opened #10784 on that line.

How I read the rules

  • Hawaii. The state publishes both rule chapters as scanned PDFs, so I read them through OCR.
  • Minnesota MFIP. The manual pages its list cites wouldn't load, so I based the row on Minn. Stat. 256P.06, which lists income inclusions for programs under chapter 142G, MFIP's chapter.
  • Washington ECEAP. The list has one block, starting July 2021, but the earliest application form I found dates from April 2025. That form lists "Social Security or other retirement benefits", and I applied it to the whole block.
  • Massachusetts CCFA. I read the October 2023 interim policies and the February 2022 guide through the Wayback Machine. The May 2026 policy wouldn't load, so in the 2025 block I kept the list's existing pension line and added railroad benefits beside it.

Audited, no change

  • Programs that already count the benefits (15). The direct formula reads social_security while the program's unearned list names railroad benefits: GA, IA, ID, IN, KY, LA, MT, NV, OH, SD, TN, WA and WY LIHEAP; CT CEAP; CO LEAP. R1 runs on each.
  • Status checks, not income (15). railroad_benefits doesn't separate disability annuities, so it can't stand in for SSDI in these checks. They read SSDI or Social Security as a yes or no signal: AZ LIHEAP points, CA WDP disability, Contra Costa GA eligibility, DC CCSP need, HI LIHEAP points, IL HBWD disability, IN EAP, LA LIHEAP, MD PAA, MS WD disability, NM LIHEAP, PA LIHEAP, VA EAP disability, WI SSP (HUD) and WI WHEAP household size.
  • Limited by design (4). MN CCAP's rsdi_sources takes RSDI only. CalWORKs' db_unearned holds disability income, which railroad_benefits can't isolate, and CalWORKs counts railroad benefits with its other unearned income (ca_tanf_other_unearned_income, an R1 row). SC LIHEAP's minor_unearned_sources holds the two kinds of a minor's income that South Carolina counts under the program's guide: Social Security and disability income. The guide doesn't name railroad benefits, and a minor who gets a railroad annuity gets it as a child or survivor, not as a disabled worker. California WDP's exempt list leaves railroad benefits out, per California 250% Working Disabled Program counts Railroad Retirement disability annuities #10540.

Not resolved (no change)

I couldn't settle these 6 from the sources, or the sources wouldn't load, so I left them unchanged.

Program Why
Contra Costa County GA The cited page doesn't define countable income.
IN CCDF The manual lists countable income types, and none reaches pensions or railroad benefits.
MS Working Disabled Both cited PDFs failed to download.
NC SCCA The rule counts "Pensions and annuities paid directly by an employer or union or through an insurance company", which doesn't clearly reach Railroad Retirement Board payments.
Riverside County General Relief The list's reference notes that the county doesn't publish the program manual.
TX TWC CCS Under 40 TAC 809.44, the Commission sets countable income in guidelines that the parameter doesn't cite.

Invariants

policyengine_us/tests/test_state_benefit_railroad_income.py states and checks these.

  • R1. For each of the 69 programs and the 15 already counting, and amounts from $1 to $200,000, railroad benefits raise the program's income by the amount received, at the variable's period. Nine rows set wages above the aid limits, because those totals also count cash aid that falls as income rises. R1 checks that the entry reaches the total; I read each row's quoted rule to decide that it belongs there.
  • R2. For the 63 programs whose lists have a pension line, the same dollars count the same as railroad benefits or as a pension.
  • R3. R3 scans every state and county list, and the top level and each function or class body of every state and county variable, outside the tax code. Each one that reads a Social Security amount counts railroad benefits (the total or one of its parts), belongs to an R1 variable, or appears in NO_RAILROAD_INCOME with its reason. A new reader fails this test until its author reads the rule, and the test also fails on an entry that no longer applies. R3 reads names written out in full, so a name built with an f-string or concatenation, or a scalar parameter, passes unseen. So does a module that splits Social Security and railroad benefits between two top-level lists. I confirmed it fails when a list loses the entry, even with a comment left behind, and when a module-level constant lists Social Security alone. Two entries sit outside the benefit programs, both in Washington's senior and disabled property tax exemption. Count railroad benefits in state tax worksheets, income tests and limits as each state's law does #10722 adds the tax-free railroad parts its income list needs, and its disability retirement test reads Social Security disability receipt as a yes or no signal.
  • R4. No two entries of a parameter list or variable adds list hold the same railroad dollars. The test maps the total, the tier 1 amount, the taxable total and each part to four kinds of dollars: taxable and tax-free tier 1 benefits, and the taxable and tax-free rest of the annuity.
  • R5. R5 starts from each federal list that holds Social Security without railroad benefits and each federal variable that adds such a list or reads it in a formula. It also starts from each federal variable whose own code names a Social Security amount and no railroad amount, the check R3 runs on state code. It then follows those variables through up to two more formulas that name no railroad amount. Each source that state or county code reads must appear in FEDERAL_GAPS, and the test fails on an entry once its source counts railroad benefits or no state code reads it. A new reader of a source already in FEDERAL_GAPS passes. A third step would reach further eligibility tests and benefit amounts, such as is_snap_eligible and aca_ptc, and R5 doesn't follow it. R5 reads a parameter path written out in code, built through names assigned in the same module or function, or named in a string; a path passed as a function argument passes unseen. I confirmed R5 fails when any one of the 17 entries goes missing, when the school meals list gains railroad_benefits, and on an entry that no state code reads.

R1 and R2 use Hypothesis with five examples per program in CI. YAML cases, each with its rule beside it, pin every program whose rule names railroad retirement, every county program, Louisiana, North Dakota, Oregon, South Dakota and Washington ECEAP, plus New Jersey's premium and age cases.

axiom: TheAxiomFoundation/rulespec-us#2142 queued

🤖 Generated with Claude Code

State benefit programs that list Social Security as income often leave out
Railroad Retirement Act benefits, whose tier 1 share replaces Social Security
for railroad workers. This adds `railroad_benefits` to 50 income lists and to
Missouri's Supplemental Nursing Care income variable, where the program's rule
names railroad retirement, counts pensions, annuities or retirement benefits,
or counts all income it doesn't exclude. Each program's own rule was read
against the sources the parameter cites.

Tests: a property test checks that railroad benefits raise each program's
income by the amount received, and a YAML case pins each program whose rule
names railroad retirement.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Passing runs cost about a tenth of a second per example, so the extra
examples add little to CI.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis marked this pull request as ready for review November 9, 2026 11:46
An independent review found that the first sweep skipped any file that
mentioned railroad retirement, even in a comment, and hid child care lists
whose rules name those benefits. Sweep parsed values instead, add the
programs whose rules reach the benefits (HI, MA, MT, PA, UT and WY child
care and seven California county programs), and record the disability and
Medicare limits in the lists' comments.

Add R3, which fails on any state or county reader of Social Security that
neither counts railroad benefits nor explains why, and R4, which rejects a
repeated entry. Run R1 from the first dollar, over the programs that
already counted the benefits too, and extend R2 to every list with a
pension line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis MaxGhenis changed the title Count railroad retirement benefits as income in state benefit programs Count railroad retirement benefits as income in state and county benefit programs Nov 9, 2026
MaxGhenis and others added 4 commits November 9, 2026 14:47
Louisiana CCAP (LAC 28:CLXV.509.A.3.b), North Dakota CCAP (NDAC
75-02-01.3-08 disregards no recurring railroad benefit), Oregon ERDC (OAR
414-175-0035(52)), South Dakota CCA (subsidy manual, section 4) and
Washington ECEAP (DCYF 05-006, section 9) now count railroad_benefits, each
with a YAML case and an R1 row that fails without the entry.

The R3 check now reads each list, and each function or class body, on its
own, and counts the railroad total or any of its parts. R4 also fails when
a list holds railroad_benefits with one of its parts. R5 finds state and
local programs that read the federal TANF or SNAP lists, which leave out
railroad benefits (#10551).

Los Angeles County General Relief cites GR policy 44-101. Massachusetts
CCFA's list explains why railroad payments count as "Retirement income".
Utah's case drops a citation that governs the assistance unit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Record Washington's new disability retirement test (#10330) as a yes-or-no
  signal, so R3 passes after the merge of main.
- R3 also scans each variable file's top level, so a module-level list of
  Social Security names no longer passes unseen.
- R4 checks variable adds lists as well as parameter lists, and fails on any
  railroad amount listed twice or with a part it holds.
- R5 follows federal lists through the variables that add or read them and
  up to two more formulas, which finds the school meals ratio and the Medicaid
  and ACA MAGI measures that state programs read. Its entries end when their
  source counts railroad benefits or no state code reads them.
- State SC LIHEAP's reason as the guide's wording, and fix the docstring's R1
  range.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The R1 and R5 docstrings and the FEDERAL_GAPS comments now match the PR
body: agencies and taxpayers act under each cited rule, R5's docstring says
why it stops at two formula steps, and the group descriptions list federal
benefits beside pensions, annuities and retirement benefits.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis and others added 2 commits November 11, 2026 12:55
Both sides added a ninth Hawaii CCAP case. This keeps main's eight Hawaii
TANF cases as 9 to 16 and renumbers the railroad case to 17.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Hawaii CCAP counts Hawaii TANF since #10332, so its R1 and R2 rows set
wages above the aid limits, as the other eight rows with cash aid do.

R5 starts from one more kind of federal source: a variable whose own code
names a Social Security amount and no railroad amount, the check R3 runs on
state code. That finds is_medicare_eligible, which tests Social Security
disability for 24 months and leaves out the disabled railroad annuitants
42 U.S.C. 426(b)(2)(B) covers. FEDERAL_GAPS lists it and the seven premiums
and tests state code reads within two steps of it.

R5 reads a parameter path through names assigned in the same module or
function, and a list named in a string.

R4 maps each railroad amount to the dollars it holds and fails when two
entries of a list share any, so the tier 1 amount beside the taxable total
fails too.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>

This branch has not been deployed

No deployments
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.

1 participant