Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Florida TCA: fl_tca_200_and_half_disregard_eligible ignores current receipt, so enrolled units lose the $200 and 1/2 disregard

Open
#9,982 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 2 days

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
66/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
python
Domain
backend, databases

Research direction

Read the Florida TCA variables fl_tca_200_and_half_disregard_eligible and fl_tca_countable_earned_income, plus fl_tca_countable_earned_income.yaml and the cited Florida policy manual. Start by running the countable-income tests and comparing their cases with the manual. Done means current participants qualify for the disregard and the tests reflect the $90 standard disregard being included in the first $200.

Written by the indexing model from the issue text.

Description

bug hhs/tanf states/fl

Summary

Fla. Stat. 414.095(11)(a): "the first $200 plus one-half of the remainder of earned income shall be disregarded. In order to be eligible for earned income to be disregarded, the individual must be: 1. A current participant in the program; or 2. Eligible for participation in the program without the earnings disregard." DCF ESS Program Policy Manual 2420.0315 puts the same two conditions as: the member must "1. have been eligible for and received TCA in one of the past four months; or 2. have gross countable income (including earned and unearned income), less the $90 standard earned income disregard, which is less than the applicable payment standard."

fl_tca_200_and_half_disregard_eligible (added in #8941 for item 4 of #8728) encodes condition 2 only, for every unit. Its documentation says condition 1 is left out because prior-month receipt is not observable. PE-US has is_tanf_enrolled (defaults to receives_tanf) for this, and other state programs read it for applicant-versus-recipient rules (mi_fip_income_eligible, ct_tfa_income_eligible, nh_fanf_countable_earned_income, tx_tanf_earned_income_after_disregard_person); #9205 lists applicant-versus-recipient tests as a correct use of that input. So an enrolled unit whose income less $90 is at or above the payment standard has its earnings less $90 counted, which leaves no deficit: fl_tca is $0 (and above equality fl_tca_net_income_eligible is false), although Florida applies the $200 and 1/2 disregard to a current participant.

Repro

Same result on 1.811.2 (45d51ef5d4) and on main (26348e7cf7).

from policyengine_us import Simulation
s = Simulation(situation={
    "people": {"a": {"age": {"2025": 30}, "employment_income": {"2025": 6_000}, "pre_subsidy_rent": {"2025": 9_600}},
               "b": {"age": {"2025": 8}}, "c": {"age": {"2025": 5}}},
    "tax_units": {"t": {"members": ["a", "b", "c"]}},
    "spm_units": {"s": {"members": ["a", "b", "c"], "is_tanf_enrolled": {"2025": True}}},
    "families": {"f": {"members": ["a", "b", "c"]}},
    "households": {"h": {"members": ["a", "b", "c"], "state_name": {"2025": "FL"}}},
})
s.calculate("fl_tca_payment_standard", "2025-01")                 # 303 (3 people, shelter over $50)
s.calculate("fl_tca_200_and_half_disregard_eligible", "2025-01")  # False: 500 - 90 = 410 >= 303
s.calculate("fl_tca_countable_earned_income", "2025-01")          # 410
s.calculate("fl_tca", "2025-01")                                  # 0

Expected for an enrolled unit: eligible for the disregard; countable earnings (500 - 200) x 1/2 = $150; fl_tca = 303 - 150 = $153.

With only the eligibility fix, PE would give $198 (countable (500 - 90 - 200) x 1/2 = $105), because of the second defect below.

Second defect in the same formula: the $90 is part of the $200

2420.0315: "The $90 standard earned income disregard is included in the first $200 earned income disregard. ... If the amount is less than the payment standard, then subtract $110 for a total of $200." 2620.0111.01 Step 3: "Subtract the remainder of $200 and 1/2 earned income disregard, if eligible." The statute also says "the first $200".

fl_tca_countable_earned_income subtracts the whole first_amount ($200) after the $90 (max_(after_standard - p.first_amount, 0)), so it disregards $290 before the half. For an eligible unit, countable earnings are too low by half of the extra $90: $45 a month when earnings are $290 or more, less between $200 and $290. The tests in fl_tca_countable_earned_income.yaml encode the $290 (Case 2: $290 of earnings gives $0; the manual gives (290 - 200) / 2 = $45). This can be split into its own issue.

Possible fix

  1. fl_tca_200_and_half_disregard_eligible: return spm_unit("is_tanf_enrolled", period) | (income_after_standard < payment_standard), with is_tanf_enrolled standing for receipt in one of the past four months; update the documentation.
  2. fl_tca_countable_earned_income: subtract first_amount - standard_disregard ($110) from the earnings left after the $90, then half; update the tests.

Impact on the PRD comparison

2025 aligned view, shared set: 17 Florida units (16 where PE and PRD differ), $30,840 lower PE TANF (2026: $28,103). Fix 2 does not close a PE-PRD gap: PRD's Florida branch also deducts $290 before the half.

Dominant language
Python
Stars
166
Forks
214
Avg merge
2d 22h
Merged PRs (30d)
343

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from PolicyEngine/policyengine-us

All issues in PolicyEngine/policyengine-us

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.