Skip to content

Add taxsim_fica alias for total (employer + employee) FICA + SECA #8294

@PavelMakarchuk

Description

@PavelMakarchuk

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions