Summary
non_sch_d_capital_gains (capital gain distributions reported directly on Form 1040 line 7 without Schedule D — PUF E01100) is populated in the enhanced CPS and calibrated to SOI, but never enters AGI. The tax logic references it only in the QDCGT worksheet (dwks09/dwks10) and has_qdiv_or_ltcg. Neutralizing the variable changes income_tax by $0.
On the 2026 enhanced CPS this leaves $13.7B of income across 4.0M tax units untaxed, understating federal income tax by ~$1.21B/yr (incl. $0.10B NIIT) and state income tax by **$0.44B/yr** via AGI conformity.
Evidence
- Data:
policyengine-us-data maps disjoint PUF fields — long_term_capital_gains = P23250, short_term_capital_gains = P22250, non_sch_d_capital_gains = E01100 (datasets/puf/puf.py), and calibrates capital_gains_distributions to SOI Table 1.4 ($11.56B in 2015; storage/soi.csv). So there is no double-count concern: E01100 is not inside LTCG/STCG.
- AGI:
parameters/gov/irs/gross_income/sources.yaml includes capital_gains (= LTCG + STCG via net_capital_gains.py adds) but not non_sch_d_capital_gains.
- Repro (2026, default dataset):
sim.calc("non_sch_d_capital_gains", period=2026).sum() → $13.69B; 4.01M tax units > 0; 41.6% of dollars held by people 65+.
- Neutralizing the variable:
income_tax change = $0.000B, state_income_tax change = $0.000B.
- Counterfactual folding it into
long_term_capital_gains via set_input: federal income_tax +$1.211B (incl. NIIT +$0.101B), state_income_tax +$0.443B. Median affected filer pays $0 (0% LTCG bracket); mean $302.
Correct treatment
Form 1040 line 7 includes capital gain distributions in total income even when Schedule D is not required (box checked; see 2025 Schedule D instructions, "Capital Gain Distributions"). They are long-term by character (IRC §852(b)(3)(B)) and taxed through the Qualified Dividends and Capital Gain Tax Worksheet — which is why dwks09/dwks10 already reference the variable; the missing piece is inclusion in gross income.
Suggested fix
- Add
non_sch_d_capital_gains to gov/irs/gross_income/sources.yaml (or fold it into the capital_gains aggregate — but that would double-count in dwks09/dwks10, which add it separately, so the sources-list route plus a worksheet consistency check is safer).
- Confirm downstream AGI-derived quantities (NIIT investment income, state conformity) pick it up.
- Add integration tests: a no-Schedule-D filer with only
non_sch_d_capital_gains should show it in AGI and be taxed at preferential rates.
Motivation
Scoring the GROWTH Act (H.R. 2089 / S. 1839, deferral of automatically reinvested RIC capital gain distributions) requires this variable to be live in the tax calculation — today a reform exempting it mechanically scores $0.
Summary
non_sch_d_capital_gains(capital gain distributions reported directly on Form 1040 line 7 without Schedule D — PUFE01100) is populated in the enhanced CPS and calibrated to SOI, but never enters AGI. The tax logic references it only in the QDCGT worksheet (dwks09/dwks10) andhas_qdiv_or_ltcg. Neutralizing the variable changesincome_taxby $0.On the 2026 enhanced CPS this leaves $13.7B of income across 4.0M tax units untaxed, understating federal income tax by ~$1.21B/yr (incl.
$0.10B NIIT) and state income tax by **$0.44B/yr** via AGI conformity.Evidence
policyengine-us-datamaps disjoint PUF fields —long_term_capital_gains = P23250,short_term_capital_gains = P22250,non_sch_d_capital_gains = E01100(datasets/puf/puf.py), and calibratescapital_gains_distributionsto SOI Table 1.4 ($11.56B in 2015;storage/soi.csv). So there is no double-count concern: E01100 is not inside LTCG/STCG.parameters/gov/irs/gross_income/sources.yamlincludescapital_gains(= LTCG + STCG vianet_capital_gains.pyadds) but notnon_sch_d_capital_gains.sim.calc("non_sch_d_capital_gains", period=2026).sum()→ $13.69B; 4.01M tax units > 0; 41.6% of dollars held by people 65+.income_taxchange = $0.000B,state_income_taxchange = $0.000B.long_term_capital_gainsviaset_input: federalincome_tax+$1.211B (incl. NIIT +$0.101B),state_income_tax+$0.443B. Median affected filer pays $0 (0% LTCG bracket); mean $302.Correct treatment
Form 1040 line 7 includes capital gain distributions in total income even when Schedule D is not required (box checked; see 2025 Schedule D instructions, "Capital Gain Distributions"). They are long-term by character (IRC §852(b)(3)(B)) and taxed through the Qualified Dividends and Capital Gain Tax Worksheet — which is why
dwks09/dwks10already reference the variable; the missing piece is inclusion in gross income.Suggested fix
non_sch_d_capital_gainstogov/irs/gross_income/sources.yaml(or fold it into thecapital_gainsaggregate — but that would double-count indwks09/dwks10, which add it separately, so the sources-list route plus a worksheet consistency check is safer).non_sch_d_capital_gainsshould show it in AGI and be taxed at preferential rates.Motivation
Scoring the GROWTH Act (H.R. 2089 / S. 1839, deferral of automatically reinvested RIC capital gain distributions) requires this variable to be live in the tax calculation — today a reform exempting it mechanically scores $0.