Skip to content

additional_tax_bracket reform: from 2026 its brackets 1-7 are not current law, and a finite bracket 8 threshold untaxes income above it #9832

Open

Description

@MaxGhenis

Two problems with the additional_tax_bracket contrib reform. Neither is fixed by #9831, which fixes only the NaN while the added bracket is unset.

1. From 2026 the reform's brackets 1 to 7 are not current law

The reform taxes ordinary income entirely on its own schedule: regular_tax_before_credits, income_tax_main_rates and taxable_income_taxed_below_25_percent all read parameters(period).gov.contrib.additional_tax_bracket.bracket, policyengine_us/parameters/gov/contrib/additional_tax_bracket/bracket.yaml.

From 2026 that file departs from the baseline (gov.irs.income.bracket):

2026 Rates, brackets 1 to 7 Joint thresholds, brackets 1 to 6
Contrib file 10, 15, 25, 28, 33, 35, 39.6% 24,300 / 98,600 / 199,000 / 303,250 / 541,550 / 611,750
Baseline (current law) 10, 12, 22, 24, 32, 35, 37% 24,800 / 100,800 / 211,400 / 403,550 / 512,450 / 768,700

Possible fix. Have the reform take brackets 1 to 7 from gov.irs.income.bracket, and keep only bracket 7's threshold and bracket 8's rate in the contrib file. Alternatively, refresh the file's 2026+ values to current law.

2. A finite bracket 8 threshold leaves income above it untaxed

tax_at_main_rates (now built on amounts_in_brackets) taxes nothing above the last bracket's threshold. The baseline's last threshold is always infinite, but gov.contrib.additional_tax_bracket.bracket.thresholds.8.* is user-editable. Setting it to a finite value silently untaxes all income above it.

Possible fix. Treat the last bracket's top as infinity in the walk, or validate that the last threshold is infinite.

Found while fixing #9831; evidence in the build report for that PR.

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