Skip to content

Schwab RSU: missing capital gain on shares withheld at vest for Italian payroll tax #2

Description

@mralgos

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions