Skip to content

DC married separate-combined filing: deduction allocation not optimized #7292

@MaxGhenis

Description

@MaxGhenis

Summary

When DC taxpayers file "married filing separately on the same return" (separate-combined), DC allows them to allocate deductions between spouses "as you wish" per Calculation J on Schedule S. The optimal strategy is typically to allocate all or most deductions to the higher-earning spouse to minimize combined tax. PolicyEngine does not optimize this allocation, resulting in higher calculated tax than necessary.

Root Cause

DC Schedule S, Page 2, Calculation J, Line F states:

"Enter each person's portion of the amount entered on D-40, Line 16. (You may allocate this amount as you wish.)"

This flexibility allows married couples to strategically assign deductions to minimize their combined tax liability. The optimal allocation typically assigns more (or all) deductions to the spouse with higher income, since that spouse benefits more from each dollar of deduction due to progressive tax rates.

PolicyEngine appears to either:

  1. Split deductions equally between spouses, or
  2. Not implement the separate-combined filing method at all

Neither approach produces the optimal tax outcome that DC law permits.

Legal Reference

DC Form D-40 Instructions, Calculation J (Schedule S, Page 2):

  • Covers tax computation for married/registered domestic partners filing separately on same return
  • Line F explicitly allows allocation "as you wish"

From DC Office of Tax and Revenue:

Before completing Calculation J, you must determine each person's separate federal AGI, additions to income, and deductions.

Example (from policyengine-taxsim issue #686)

Input:

  • Filing status: Married filing separately (separate-combined)
  • Tax year: 2024
  • Primary taxpayer (age 74): $32,665 wages
  • Spouse: $83,570 wages
  • Interest: $5,730
  • Pensions: $12,599
  • Gross Social Security: $38,205

Federal calculations:

  • Federal AGI: $167,038
  • Standard deduction: $32,300
  • Federal tax: $19,748

TAXSIM (optimal allocation) calculates:

  • DC tax: $6,098 (allocating deductions to higher-income spouse)

PolicyEngine calculates:

  • Different DC tax amount (does not optimize allocation)

The difference arises because TAXSIM allocates the full deduction to the spouse with $83,570 income (who benefits more from deductions due to higher marginal rate), while PolicyEngine may split equally or use suboptimal allocation.

Suggested Fix

For DC married separate-combined filing:

  1. Calculate each spouse's separate DC taxable income
  2. Implement optimization logic to determine optimal deduction allocation:
    • Try allocating all deductions to higher-earning spouse
    • Try allocating all deductions to lower-earning spouse
    • Try 50/50 split
    • Choose allocation that minimizes combined DC tax
  3. Apply the optimal allocation in the tax calculation

Alternatively, as a simpler approach that works in most cases:

  • Default to allocating 100% of deductions to the higher-earning spouse

Integration Test

- name: DC married separate-combined - optimal deduction allocation
  period: 2024
  absolute_error_margin: 50
  input:
    people:
      person1:
        age: 74
        employment_income: 32665
        taxable_interest_income: 2865  # Half of total
        taxable_pension_income: 6300   # Half of total
        social_security: 19103         # Half of total
        is_tax_unit_head: true
      person2:
        age: 74
        employment_income: 83570
        taxable_interest_income: 2865  # Half of total
        taxable_pension_income: 6299   # Half of total
        social_security: 19102         # Half of total
        is_tax_unit_spouse: true
    tax_units:
      tax_unit:
        members: [person1, person2]
        # DC married separate-combined filing
    spm_units:
      spm_unit:
        members: [person1, person2]
    households:
      household:
        members: [person1, person2]
        state_fips: 11  # DC
  output:
    dc_income_tax: 6098  # With optimal deduction allocation to higher earner

Related Issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions