Background
Building on the v0.3.4 fix (cost basis = ITA FMV instead of W-2 US basis): for Italian-resident employees,
Schwab withholds and sells a portion of vested shares at vest day to remit IRPEF + addizionali to AdE. Those
withheld shares are a separate disposition under Italian tax law, distinct from the employee's later sale of
the net shares.
- Cost basis: Normal Value × shares_withheld (art. 68 c. 6 TUIR — same logic as v0.3.4)
- Proceeds: FMV-at-vest × shares_withheld (the value Schwab obtained selling them)
- The (FMV − NV) × shares_withheld delta is taxable plusvalenza in Quadro RT, currently not captured by decaf.
RT21 = (A) Total Proceeds + (B) FMV × shares withheld
RT22 = (C) NV × shares sold + (D) NV × shares withheld
RT23 = (A−C) + (B−D)
decaf 0.3.4+ correctly computes (A−C). The (B−D) component is missing.
Why current parsing misses it
The withheld shares never enter the employee's brokerage account — they're sold pre-credit by Schwab Stock Plan
Services. Consequently:
- They do not appear as
"Action": "Sell" in Individual_*_Transactions_*.json
- They do not appear as a lot in the Year-End Summary PDF (only employee-owned lots)
- They are documented in the Annual Withholding Statement PDF, in the Tax Details section, by award block
Background
Building on the v0.3.4 fix (cost basis = ITA FMV instead of W-2 US basis): for Italian-resident employees,
Schwab withholds and sells a portion of vested shares at vest day to remit IRPEF + addizionali to AdE. Those
withheld shares are a separate disposition under Italian tax law, distinct from the employee's later sale of
the net shares.
decaf 0.3.4+ correctly computes (A−C). The (B−D) component is missing.
Why current parsing misses it
The withheld shares never enter the employee's brokerage account — they're sold pre-credit by Schwab Stock Plan
Services. Consequently:
"Action": "Sell"inIndividual_*_Transactions_*.json