Tax-Calculator icon indicating copy to clipboard operation
Tax-Calculator copied to clipboard

EITC parametrization to capture Romney's Family Security Act

Open MaxGhenis opened this issue 3 years ago • 4 comments

Under Romney's Family Security Act, "The Earned Income Tax Credit (EITC) is replaced by a simplified earnings credit with a maximum value of $1,000 for single households and $2,000 for married households filing jointly, independent of the number of child dependents. The EITC for adult dependents is preserved."

This requires additional parameterization to reform the core EITC while preserving it for adult dependents.

cc @thirdhuman

MaxGhenis avatar Feb 08 '21 06:02 MaxGhenis

Some more info on this:

  • Romney's office writeup on the FSA here
  • EITC trapezoids under the FSA: Screen Shot 2021-02-16 at 4 07 21 PM
  • Compare to EITC trapezoids in 2017: Screen Shot 2021-02-16 at 4 07 21 PM

jdebacker avatar Feb 16 '21 21:02 jdebacker

Hi @MaxGhenis, @jdebacker and @Thirdhuman,

I'm having the same issue where I'd like to test the effect of different benefit amounts for people filing jointly vs. single filiers, but the tax calculator only allows for a different phase out threshold for married filiers. Any timeline on getting this implemented? Thanks!

JackLandry avatar Jun 02 '21 19:06 JackLandry

@hdoupe I'm trying to think about how to implement this without breaking backwards compatibility of the EITC parameters. Do you have thoughts on whether it's possible add a dimension to the EITC parameters (martial status) that could allow one to enter the same list as one would enter currently if they wanted the parameters to be constant over this new dimension, but vary of an existing dimension (e.g., number of kids)?

jdebacker avatar Jul 20 '21 18:07 jdebacker

@jdebacker, a couple quick thoughts on this:

  • Using the ParamTools adjustment format is backwards compatible. Here's a notebook showing how this would work: https://github.com/hdoupe/Tax-Calculator/blob/eitc-mars/TC%20with%20EITC%20MARS%20param.ipynb
    • This uses a branch on my repo with an updated EITC_c value: https://github.com/hdoupe/Tax-Calculator/tree/eitc-mars
  • Using the Tax-Calculator format would not be backwards compatible, unless we do some work to this method: https://github.com/PSLmodels/Tax-Calculator/blob/0ccf423e60f90f913307b07f613d766154b0986e/taxcalc/parameters.py#L623-L655
  • Another option is to create a new set of EITC parameters like EITC_mars_* that are kind of like aliases to the EITC_* parameters, but would support the MARS dimension. This seems like the least elegant solution but is worth mentioning.

I don't have a strong feeling for how this should work yet. How do you think the user experience should look if we are able to support this in a backwards compatible way? Like how would the Tax-Calculator style JSON reform look?

Code for updating the `EITC_c` parameter:
import json

import taxcalc as tc


with open("taxcalc/policy_current_law.json", "r") as f:
    data = json.load(f)


pol = tc.Policy()
pol.clear_state()

mars_vals = pol.label_grid["MARS"]
new_vals = []
for val in pol.sel["EITC_c"].missing("_auto"):
    for mars_val in mars_vals:
        new_vals.append({
            "year": val["year"],
            "EIC": val["EIC"],
            "MARS": mars_val,
            "value": val["value"]
        })

data["EITC_c"]["value"] = new_vals


with open("taxcalc/policy_current_law.json", "w") as f:
    json.dump(data, f, indent=4)

hdoupe avatar Jul 25 '21 18:07 hdoupe