Empire State Child Credit#

The Empire State Child Credit, New York’s Child Tax Credit, provides a 33 percent match to the federal Child Tax Credit, or a minimum of $100 per qualifying child if the filer has income below the CTC phase-out threshold. Qualifying children are children eligible for the federal CTC and who are at least four years old.

Examples#

from policyengine_us import IndividualSim, Microsimulation
import pandas as pd
import plotly.express as px


def make_ctc(adults, children):
    sim = IndividualSim(year=2022)
    sim.add_person(name="head", age=25)
    members = ["head"]
    if adults == 2:
        sim.add_person(name="spouse")
        members += ["spouse"]
    for i in range(children):
        child = "child{}".format(i)
        sim.add_person(name=child, age=6)
        members += [child]
    sim.add_tax_unit(name="tax_unit", members=members)
    sim.add_spm_unit(name="spm_unit", members=members)
    sim.add_household(name="household", members=members, state_code="NY")
    sim.vary("employment_income")
    return pd.DataFrame(
        dict(
            employment_income=sim.calc("employment_income")[0],
            ny_ctc=sim.calc("ny_ctc")[0].round(),
            mtr=-sim.deriv("ny_ctc", "employment_income", wrt_target="head"),
            adults=adults,
            children=children,
        )
    )


# Make a table of EITCs for different numbers of adults and children.
l = []
for adults in range(1, 3):
    for children in range(0, 4):
        l.append(make_ctc(adults, children))

df = pd.concat(l)

LABELS = dict(
    employment_income="Employment income",
    mtr="Marginal tax rate of Empire State Child Credit",
    adults="Adults",
    children="Children",
    ny_ctc="Empire State Child Credit",
)

fig = px.line(
    df,
    "employment_income",
    "ny_ctc",
    color="children",
    animation_frame="adults",
    labels=LABELS,
    title="Empire State Child Credit",
)
fig.update_layout(
    xaxis_tickformat="$,", yaxis_tickformat="$,", height=600, width=800
)
fig.show()