Repository navigation
Massachusetts Part B gross income absorbs capital gain netting from Schedules B and D #9953
Description
What's wrong
ma_part_b_gross_income is ma_gross_income − ma_part_a_gross_income − ma_part_c_gross_income. ma_gross_income starts from irs_gross_income, which adds each filer's net capital gain floored at zero (max(0, short-term + long-term)). Parts A and C take capital gains out with Schedule B and D netting instead, so any difference stays in Part B:
- Short-term gain with a long-term loss. The long-term loss reduces Part B.
ma_part_a_agialso applies it against the short-term gain (Schedule B, line 25), so the loss is used twice. - One spouse's short-term loss against the other spouse's long-term gain.
irs_gross_incomefloors the loss at zero for that spouse, butma_part_c_gross_incomenets it against the gain, so Part B gets phantom income.
Examples (2023; wages 60,000; single unless noted)
| Return | Part B gross: PE main | Form 1, line 10 | Tax before credits: PE main | Form |
|---|---|---|---|---|
| Dividends 1,000, short-term gain 3,000, long-term loss 1,000 | 59,000 | 60,000 | 2,850 | 2,900 |
| Short-term gain 3,000, long-term loss 1,000 | 59,000 | 60,000 | 2,800 | 2,850 |
| Dividends 1,000, short-term gain 1,000, long-term loss 3,000 | 59,000 | 60,000 | 2,680 | 2,680¹ |
| Joint: head long-term gain 5,000, spouse short-term loss 2,000 | 62,000 | 60,000 | 2,710 | 2,610 |
¹ The total is right only because #9905 (Part A taxes gross dividends) offsets this error.
Row 1, computed from the 2023 forms:
- Form 1: line 3 = 60,000; line 10 = 60,000; line 11a = 2,000; line 17 = 58,000; line 18 = 4,400; line 19 = 53,600.
- Schedule B: line 9 = 1,000; line 10 = 3,000; line 19c = 3,000 (≥ 0, so lines 20–23 are omitted); line 24 = 3,000.
- Schedule D: line 13 = −1,000; line 14 = Schedule B, line 25 = min(3,000, 1,000) = 1,000; line 15 = −1,000 + 1,000 = 0; line 17 = 0.
- Schedule B: line 26 = 2,000 = line 28; line 31 = 1,000; line 32 omitted (Schedule D, line 15 is 0); line 33 = 1,000; line 35 = 3,000; line 38 = 1,000 (Form 1, line 20); line 39 = 2,000 (Form 1, line 23a).
- Form 1: line 21 = 54,600; line 22 = 2,730; line 23a = 2,000 × 8.5% = 170. Total 2,900.
PolicyEngine gets ma_part_a_agi = 3,000 right but has Part B taxable income of 52,600 instead of 53,600.
The NBER TAXSIM-35 staxbc equals the form in rows 2 (2,850) and 3 (2,680). In row 1 it is 2,815, which matches neither PolicyEngine nor the form, so it is not used here.
Evidence
M.G.L. c. 62 § 2 (current text), subsection (b), "Massachusetts gross income shall be divided into three Parts":
"(1) Part A gross income shall be the total interest, dividends and capital gain income included in Massachusetts gross income, other than:-- [...] (C) Gain income from the sale or exchange of capital assets held for more than one year [...]"
"(2) Part B gross income shall be Massachusetts gross income not included in Part A or Part C gross income"
"(3) Part C gross income shall be capital gain income which equals the gains from the sale or exchange of capital assets held for more than 1 year."
Subsection (c), "Part A adjusted gross income shall be the Part A gross income less the following deductions in the following order":
"(2) [...] (b) The excess, if any, of the Part C net capital losses for the year over the Part C net capital gains for the year shall be applied against capital gains included in Part A gross income. [...] The excess, if any, of the Part C net capital loss over the Part A net capital gain, after accounting for any deduction against interest and dividend income, shall be a Part C capital loss in the succeeding taxable year."
Subsection (d), "Part B adjusted gross income shall be the Part B gross income less the following deductions:-- (1) The deductions allowable under section sixty-two [...] of the Code; provided, however, that the following deductions shall not be allowed:--":
"(M) The deduction allowed by section sixty-two (a)(3) of the Code."
"Losses from sale or exchange of property. The deductions allowed by part VI (sec. 161 and following) as losses from the sale or exchange of property."
2023 Form 1 instructions, page 26, Schedule B:
"Line 25. Long-Term Losses Applied Against Short-Term Gains. If Schedule B, line 24 is greater than 0, and Schedule D, line 13 is a loss, enter the smaller of Schedule B, line 24 or Schedule D, line 13 (considered as a positive amount) in Schedule B, line 25 and in Schedule D, line 14."
Same instructions, page 28, Schedule D:
"Line 14. Capital Losses Applied Against Capital Gains. If Schedule D, line 13 is a positive amount and Schedule B, line 21 is a loss, enter the smaller of Schedule D, line 13 or Schedule B, line 21 (considered as a positive amount) in Schedule D, line 14 and in Schedule B, line 22. If Schedule D, line 13 is a loss and Schedule B, line 24 is a positive amount, enter the smaller of Schedule D, line 13 (considered as a positive amount) or Schedule B, line 24 in Schedule D, line 14 and in Schedule B, line 25."
"Line 17. Subtotal. Combine line 15 and line 16. [...] If Schedule D, line 17 is a loss, omit lines 18 through 22 and enter the amount from line 17 in line 23."
"Line 23. Available Losses for Carryover. Enter the amount from Schedule D, line 17, only if it is a loss."
2023 Form 1, page 2:
"10 TOTAL 5.0% INCOME. Add lines 3 through 9. Be sure to subtract any losses in lines 6 or 7."
So all capital gains are Part A or Part C income, losses are netted on Schedules B and D, an unused loss is carried over, and § 2(d)(1)(M) bars capital losses from reducing Part B income.
Fix
Compute ma_part_b_gross_income as ma_gross_income minus the amounts that irs_gross_income added for dividends and capital gains (each filer's max(0, dividend_income) and max(0, capital_gains), dependents excluded), instead of minus Parts A and C gross income. Parts A and C are unchanged.
#9906 (Schedule B loss order), #9910 (per-spouse business losses) and #9894 (dependents' capital income) do not change ma_part_b_gross_income.py.
Activity
Keep capital gains and losses out of Massachusetts Part B income (Pol…
Count Form 4797 gains and losses on Massachusetts Schedule D (#9991)