Skip to content

Use the printed Virginia TANF Appendix 2 standards from July 2021 - #10503

Merged
PavelMakarchuk merged 2 commits into
mainfrom
fix-10450-va-tanf-printed-standards
Oct 29, 2026
Merged

PavelMakarchuk merged 2 commits into
mainfrom
fix-10450-va-tanf-printed-standards

Conversation

@PavelMakarchuk

Copy link
Copy Markdown
Collaborator

Summary

From July 2021, PolicyEngine's Virginia TANF standards of assistance and maximum payment were up to $1.59 a month below the amounts printed in the TANF Manual, Section 304, Appendix 2. PE stored only the July 2020 table and multiplied it by a cumulative multiplier (1.1 from July 2021, 1.155 from July 2022). The manual instead prints a new table for each increase. Transmittal 71 (July 1, 2021), PDF page 1:

The Appropriations Act of 2021 authorized increases in payments of 10%. The new payment standards are included in Appendix II to Section 304.

This PR stores the printed 7/21 and 7/22 Appendix 2 tables as dated values: the standard of assistance for units of 1 to 10, the amount for each person above 10, and the maximum reimbursable payment, for Groups II and III. va_tanf_grant_standard and the TANF maximum in va_tanf read them for the period. The tables used (pdftotext -layout; all 72 values were checked against the extracted text by script):

Group II, 7/22 (Chapter 300, PDF page 29), as extracted:

                    Size of                           Standards of
                Assistance Unit                        Assistance
                       1                                 $262
                       2                                  385
                       3                                  482
                       ...
                       8                                  951
                       9                                 1035
                      10                                 1127
              Each person above 10                        $95
              MAXIMUM REIMBURSABLE PAYMENT               $723
                                                            TANF Transmittal 74

The full 7/20, 7/21 and 7/22 tables for both groups are in #10450.

