PolicyEngine / PolicyEngine/chronicle

US source package: IRS SOI Table 3.4, tax generated by rate (income taxed at 37%)

Open
#279 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
0
Forks
1
Avg merge
11h 48m
Merged PRs (30d)
45

Description

Request

Add a US source package for IRS SOI Publication 1304 Table 3.4, "Tax generated, by rate and by size of adjusted gross income", starting with tax year 2023 (23in34tr.xls).

Why

Microcosm has no administrative anchor for the ordinary-income base that the top marginal rate applies to. PolicyEngine/microcosm#958 measured the consequence on the certified US dataset: ordinary taxable income above the 37% threshold is $905B in 2026, against $1,160B taxed at 37% in Table 3.4 for TY2023, so a 37% to 39.6% reform scores +$23.5B against roughly $30B to $41B elsewhere.

Size-of-AGI targets fix the shape of AGI but not its composition. A prototype in microcosm#958 shows the difference: adding a top tail that carries capital gains only lifts AGI above $10M by $632B and the 37% base by $39B. Table 3.4 measures the base directly.

Facts wanted

For each marginal rate row of the all-returns panel, at national geography:

  • number of returns with income taxed at the rate
  • income taxed at the rate (USD)
  • tax generated at the rate (USD)

The 37% row is the immediate need. The full rate schedule is useful for the other brackets and costs little more once the workbook is parsed.

Consumer notes

  • Microcosm reads AGI bands from universe_constraints on adjusted_gross_income. It has no reader for a marginal-rate universe yet, so the rate needs its own dimension, for example marginal_tax_rate, plus a constraint or layout value the consumer can whitelist.
  • Facts ride the feed inertly until Microcosm wires them, so shipping them first is safe.
  • The exported rows should reproduce the workbook values exactly, with the usual concept_alignment block.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by inspecting existing US source packages and the 23in34tr.xls workbook. Confirm the all-returns panel at national geography, then expose the requested values by marginal_tax_rate with the usual concept_alignment block. Done means exported rows reproduce the workbook values exactly and provide a layout or constraint value that consumers can whitelist.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data-engineering
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.