Skip to content

California YCTC skips Form 3514 truncation, $1 minimum and whole-dollar rounding #10179

Open

Description

@ToukoUrsin

Problem

ca_yctc returns the continuous phase-out amount, but FTB Form 3514 (2025) Part VII computes the Young Child Tax Credit with truncation and a whole-dollar result (https://www.ftb.ca.gov/forms/2025/2025-3514-booklet.pdf):

  • line 26: excess earned income / 100, "two decimal places, do not round"
  • line 27: line 26 × $21.71, "two decimal places, do not round"
  • line 28: $1,189 minus line 27; "If your credit amount is between $0 and $1, enter $1. If your credit amount is over $1, round to the nearest whole dollar."

PolicyEngine-US 2.40.1, single wage earner, one qualifying child age 3, full-year resident, 2025:

Wages Form 3514 line 28 ca_yctc
$27,426 $1,189 $1,188.78
$27,500 $1,173 $1,172.72
$32,900 $1 $0.38

On a 239-case panel from $0 to $32,902 wages, 48 cases differ from line 28, by up to $0.62. The phase-out start, rate and end match the form; only the rounding and the $1 minimum differ. The $1 minimum is a rule, not just presentation: a filer just under the $32,901 cutoff gets $1 on the form and $0.38 here.

Should ca_yctc follow line 28 (truncate lines 26–27, $1 minimum, round to whole dollars)? If so, the same applies to the Foster Youth Tax Credit (lines 37–39).

Reproduce

from policyengine_us import Simulation
Y = 2025
for wages in [27_426, 27_500, 32_900]:
    sim = Simulation(situation={
        "people": {"a": {"age": {Y: 30}, "employment_income": {Y: wages}},
                   "c": {"age": {Y: 3}, "is_tax_unit_dependent": {Y: True}}},
        "tax_units": {"t": {"members": ["a", "c"]}},
        "households": {"h": {"members": ["a", "c"], "state_code": {Y: "CA"}}},
    })
    print(wages, sim.calculate("ca_yctc", Y)[0])  # 1188.78, 1172.72, 0.38

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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