Design. The multiplier still covers what has no printed table here. For periods before July 2020, the formulas scale the July 2020 table by standard_multiplier as before (min_(p.standard_multiplier, 1) is below 1 only before July 2020 and 1 from then on). The need standard (va_tanf_need_standard) and the separate TANF-UP schedule (va_tanf_up_grant_standard, not in effect since #10253) still use the multiplier in every period. The need standard was not checked against its printed chart, so this PR leaves it unchanged. A comment in standard_multiplier.yaml records this split.

spm_unit_size 12 is one adult and eleven children; Pittsylvania is a Group II county and Arlington a Group III county (Section 304, Appendix 1).

Variable Month Group Unit size main branch Appendix 2
va_tanf_grant_standard January 2022 II 1 248.60 249 $249
January 2022 II 12 1,250.70 1,253 $1,073 + 2 × $90
January 2025 II 3 481.635 482 $482
January 2025 II 8 949.41 951 $951
January 2025 II 12 1,313.235 1,317 $1,127 + 2 × $95
January 2025 III 2 487.41 489 $489
January 2025 III 8 1,077.615 1,079 $1,079
va_tanf, no income January 2025 II 12 722 723 min($1,317, $723)
January 2022 II 12 688 688 min($1,253, $688)

The standard sets the payment for units below the maximum (va_tanf) and the step-2 income screen (va_tanf_income_eligibility), so both now read the printed amounts. Results before July 2021 do not change.

Tests

Added to va_tanf_grant_standard.yaml (expectations from the printed tables):

  • 2021 Group II, size 3: 6 × $417 (7/20) + 6 × $459 (7/21) = $5,256 (main $5,254.20). Checks the July 2021 switch.
  • 2022 Group II, size 3: 6 × $459 + 6 × $482 (7/22) = $5,646 (main $5,642.01). Checks the July 2022 switch.
  • January 2022: Group II size 1 $249, size 12 $1,073 + 2 × $90 = $1,253, Group III size 10 $1,194.
  • January 2025: Group II size 1 $262, size 8 $951, size 12 $1,127 + 2 × $95 = $1,317; Group III size 2 $489, size 8 $1,079, size 11 $1,254 + $95 = $1,349.

Added to va_tanf.yaml:

  • January 2025, Group II unit of 12, no income: grant standard $1,317, va_tanf $723 (the 7/22 maximum; main $722).
  • January 2025, Group II unit of 3, no income: $482 (main $481.635).
  • January 2022, Group II unit of 12, no income: $688 (the 7/21 maximum; unchanged).
  • January 2019 control: the maximum still scales the 7/20 maximum, ceil(625 × 0.8282) = $518 (unchanged behavior before July 2020).

Changed:

  • va_tanf_grant_standard.yaml, January 2023 Group III size 1: $364.98 (316 × 1.155) → $366, the 7/22 printed amount.
  • va_tanf.yaml, 2023 Group II cap: 12 × $722 = $8,664 → 12 × $723 = $8,676, the 7/22 printed maximum. Comments in the TANF-UP cap cases now cite the printed maximums; their values ($688, $820, $861) do not change.

Results: tests/policy/baseline/gov/states/va/dss/: 436 passed. With main's code, 16 of the new or changed cases fail, with the values in the table above. tests/code_health/: 503 passed; 2 failed (test_selective_test_batches.py, the with_coverage=True variants), because the local environment has no pytest_cov; they do not read VA files.

This branch merges cleanly with #10261 (the $10 minimum payment) in va_tanf.py. #10261 already conflicts with main in va_tanf.yaml because of #10253; this branch adds no new conflict.

Fixes #10450

axiom: TheAxiomFoundation/rulespec-us#1921 queued (open, pe-parity; its plan encodes the 7/20, 7/21 and 7/22 Section 304, Appendix 2 standards and maximums by group "as printed", and the 10/21 manual and transmittals must be ingested into the corpus first)

🤖 Generated with Claude Code

Store the 7/21 (Transmittal 71) and 7/22 (Transmittal 74) Section 304,
Appendix 2 standards of assistance, amounts for each person above 10, and
maximum reimbursable payments for Groups II and III as dated values, and
read them for the period. The standard multiplier now scales the payment
standards only before July 2020; the need standard and the TANF-UP
schedule still use it in every period.

Fixes #10450

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@codecov

codecov Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (909176a) to head (2321b93).
⚠️ Report is 706 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main    #10503   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            4         2    -2     
  Lines           76        49   -27     
  Branches         2         0    -2     
=========================================
- Hits            76        49   -27     
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 Harness.
📢 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 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving at 2321b93. Thanks, Pavel.

I checked every new 7/21 and 7/22 value against the printed Section 304, Appendix 2 tables: the standards for sizes 1 to 10, the amount for each person above 10, and the maximum, for Groups II and III. They all match. Transmittals 71 and 74 date them July 1, 2021 and July 1, 2022. The current Chapter 300 still prints the 7/22 tables, so no later increase is missing. min_(p.standard_multiplier, 1) is below 1 only before July 2020, so earlier results don't change. I recomputed every new and edited case in va_tanf_grant_standard.yaml and va_tanf.yaml, including the 2021 and 2022 annual cases across the July switches, and they match. Main's floor and $10 minimum (merged since this branch was cut) leave the new expectations unchanged.

Optional nits:

  1. January 2019 control case. "In January 2019 the maximum still scales the 7/20 maximum" asserts $518. The manual in force then (10/18 Chapter 300, 7/17 Appendix 2, Transmittal 62) prints a Group II maximum of $516. The case pins model behavior, which is fine, but its comment could say the printed 7/17 maximum is $516, so the $518 isn't read as the law's value. See the first follow-up.
  2. standard_multiplier description and label. These still say it applies to the standards of assistance. Only the new YAML comment records the split. A user who raises the multiplier for a new increase would see the need standard and TANF-UP move but not the grant or maximum, because of the min_(..., 1). The description could name what it now scales.
  3. Live Chapter 300 URL. The 7/22 references point to the live file, which VDSS will overwrite with the next table. The archived Transmittal 74, or a dated Wayback copy, would keep supporting the 2022-07-01 values.
  4. "Up to $1.59 a month". The changelog and body say this, but for units over 10 the shortfall reaches $3.77 (the per-person amount went from 93.555 to $95). For example, "by up to a few dollars a month".
  5. Stale test text.
    • va_tanf.yaml still says "max payment = ceil(base_max * standard_multiplier)" in the cap-section header, and the two 2023 cases are named "capped at scaled max payment", though they now test the printed 7/22 maximums. Line 110 keeps "(ceil(625 * 1.155) = 722)".
    • The 2025 TANF-UP integration case's comment still derives both values from the multiplier.
  6. Tests.
    • The two va_tanf.yaml cases repeat va_tanf_grant_standard assertions that the grant-standard file already pins.
    • No case pins the July dates of max.yaml. For example, a 2022 annual case with no income in Pittsylvania: 6 × 688 + 6 × 723 = 8,466.
  7. PR body. It says 10261 conflicts with main, but 10261 is now merged, and the "main" column predates its floor.

Follow-ups, outside this PR:

  • Before July 2020 the standards and maximums still scale the 7/20 table. They differ from the printed 7/17 tables (Group II maximum $518 vs $516; Group III $618 vs $614). For 7/19, the standards differ (Group II size 3: 362.62 vs 363), though the maximums match. Storing the 7/17 and 7/19 tables would retire the multiplier for standards.
  • va_tanf_need_standard still scales the 7/20 Maximum Income Chart. It falls below the printed 7/21 and 7/22 charts by up to about $1.69 for units of 1 to 10, and more for larger units.
  • va_tanf_grant_standard, va_tanf and max_unit_size.yaml cite a tanfx2fview URL that returns 404. In the live Chapter 300, #page=51 is Section 305.3, not the standards.

@PavelMakarchuk
PavelMakarchuk merged commit fb1be0c into main Oct 29, 2026
35 checks passed
@PavelMakarchuk
PavelMakarchuk deleted the fix-10450-va-tanf-printed-standards branch October 29, 2026 19:24
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.

Virginia TANF standards of assistance fall up to $1.59 a month below the printed Appendix 2 amounts from July 2021 (Group II maximum $722 vs $723)

2 participants