From 01d65b2444eedec1efeb04b24f9c41cfd7a102da Mon Sep 17 00:00:00 2001 From: PavelMakarchuk Date: Tue, 14 Apr 2026 09:10:39 -0400 Subject: [PATCH 1/2] Rename payroll_tax to employee_payroll_tax in economic impact analysis Co-Authored-By: Claude Opus 4.6 (1M context) --- src/policyengine/tax_benefit_models/us/analysis.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/policyengine/tax_benefit_models/us/analysis.py b/src/policyengine/tax_benefit_models/us/analysis.py index 6648ae01..459ec4db 100644 --- a/src/policyengine/tax_benefit_models/us/analysis.py +++ b/src/policyengine/tax_benefit_models/us/analysis.py @@ -227,7 +227,7 @@ def economic_impact_analysis( programs = { # Federal taxes "income_tax": {"entity": "tax_unit", "is_tax": True}, - "payroll_tax": {"entity": "person", "is_tax": True}, + "employee_payroll_tax": {"entity": "person", "is_tax": True}, # State and local taxes "state_income_tax": {"entity": "tax_unit", "is_tax": True}, # Benefits From d35e64bed40dffebd9d832583ce6f070b3565d2b Mon Sep 17 00:00:00 2001 From: PavelMakarchuk Date: Tue, 14 Apr 2026 16:11:31 -0400 Subject: [PATCH 2/2] Fix US analysis output mismatches and row filter typing --- docs/country-models-us.md | 2 +- docs/economic-impact-analysis.md | 2 +- src/policyengine/core/scoping_strategy.py | 4 ++-- src/policyengine/tax_benefit_models/us/analysis.py | 4 ++-- src/policyengine/tax_benefit_models/us/model.py | 2 ++ 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/country-models-us.md b/docs/country-models-us.md index 268c888f..b8e04638 100644 --- a/docs/country-models-us.md +++ b/docs/country-models-us.md @@ -26,7 +26,7 @@ Individual people with demographic and income characteristics. - `social_security`: Annual Social Security benefits - `ssi`: Annual Supplemental Security Income - `medicaid`: Annual Medicaid value -- `medicare`: Annual Medicare value +- `medicare_cost`: Annual Medicare value - `unemployment_compensation`: Annual unemployment benefits ### Tax unit diff --git a/docs/economic-impact-analysis.md b/docs/economic-impact-analysis.md index 0d28dff8..8a9f53e3 100644 --- a/docs/economic-impact-analysis.md +++ b/docs/economic-impact-analysis.md @@ -138,7 +138,7 @@ for d in analysis.decile_impacts.outputs: Per-programme totals, changes, and winner/loser counts. -**US programs analysed:** `income_tax`, `payroll_tax`, `state_income_tax`, `snap`, `tanf`, `ssi`, `social_security`, `medicare`, `medicaid`, `eitc`, `ctc` +**US programs analysed:** `income_tax`, `employee_payroll_tax`, `state_income_tax`, `snap`, `tanf`, `ssi`, `social_security`, `medicare_cost`, `medicaid`, `eitc`, `ctc` **UK programmes analysed:** `income_tax`, `national_insurance`, `vat`, `council_tax`, `universal_credit`, `child_benefit`, `pension_credit`, `income_support`, `working_tax_credit`, `child_tax_credit` diff --git a/src/policyengine/core/scoping_strategy.py b/src/policyengine/core/scoping_strategy.py index 75449a6d..2c4ab063 100644 --- a/src/policyengine/core/scoping_strategy.py +++ b/src/policyengine/core/scoping_strategy.py @@ -12,7 +12,7 @@ import logging from abc import abstractmethod from pathlib import Path -from typing import Annotated, Literal +from typing import Annotated, Any, Literal import h5py import numpy as np @@ -69,7 +69,7 @@ class RowFilterStrategy(RegionScopingStrategy): strategy_type: Literal["row_filter"] = "row_filter" variable_name: str - variable_value: str + variable_value: Any def apply( self, diff --git a/src/policyengine/tax_benefit_models/us/analysis.py b/src/policyengine/tax_benefit_models/us/analysis.py index 459ec4db..98b065f9 100644 --- a/src/policyengine/tax_benefit_models/us/analysis.py +++ b/src/policyengine/tax_benefit_models/us/analysis.py @@ -227,7 +227,7 @@ def economic_impact_analysis( programs = { # Federal taxes "income_tax": {"entity": "tax_unit", "is_tax": True}, - "employee_payroll_tax": {"entity": "person", "is_tax": True}, + "employee_payroll_tax": {"entity": "tax_unit", "is_tax": True}, # State and local taxes "state_income_tax": {"entity": "tax_unit", "is_tax": True}, # Benefits @@ -235,7 +235,7 @@ def economic_impact_analysis( "tanf": {"entity": "spm_unit", "is_tax": False}, "ssi": {"entity": "person", "is_tax": False}, "social_security": {"entity": "person", "is_tax": False}, - "medicare": {"entity": "person", "is_tax": False}, + "medicare_cost": {"entity": "person", "is_tax": False}, "medicaid": {"entity": "person", "is_tax": False}, "eitc": {"entity": "tax_unit", "is_tax": False}, "ctc": {"entity": "tax_unit", "is_tax": False}, diff --git a/src/policyengine/tax_benefit_models/us/model.py b/src/policyengine/tax_benefit_models/us/model.py index 804eab68..512f64e2 100644 --- a/src/policyengine/tax_benefit_models/us/model.py +++ b/src/policyengine/tax_benefit_models/us/model.py @@ -75,6 +75,7 @@ class PolicyEngineUSLatest(TaxBenefitModelVersion): # Benefits "ssi", "social_security", + "medicare_cost", "medicaid", "unemployment_compensation", ], @@ -101,6 +102,7 @@ class PolicyEngineUSLatest(TaxBenefitModelVersion): "tax_unit_weight", "income_tax", "employee_payroll_tax", + "state_income_tax", "household_state_income_tax", "eitc", "ctc",