Update API partner contract tests to match live partner traffic#8890
Draft
hua7450 wants to merge 12 commits into
Draft
Update API partner contract tests to match live partner traffic#8890hua7450 wants to merge 12 commits into
hua7450 wants to merge 12 commits into
Conversation
Live household-API analytics (5,415 requests, 2026-06-27 to 2026-07-04) show no API partner sends Louisiana households: MyFriendBen covers NC/CO/IL/MA/TX/WA, Amplifi covers CA, and no Louisiana-specific output was requested. Removes the 9 federal edge-case la.yaml files and edge_cases/state/la/general_relief.yaml (34 cases). The latter was miscategorized: la_general_relief is Los Angeles County General Relief (gov/local/ca/la), not a Louisiana program, and remains covered by amplifi/2025.yaml, amplifi/2026.yaml, and signatures/ca.yaml. Part of PolicyEngine#8588. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Live analytics show ks_tanf probes on both API channels (2026-07-02),
so pin Kansas before partner traffic ramps. Lean scope — Kansas files
exist only where behavior is Kansas-specific:
- edge_cases/state/ks/tanf.yaml: 9 ks_tanf cases covering the county
payment groups (I/II/III and unlisted->IV default), the $90 + 60%
earned income disregard, the strict 30%-of-FPG gross income test
($10/mo either side), the $3,000 resource limit (at/above), the
KEESM 6220 child-support eligibility-vs-payment split, no-child
ineligibility, and negative self-employment (per-person floor).
- signatures/ks.yaml: replay of the observed request shape (3 people,
2 earners, state_name only -> ks_tanf), pinning the Allen County
Group I fallback the API applies when no county is sent.
- federal {medicaid,chip,aca_ptc,snap}/ks.yaml: non-expansion coverage
gap (medicaid=0 at 138% FPL), the 38% parent limit with deprivation,
KS 1.54 FPL young-child boundary, PTC extending down to 100% FPL
with KS rating-area amounts, and the non-BBCE 130% gross limit trio.
Earnings inputs use employment_income_before_lsr per PolicyEngine#8802: the YAML
harness does not backfill it from employment_income the way the API
Simulation wrapper does, so TANF chains would otherwise see $0 earned.
Part of PolicyEngine#8588.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…prune duplicates Program-by-program rework of all 20 federal areas in partners/analytics_coverage/edge_cases/federal, driven by a 20-agent review against repo parameters and 7 days of live partner traffic (5,415 requests). 395 cases in 87 files -> 316 cases in 70 files. Coverage: every program now pins positive amounts at meaningful points (max/full benefit, mid-phase-out partials, boundary-adjacent values) with parameter-derived math in comments. All-zero cases are reduced to one deliberate ineligible-side pin per route (income / demographic / resource / categorical). First-ever positive pins for CHIP per-capita amounts, Lifeline (phone/broadband costs now set), housing assistance (HAP with county_fips + pre_subsidy_rent), SSI's income formula (partial, break-even, couple, child deeming), EITC phase-in, CTC refundable cap, and MSP's SLMB/QI categories. Wiring fixes (contract fidelity with the API Simulation path): - Geography set via the state_code ENUM instead of state_code_str, which never backfills the enum and left every enum reader (CHIP per-capita chain, SNAP utility region/SUA/EA/ABAWD) evaluating under the CA default across all 87 files (issue PolicyEngine#8887). Values that moved are re-derived and documented; defined_for-gated state programs were unaffected (compiles to a state_code_str comparison). - Earnings/hours/gains set via *_before_lsr / *_before_response inputs, which the YAML runner does not backfill (issue PolicyEngine#8802). Dedup: state-variant files that only duplicated federal.yaml with a different state code are deleted (SSI x7, CTC x7, school meals x4, plus tx.yaml copies of TX-anchored federal baselines); state files that remain each pin genuinely state-dependent behavior. Part of PolicyEngine#8588. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Convert fixtures to state_code enum (PolicyEngine#8887) and *_before_lsr earnings inputs (PolicyEngine#8802), replace artifact zeros with parameter-derived positive and boundary pins, dedup repeated routes, and add traffic-driven coverage: tx/ceap.yaml, wa/apple_health.yaml, and one lean case per Amplifi expansion county (Contra Costa, San Mateo, Santa Clara, Marin, Orange). il/eitc_ctc.yaml deleted as a duplicate. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
MyFriendBen signature replays were generated without any geography key, so all 34 cases evaluated under the state_code default (California) and pinned $0 for every state program. Real traffic sends state_code on all 2,975 weekly state-output requests. Add it, swap capital_gains for the long_term_capital_gains partners actually send, and convert the five LSR-derived inputs to their *_before_lsr/_before_response YAML equivalents (PolicyEngine#8802) across all signature files. Amplifi's ca.yaml keeps state_code_str (faithful to observed traffic; CA is the enum default so values agree) and federal.yaml keeps each partner's observed geography key, pinning the production CA-default behavior for state_code_str senders (PolicyEngine#8887). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
4 tasks
d89f975 to
231188f
Compare
hua7450
added a commit
that referenced
this pull request
Jul 4, 2026
…20 partner files head -20 exits after 20 lines; GNU sed flushes output in 4KB chunks, so with enough changed files its next write hits the closed pipe and fails (exit 4 under the Actions runner's ignored SIGPIPE), which set -euo pipefail promotes to a job failure. Replace the head pipeline with an awk consumer that reads all input to EOF, keeping the same top-20 truncation. Also make the list heading accurate when 20 or fewer files change. First triggered by #8890 (172 changed partner files), which therefore got no Slack notice. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…into partner-test-adjustments
…ments # Conflicts: # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/composition/tax_credits/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/tax_credits/cdcc/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/tax_credits/eitc/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/co/oap.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/co/state_supplement.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/co/tax_credits_composition.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/signatures/co.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/signatures/il.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/signatures/ma.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/signatures/nc.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/signatures/tx.yaml
Merging upstream/main brought three model changes that move pinned values: the ctc_value formula fix (PolicyEngine#8895, now liability-capped nonrefundable plus refundable; 45 assertions, e.g. zero-liability 2-child families 4,400 -> 3,400), the Colorado 2026 OAP/AND-CS grant standards (PolicyEngine#8807, 1,032 and 994 per month; 4 assertions), and the LA County LACDA FY2025 utility allowance schedule (PolicyEngine#8819, 1bd 271 -> 290 per month; 1 assertion). Derivation comments updated alongside the pins; conflicting upstream re-pins of the old fixture layouts were superseded by the reworked files. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ments # Conflicts: # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/cash/ssi/ca.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/cash/ssi/co.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/cash/ssi/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/cash/ssi/il.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/cash/ssi/la.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/cash/ssi/ma.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/cash/ssi/nc.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/cash/ssi/tx.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/cash/ssi/wa.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/cash/tanf/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/childcare/ccdf/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/childcare/early_head_start/ca.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/childcare/early_head_start/co.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/childcare/early_head_start/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/childcare/early_head_start/il.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/childcare/early_head_start/la.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/childcare/early_head_start/ma.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/childcare/early_head_start/nc.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/childcare/early_head_start/tx.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/childcare/early_head_start/wa.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/childcare/head_start/ca.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/childcare/head_start/co.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/childcare/head_start/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/childcare/head_start/il.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/childcare/head_start/la.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/childcare/head_start/ma.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/childcare/head_start/nc.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/childcare/head_start/wa.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/composition/cash_health/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/composition/tax_credits/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/aca_ptc/ca.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/aca_ptc/co.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/aca_ptc/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/aca_ptc/il.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/aca_ptc/la.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/aca_ptc/ma.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/aca_ptc/nc.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/aca_ptc/tx.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/aca_ptc/wa.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/chip/ca.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/chip/co.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/chip/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/chip/il.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/chip/ks.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/chip/ma.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/chip/nc.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/chip/tx.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/chip/wa.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/medicaid/ca.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/medicaid/co.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/medicaid/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/medicaid/il.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/medicaid/ks.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/medicaid/ma.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/medicaid/nc.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/medicaid/tx.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/medicaid/wa.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/healthcare/msp/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/housing/housing_assistance/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/nutrition/csfp/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/nutrition/school_meals/ca.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/nutrition/school_meals/co.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/nutrition/school_meals/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/nutrition/school_meals/il.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/nutrition/school_meals/la.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/nutrition/school_meals/ma.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/nutrition/school_meals/nc.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/nutrition/school_meals/tx.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/nutrition/school_meals/wa.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/nutrition/snap/co.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/nutrition/snap/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/nutrition/snap/il.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/nutrition/snap/nc.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/nutrition/snap/tx.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/nutrition/wic/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/tax_credits/cdcc/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/tax_credits/ctc/ca.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/tax_credits/ctc/co.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/tax_credits/ctc/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/tax_credits/ctc/il.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/tax_credits/ctc/la.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/tax_credits/ctc/ma.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/tax_credits/ctc/nc.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/tax_credits/ctc/tx.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/tax_credits/ctc/wa.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/tax_credits/eitc/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/utility/lifeline/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ca/ala_general_assistance.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ca/calworks_child_care.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ca/calworks_stage_2.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ca/calworks_stage_3.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ca/capp.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ca/care.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ca/cdcc.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ca/eitc.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ca/fera.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ca/foster_youth_tax_credit.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ca/la_ez_save.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ca/renter_credit.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ca/riv_general_relief.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ca/riv_share_payment.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ca/state_supplement.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ca/tanf.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ca/tax_credits_composition.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ca/yctc.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/co/care_worker_credit.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/co/eitc_ctc.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/co/family_affordability_credit.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/co/oap.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/co/state_supplement.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/co/tanf.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/co/tax_credits_composition.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/il/aabd.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/il/bcc.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/il/ctc.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/il/eitc.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/il/eitc_ctc.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/il/fpp.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/il/hbwd.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/il/liheap.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/il/mpe.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/il/tanf.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/il/tax_credits_composition.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/la/general_relief.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ma/child_and_family_credit.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ma/eaedc.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ma/eitc.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ma/liheap.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ma/mbta.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ma/state_supplement.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ma/tanf.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/ma/tax_credits_composition.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/nc/scca.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/nc/tanf.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/tx/ccs.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/tx/dart.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/tx/fpp.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/tx/harris_rides.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/tx/tanf.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/wa/apple_health.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/wa/tanf.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/wa/tax_credits_composition.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/state/wa/working_families_tax_credit.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/signatures/co.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/signatures/federal.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/signatures/il.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/signatures/ma.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/signatures/nc.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/signatures/tx.yaml # policyengine_us/tests/policy/baseline/partners/analytics_coverage/signatures/wa.yaml
The second upstream merge brought PolicyEngine#8918 (IL TANF floors each monthly grant to whole dollars per IDHS PM 10-01-02 and adds the $1 minimum): 10 il_tanf assertions drop by a few dollars (e.g. the partial-year case becomes exactly 7 x 493 + 3 x 513 = 4,990). Derivation comments updated. The upstream suite-wide before_lsr fixture migration (PolicyEngine#8920) and its re-pins of old fixture layouts were superseded by our rewrites; its migration of the named partner fixtures merged cleanly. The MA TAFDC inclusive-boundary fix (PolicyEngine#8918) moved no pinned values. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…yEngine#8920 Upstream PolicyEngine#8920 migrated the employment_income keys suite-wide; convert the two remaining bare self_employment_income keys (my_friend_ben named fixtures, both zero-valued) so no partner fixture sets any LSR-derived input directly, and reword the changelog fragment to what this branch adds beyond PolicyEngine#8920. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…into partner-test-adjustments
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Reworks the partner API contract test suite (
policyengine_us/tests/policy/baseline/partners/**) so fixtures mirror what partners actually send, verified against 5,415 live/us/calculaterequests (7 days ending 2026-07-04) from the household API analytics database.Closes #8588
Fixture wiring fixes
state_code_strdoes not backfill thestate_codeenum (default CA), so every enum reader (CHIP per-capita chain, SNAP utility region/SUA, ACA benchmarks via geography) evaluated as California. Edge-case fixtures now set thestate_codeenum. Signature replays keep each partner's observed geography key — includingstate_code_strwhere partners really send it, faithfully pinning current production behavior.Simulationwrapper does. Migrate partner fixtures to employment_income_before_lsr input #8920 (merged) migrated theemployment_incomekeys suite-wide; this PR completes the set (self_employment_income,sstb_self_employment_income,weekly_hours_worked,long_term_capital_gains→ their*_before_lsr/*_before_responseforms). No partner fixture sets any LSR-derived input directly anymore.Changes by area
ks_tanfprobes in live traffic; county payment groups, income/resource boundaries, KEESM 6220 child-support split, non-expansion Medicaid gap.tx/ceap.yaml(tx_ceaprequested ~370/wk with zero coverage),wa/apple_health.yaml(~158/wk), and one lean case per Amplifi expansion county (Contra Costa, San Mateo, Santa Clara, Marin, Orange).state_codeon 100% of state-output requests. Also swappedcapital_gainsfor thelong_term_capital_gainskey partners actually send.Partner-facing value corrections (signature replays)
Re-pinned values reflect what the API returns when the fixture geography matches the request:
il_tanf(4 signatures)ma_tafdcco_tanfnc_scca_maximum_paymentwa_working_families_tax_creditaca_ptc(TX signature)lifeline(non-CA states)Each headline amount was hand-derived from state parameters (derivations in YAML comments).
Coordination with main (merged through 2026-07-06)
Main was merged twice; conflicting upstream re-pins of the pre-rework fixture layouts were superseded by the reworked files, then all values re-pinned against the merged model:
ctc_valueformula fix — 45 assertions (zero-liability families now show the refundable cap, e.g. 4,400 → 3,400)employment_incomemigration — absorbed; this PR contributes the remaining derived-input keysNot changed (follow-ups)
amplifi/,impactica/,my_friend_ben/named fixtures keep their observed shapes (only mechanical key renames from Migrate partner fixtures to employment_income_before_lsr input #8920 plus the two zero-valued self-employment keys here); geography/gains-key fidelity review tracked in Update API partner contract tests #8588.state_codefromstate_code_strinsystem.py) is a separate, partner-facing behavior change.Test plan
🤖 Generated with Claude Code