Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/schedule-d-capital-gain-distributions.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add schedule_d_capital_gain_distributions (memo component of long_term_capital_gains for Schedule D line 13 amounts) and capital_gain_distributions (total across both reporting routes).
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
- name: Case 1, capital gain distributions total both reporting routes.
period: 2026
input:
people:
person1:
is_tax_unit_head: true
age: 50
long_term_capital_gains: 8_000
schedule_d_capital_gain_distributions: 3_000
non_sch_d_capital_gains: 0
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: TX
output:
capital_gain_distributions: 3_000

- name: Case 2, Schedule D distributions are a memo and do not double count in AGI.
absolute_error_margin: 0.01
period: 2026
input:
people:
person1:
is_tax_unit_head: true
age: 50
employment_income: 60_000
long_term_capital_gains: 8_000
schedule_d_capital_gain_distributions: 3_000
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: TX
output:
# 60,000 wages + 8,000 LTCG; the 3,000 memo component adds nothing.
adjusted_gross_income: 68_000

- name: Case 3, non-Schedule-D route only.
period: 2026
input:
people:
person1:
is_tax_unit_head: true
age: 70
non_sch_d_capital_gains: 2_000
tax_units:
tax_unit:
members: [person1]
households:
household:
members: [person1]
state_code: TX
output:
capital_gain_distributions: 2_000
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
from policyengine_us.model_api import *


class capital_gain_distributions(Variable):
value_type = float
entity = Person
label = "capital gain distributions"
unit = USD
documentation = "Total capital gain distributions received, whether reported on Schedule D line 13 or directly on Form 1040 line 7 without a Schedule D."
definition_period = YEAR
reference = dict(
title="26 U.S. Code § 852(b)(3) - capital gain dividends",
href="https://www.law.cornell.edu/uscode/text/26/852",
)
adds = [
"schedule_d_capital_gain_distributions",
"non_sch_d_capital_gains",
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
from policyengine_us.model_api import *


class schedule_d_capital_gain_distributions(Variable):
value_type = float
entity = Person
label = "Schedule D capital gain distributions"
unit = USD
documentation = "Capital gain distributions from regulated investment companies and REITs reported on Schedule D line 13. Memo component of long_term_capital_gains — already included there, so it does not separately enter gross income."
definition_period = YEAR
reference = dict(
title="2024 Instructions for Schedule D (Form 1040), line 13",
href="https://www.irs.gov/instructions/i1040sd",
)
Loading