From 94e8fcb5d30f35e1ce7fc77a71b7265cc4a16706 Mon Sep 17 00:00:00 2001 From: Anthony Volk <14987227+anth-volk@users.noreply.github.com> Date: Mon, 12 Oct 2026 21:07:52 +0400 Subject: [PATCH 1/2] Remove reweight from the org inventory and dashboard manifest reweight is being archived: nothing in PolicyEngine depends on it and it cannot install (it pins policyengine-us==1.667.1, no longer on PyPI). The inventory lists only active repos, so drop it there, from REPO_KIND_OVERRIDES, and from the committed manifest. Co-Authored-By: Claude Opus 5.5 --- dashboard/src/data/manifest.json | 19 ------------------- scripts/build_manifest.py | 1 - scripts/policyengine_repos.json | 6 ------ 3 files changed, 26 deletions(-) diff --git a/dashboard/src/data/manifest.json b/dashboard/src/data/manifest.json index 275fac2..48f8a8e 100644 --- a/dashboard/src/data/manifest.json +++ b/dashboard/src/data/manifest.json @@ -15579,12 +15579,6 @@ "kind_label": "Internal & process", "tooling_relevant": false }, - { - "name": "reweight", - "kind": "library", - "kind_label": "Libraries", - "tooling_relevant": true - }, { "name": "pritzker", "kind": "grant-proposal", @@ -18453,19 +18447,6 @@ ], "total": 2 }, - { - "name": "reweight", - "kind": "library", - "kind_label": "Libraries", - "tooling_relevant": true, - "description": "", - "visibility": "PUBLIC", - "pushed_at": "2026-04-28T00:37:00Z", - "skills": [], - "agents": [], - "commands": [], - "total": 0 - }, { "name": "pritzker", "kind": "grant-proposal", diff --git a/scripts/build_manifest.py b/scripts/build_manifest.py index 23eb753..dbdd8b7 100644 --- a/scripts/build_manifest.py +++ b/scripts/build_manifest.py @@ -217,7 +217,6 @@ class Artifact: "microunit": "library", "mortality": "library", "rdbl": "library", - "reweight": "library", "l0": "library", "L0": "library", "linecheck": "library", diff --git a/scripts/policyengine_repos.json b/scripts/policyengine_repos.json index 71987c1..70fc757 100644 --- a/scripts/policyengine_repos.json +++ b/scripts/policyengine_repos.json @@ -1037,12 +1037,6 @@ "visibility": "PUBLIC", "pushed_at": "2026-04-28T00:37:09Z" }, - { - "name": "reweight", - "description": "", - "visibility": "PUBLIC", - "pushed_at": "2026-04-28T00:37:00Z" - }, { "name": "rdbl", "description": "A Python package to format numbers for readability", From 259d1bf32e6308e9ef08d274814f4c87455efa1a Mon Sep 17 00:00:00 2001 From: Anthony Volk <14987227+anth-volk@users.noreply.github.com> Date: Mon, 12 Oct 2026 23:40:10 +0400 Subject: [PATCH 2/2] Give skill examples a county and refresh their asserted values policyengine-us now requires an explicit SPM geography: a household without county_fips raises SPMInputError, so 8 verified examples failed. Add a county to each state-only household (Los Angeles 06037, Harris 48201, New York 36061) and update the values the current model returns for them. Co-Authored-By: Claude Opus 5.5 --- skills/policyengine-healthcare/SKILL.md | 4 ++-- skills/policyengine-us/SKILL.md | 16 ++++++++-------- skills/policyengine/SKILL.md | 10 +++++----- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/skills/policyengine-healthcare/SKILL.md b/skills/policyengine-healthcare/SKILL.md index 24a93dc..c700f8e 100644 --- a/skills/policyengine-healthcare/SKILL.md +++ b/skills/policyengine-healthcare/SKILL.md @@ -58,11 +58,11 @@ import policyengine as pe r = pe.us.calculate_household( people=[{"age": 45, "employment_income": 35_000}], tax_unit={"filing_status": "SINGLE"}, - household={"state_code": "TX"}, + household={"state_code": "TX", "county_fips": "48201"}, year=2026, extra_variables=["aca_ptc", "household_net_income_including_health_benefits"], ) -assert round(r.tax_unit.aca_ptc, 2) == 6_250.38 # a real PTC... +assert round(r.tax_unit.aca_ptc, 2) == 6_635.45 # a real PTC... # ...but it is NOT in default net income; the gap is exactly the PTC: gap = (r.household.household_net_income_including_health_benefits - r.household.household_net_income) diff --git a/skills/policyengine-us/SKILL.md b/skills/policyengine-us/SKILL.md index d103193..2addda9 100644 --- a/skills/policyengine-us/SKILL.md +++ b/skills/policyengine-us/SKILL.md @@ -95,7 +95,7 @@ def odc(dependent): return pe.us.calculate_household( people=[{"age": 45, "employment_income": 40_000}, kid], tax_unit={"filing_status": "HEAD_OF_HOUSEHOLD"}, - household={"state_code": "CA"}, + household={"state_code": "CA", "county_fips": "06037"}, year=2026, ).tax_unit.ctc @@ -120,13 +120,13 @@ r = pe.us.calculate_household( {"age": 5}, ], tax_unit={"filing_status": "JOINT"}, - household={"state_code": "NY"}, + household={"state_code": "NY", "county_fips": "36061"}, year=2026, ) assert round(r.tax_unit.ctc) == 4_400 # 2 children x $2,200 (OBBBA, 2026) assert round(r.tax_unit.eitc) == 7_316 # federal EITC (tax_unit) -assert round(r.spm_unit.snap) == 7_364 # annual = sum of 12 monthly allotments -assert round(r.household.household_net_income) == 62_681 +assert round(r.spm_unit.snap) == 8_061 # annual = sum of 12 monthly allotments +assert round(r.household.household_net_income) == 47_929 ``` Here `income_tax` is about −$10,691 (refundable EITC + CTC exceed liability), so @@ -144,7 +144,7 @@ import policyengine as pe r = pe.us.calculate_household( people=[{"age": 35, "employment_income": 25_000}, {"age": 8}], tax_unit={"filing_status": "HEAD_OF_HOUSEHOLD"}, - household={"state_code": "NY"}, + household={"state_code": "NY", "county_fips": "36061"}, year=2026, extra_variables=["in_poverty", "person_in_poverty", "is_child"], ) @@ -218,12 +218,12 @@ import policyengine as pe r = pe.us.calculate_household( people=[{"age": 30, "employment_income": 20_000}, {"age": 4}], tax_unit={"filing_status": "HEAD_OF_HOUSEHOLD"}, - household={"state_code": "CA"}, + household={"state_code": "CA", "county_fips": "06037"}, year=2026, extra_variables=["ca_eitc"], ) assert round(r.tax_unit.eitc) == 4_427 # federal EITC -assert round(r.tax_unit.ca_eitc, 2) == 410.16 # CalEITC (state) +assert round(r.tax_unit.ca_eitc, 2) == 401.89 # CalEITC (state) assert r.tax_unit.state_income_tax < 0 # refundable CA credits exceed liability ``` @@ -236,7 +236,7 @@ SNAP is the US benefit whose timing most often surprises analysts. Everything be against the model source. **SNAP is monthly.** `snap` and its inputs have `definition_period = MONTH`. When -`calculate_household` reports an annual figure (like the $7,364 above), it is the **sum of twelve +`calculate_household` reports an annual figure (like the $8,061 above), it is the **sum of twelve monthly allotments** — not one annual calculation. That is why SNAP produces partial-year cliffs that annual-only reasoning misses. diff --git a/skills/policyengine/SKILL.md b/skills/policyengine/SKILL.md index dbb89ce..870fe07 100644 --- a/skills/policyengine/SKILL.md +++ b/skills/policyengine/SKILL.md @@ -53,12 +53,12 @@ import policyengine as pe result = pe.us.calculate_household( people=[{"age": 40, "employment_income": 50_000}, {"age": 8}], tax_unit={"filing_status": "HEAD_OF_HOUSEHOLD"}, - household={"state_code": "CA"}, + household={"state_code": "CA", "county_fips": "06037"}, year=2026, extra_variables=["income_tax"], ) assert result.tax_unit.ctc == 2_200 # OBBBA CTC, 2026 -assert round(result.household.household_net_income) == 46_358 +assert round(result.household.household_net_income) == 46_369 print(result.spm_unit.snap, result.tax_unit.eitc, result.tax_unit.income_tax) ``` @@ -81,13 +81,13 @@ import policyengine as pe baseline = pe.us.calculate_household( people=[{"age": 40, "employment_income": 50_000}, {"age": 8}], tax_unit={"filing_status": "HEAD_OF_HOUSEHOLD"}, - household={"state_code": "CA"}, + household={"state_code": "CA", "county_fips": "06037"}, year=2026, ) reformed = pe.us.calculate_household( people=[{"age": 40, "employment_income": 50_000}, {"age": 8}], tax_unit={"filing_status": "HEAD_OF_HOUSEHOLD"}, - household={"state_code": "CA"}, + household={"state_code": "CA", "county_fips": "06037"}, year=2026, reform={"gov.irs.credits.ctc.amount.base[0].amount": 3_000}, ) @@ -116,7 +116,7 @@ import policyengine as pe result = pe.us.calculate_household( people=[{"age": 40}], tax_unit={"filing_status": "SINGLE"}, - household={"state_code": "TX"}, + household={"state_code": "TX", "county_fips": "48201"}, year=2026, axes=[[{"name": "employment_income", "min": 0, "max": 200_000, "count": 401}]], )