Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

オープン
#9,982 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 2 日以内に返信

@PavelMakarchuk がすでに取り組んでいます。

2026年10月16日 から。

  • #10248 @PavelMakarchuk による — オープン

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
66/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
python
領域
backend, databases

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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.

主要言語
Python
スター
168
フォーク
216
平均マージ
3日 5時間
マージ済み PR(30日)
329

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

PolicyEngine/policyengine-us のほかの issue

PolicyEngine/policyengine-us の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。