If your employer grants RSUs or runs an ESPP through Charles Schwab, the shares are already taxed as pay when they vest or are bought. Capital gains tax only applies to the change in value after that. FiscalFox reads your Schwab Equity Awards transaction history, uses the vest-date or purchase-date market value as your cost, and applies the UK same-day, 30-day and Section 104 rules in sterling.
How UK tax treats RSU vests and ESPP purchases
RSUs. When an RSU vests you acquire the shares at their market value on the vest date. Income tax and National Insurance on that value are charged through PAYE, so the same market value is your capital gains tax base cost. You are not taxed on it twice.
ESPP (US section 423 plans). The discount you receive is taxed as employment income, so the base cost of the shares is their market value on the purchase date, not the discounted price you paid.
HMRC's ERSM180030 (CGT interface) explains that shares acquired through employment usually have a capital gains tax cost made up of their market value when acquired, plus certain amounts already charged as employment income.
Sell-to-cover, same-day and 30-day matching
Many plans sell some shares on the vest day to pay the tax. Those sell-to-cover sales are disposals. Under the same-day rule they are matched with that day's vest, so the gain is usually close to nil less fees. The proceeds still count towards the total disposal proceeds on your return.
If shares vest or you buy ESPP shares within 30 days after selling the same shares, the sale is matched with those new shares first under the 30-day rule. Everything else goes into the Section 104 pool at its average cost. Our RSU and ESPP tax guide explains each step with a worked example.
Dollars to pounds: convert each side, not the gain
Convert the acquisition cost at the exchange rate on the vest or purchase date, and the proceeds at the rate on the sale date. Never work out the gain in dollars and convert that. HMRC's CG78310 sets this out and cites Bentley v Pike. FiscalFox applies a dated reference rate to each transaction and shows the rate it used.
How to export your Schwab Equity Awards history
Schwab's menu names can vary by account, so these steps describe what to download rather than an exact click path.
- Open your Equity Awards account: Sign in to Schwab and open the Equity Awards account that holds your RSUs and ESPP shares.
- Open the transaction history: Go to the account's transaction history rather than a statement, a tax form or a realised gain report.
- Choose the full date range: Select every transaction from your first vest or ESPP purchase to today, so shares still held from earlier years are included.
- Export as CSV: Export the history as a CSV file and keep it unchanged. FiscalFox does not read the JSON export.
- Upload it to FiscalFox: In the calculator choose Other broker, enter Schwab as the broker name, and upload the CSV.
Also have a Schwab brokerage account?
FiscalFox also reads Schwab brokerage (Schwab One) transaction CSVs. Their “Stock Plan Activity” rows carry no price, so upload the Equity Awards history as well to give each vest its market value.
Exactly what FiscalFox reads
The Equity Awards CSV has columns such as Date, Action, Symbol, Quantity, FeesAndCommissions and Amount, with detail columns including VestDate, VestFairMarketValue, PurchaseDate, PurchaseFairMarketValue and AwardId.
| Schwab row | How FiscalFox uses it |
|---|---|
| RSU deposit (vest) | Acquisition at the vest-date fair market value |
| ESPP deposit | Acquisition at the purchase-date fair market value; the discounted purchase price is kept as evidence only |
| Lapse | A sell-to-cover with a sale price becomes a same-day sale; vest values are read from lapses when the export has no deposits |
| Sale | Disposal, with its fees and commissions as allowable costs |
| Dividend and US withholding | Dividend income with the US tax withheld |
Upload and price
- Open the FiscalFox calculator and choose Other broker.
- Upload the Equity Awards CSV and enter Schwab as the broker name. FiscalFox reads it in your browser.
- Add any Schwab brokerage CSV and files from other brokers where you hold the same shares.
- Check the same-day, 30-day and Section 104 workings for each sale.
Calculating is free. The report pack for a tax year costs £39.99, paid once, the same as for any other broker. RSU vests and ESPP purchases are included at no extra cost.
Frequently asked questions
Is an RSU vest taxed again when I sell the shares?
No. Income tax and National Insurance are charged through PAYE on the market value at vest, and that market value becomes your capital gains tax base cost. Only the change in value after the vest date is a capital gain or loss.
What is the CGT base cost of ESPP shares?
For a US section 423 plan, the base cost is the market value on the purchase date, because the discount you received is taxed as employment income. FiscalFox keeps the discounted purchase price as evidence but does not use it as the cost.
Do sell-to-cover sales need to go on my tax return?
They are disposals. Shares sold on the vest day are matched with that day's vest under the same-day rule, so the gain is usually close to nil less fees, but the sale proceeds still count towards your total disposal proceeds.
Which Schwab file should I upload?
Upload the Equity Awards account transaction history as a CSV covering every year you have held the shares. If you also moved or sold shares in a Schwab brokerage account, upload that account's transaction CSV as well. JSON exports are not supported.
How much does a Schwab RSU or ESPP report cost?
Calculating is free. The report pack for a tax year costs £39.99, paid once, the same as for any other broker. RSU vests and ESPP purchases are included at no extra cost.
Official UK tax references
This guide is checked against published GOV.UK and HMRC material. FiscalFox is a calculation tool, not personal tax advice; review unusual transactions with a qualified adviser.