Summary
PolicyEngine-taxsim's emulator output fica (TAXSIM's "total FICA" — employer + employee shares of OASDI and HI, plus SECA) is currently mapped to na_pe in variable_mappings.yaml, so it always emits $0. PE-US has the components but no convenience alias for the combined value.
Background
taxsim_tfica already exists as the employee-side alias:
class taxsim_tfica(Variable):
label = "Employee share of FICA + SECA + Additional Medicare Tax"
adds = ["self_employment_tax", "employee_payroll_tax"]
TAXSIM-35's fica is the total FICA (employer + employee), so the PE-US analogue should be employer_payroll_tax + employee_payroll_tax + self_employment_tax.
Proposed addition
policyengine_us/variables/contrib/taxsim/taxsim_fica.py:
from policyengine_us.model_api import *
class taxsim_fica(Variable):
value_type = float
entity = TaxUnit
label = "Total FICA: employer + employee shares + SECA"
unit = USD
definition_period = YEAR
adds = [
"employer_payroll_tax",
"employee_payroll_tax",
"self_employment_tax",
]
PE-taxsim's mapping then changes fica: { variable: na_pe } → fica: { variable: taxsim_fica }.
Originating taxsim ticket
policyengine-taxsim#21
Integration test
policyengine_us/tests/policy/baseline/contrib/taxsim/taxsim_fica.yaml:
- name: Single $100K wages — taxsim_fica is employer + employee shares
absolute_error_margin: 1
period: 2025
input:
people:
head:
age: 40
employment_income: 100_000
is_tax_unit_head: true
tax_units:
tax_unit:
members: [head]
spm_units:
spm_unit:
members: [head]
households:
household:
members: [head]
state_code: CA
output:
# employee_payroll_tax ~= 7.65% × $100K = $7,650
# employer_payroll_tax ~= same
# SECA = $0 (no SE income)
# Combined ≈ $15,300 (subject to PE's exact payroll-tax modeling)
taxsim_fica: 16_971
Summary
PolicyEngine-taxsim's emulator output
fica(TAXSIM's "total FICA" — employer + employee shares of OASDI and HI, plus SECA) is currently mapped tona_peinvariable_mappings.yaml, so it always emits $0. PE-US has the components but no convenience alias for the combined value.Background
taxsim_tficaalready exists as the employee-side alias:TAXSIM-35's
ficais the total FICA (employer + employee), so the PE-US analogue should beemployer_payroll_tax + employee_payroll_tax + self_employment_tax.Proposed addition
policyengine_us/variables/contrib/taxsim/taxsim_fica.py:PE-taxsim's mapping then changes
fica: { variable: na_pe }→fica: { variable: taxsim_fica }.Originating taxsim ticket
policyengine-taxsim#21
Integration test
policyengine_us/tests/policy/baseline/contrib/taxsim/taxsim_fica.yaml: