1Where do you work? ⓘ
What's the ticker for the company you work for? (e.g. AAPL for Apple, ROKU for Roku, MSFT for Microsoft) — and roughly since when have you been getting RSUs? We'll quietly fetch the share prices, exchange rates and holidays for you.
2Go and grab your history from E*Trade ⓘ column mappings
Two things to fetch from E*Trade: your benefit history (every time shares vested) and your orders (every time you sold). The screenshots show exactly where to click — it only takes a minute.



BenefitHistory.xlsx.


If you need to add any manual buys / sells — for instance from a separate, non-ISA/SIPP account — add them here.
| Action | Date | Qty | Price USD | FX (USD/GBP) | Price GBP | Grant |
|---|
3That's everything — let's do the maths
When you've fetched your prices and imported your vests and orders, hit the button and we'll work out your gains, the Section 104 pool and a full audit trail you can file.
⚠️ Not financial or tax advice — verify figures and consult a professional. How it works & setup →
NAVIGATING THE CORPORATE GRID: UK EQUITY SURVIVAL MANUAL
So, you got paid in virtual corporate scrip (RSUs) rather than cold, hard cash. Congratulations, pioneer. You've earned the right to be dual-siphoned by two separate sovereign tax syndicates, calculated on a paper value you couldn't even sell at. Here is your extraction protocol to climb out of this digital hellscape.
STEP 1 — SCRAPE THE DATA FROM THE MAINFRAME
You need to jack into E*Trade's user-hostile architecture and download two conflicting datasets, because presenting them in a single, coherent format would violate their corporate core values:
- BenefitHistory.xlsx — The Scroll of Eternal Regret. A ledger of every vest event since you sold your soul to the enterprise. Locate it at: At Work → My Account → Benefit History → Download Expanded. DO NOT open this spreadsheet on your local rig unless you want to crash your neural interface; it is a formatting disaster. Our engine will dissect it safely in the background.
- Your orders — The digital receipt of your commercial desperation. Under My Account → Orders, drag the date filter back to your very first day of wage slavery, highlight the entire HTML table, and paste it raw into the input field. Cancelled trades? Let them burn; the engine automatically filters out the garbage.
Market data is pulled directly from Yahoo Finance because E*Trade has a habit of vesting your shares on weekends when the markets are physically offline, while HMRC demands accounting based on daily spot rates. Naturally.
THE FISCAL MEAT GRINDER: UK STOCK TAX
- Income Tax + NI at Vest: The Tax Overlords intercept a chunk of your shares before they even land in your wallet, and they usually sell-to-cover the whole stack at the top of the scale. First comes 15% Employer's National Insurance on the full gross value — yes, many employers legally hand their NIC bill to you via a Joint NICs Election, which inflates the total withheld. Then your employee NI. Then income tax at your top marginal rate. That's the maximum, not necessarily your actual rate — so once the dust settles you might owe a little more, or be owed a refund of the difference. It trues up through payroll or your Self Assessment, and it's on you to check it. This tool is about CGT, not your income-tax position.
- Taxed on the close: The value you're taxed on is the share price on vesting day — usually the closing price that day — under the HMRC Securities Options Manual (ERSM110000), which covers RSUs and LTIPs. If the stock craters after the market closes, tough: you still owe tax on that high-water mark.
- CGT When You Liquidate: If you survive the initial vesting tax and the stock somehow goes up, you get hit with Capital Gains Tax. This is calculated using a matching algorithm that feels like it was designed by a sadistic AI.
- The Currency Matrix: Your assets trade in greenbacks (USD), but the tax-drone syndicate requires calculations in Sterling (GBP). Every transaction must be converted to GBP using daily averages. No, you can't use the conversion rate you actually received when you withdrew it. That would make too much sense.
THE ACQUISITION DATE — WHERE WAGE-SLAVES FAINT
Repeat after me: Your acquisition date is NOT the settlement date. Under the sacred text of TCGA 1992 s.119A, your acquisition date and cost basis are welded to the vesting date (rolled to the next active trading day if the market was shut). That vest-day value is what you paid Income Tax on, and it becomes your CGT base cost (see the HMRC HS287 Helpsheet). Do not listen to the slackers in the company chat room telling you it's the date the shares actually arrived in your account (usually 2-3 days later). That's just latency. Basing your CGT on the settlement price is a one-way ticket to an audit.
SECTION 104: A SPECIAL CIRCLE OF SHELL-COMPANY HELL
HMRC matches your sales to your acquisitions in a strict priority queue, designed to neutralize tax-avoidance strategies (see the HMRC HS284 Helpsheet and the technical Share Identification Manual CG51560):
- Same-Day Match: Shares acquired and disposed of on the same calendar day (s.105).
- 30-Day "Bed & Breakfast" Protocol: Disposals matched against acquisitions in the 30 days following the sale (s.106A). Crucially, a new vest counts as an acquisition!
- Section 104 Pool: The digital septic tank. Every other share gets thrown into one averaged-cost sludge pool (s.104). Your shares lose their unique identities and join the collective. Resistance is futile.
The catch: because E*Trade takes days to clear vested shares, you normally can't sell on vest day. Thus, almost all your sales fall into the Section 104 pool. Anyone claiming "I sold the day after, it's a same-day sale" is legally incorrect and begging for trouble.
THE CHRONO-EXPLOIT: THE BUFFER METHOD
The CGT engine doesn't care about the physical shares, only the transaction dates. If you keep a buffer (a pre-existing stack of settled shares) in your account, you can execute a sale on the vest day itself using those settled shares. By date, this creates a true Same-Day match against the new vest, resulting in £0 Capital Gains Tax. The newly vested shares settle a few days later and replenish your buffer. You can roll this exploit indefinitely to bank your vests with no CGT drag. Almost no UK employee knows this is possible because they're too busy staring at the pretty charts.
HARVEST THE SMOLDERING CRATER: THE FOUR-YEAR CLOCK
If the stock collapsed after you were taxed at the peak, you have capital losses. But a loss is just electronic noise until you officially claim it. Under TMA 1970 s.43, you must report these losses to the tax-drones within four years of the end of the tax year in which they occurred, or they dissolve into the ether forever. The Word report generated by this tool will list your remaining time windows. Don't let them expire.
OPTIONS, FEES & OTHER GREMLINS
- Options: Treated as shares once exercised. Cash-exercise-and-hold enters the pool; same-day cashless exercise-and-sell nets to £0 CGT (though you still get hammered on option income tax at exercise under the HMRC Securities Options Manual (ERSM110000)).
- Fees: E*Trade conceals transaction fees in the depths of their statements, so they aren't parsed automatically. Export your disposals CSV, manually add a fee column (convert your £14.99 or $19.99 to USD), and deduct it. Note that wire fees and FX spreads are not tax-deductible; the tax-drones demand their pound of flesh without deduction.
- ISA / SIPP Shelters: Trying to wash US shares directly into a UK tax shelter? You're entirely on your own, pilot.
THE BOTTOM LINE
This tool exists because E*Trade's UI looks like it was designed in the late 90s and HMRC's systems are run on steam-powered abacuses. Built by someone who got tired of spreadsheets and the realization that the system is deliberately complex to extract maximum tribute. Run the calculations, grab your reports, and may the odds be ever in your favor.
⚠️ Not financial or tax advice. Check every figure and consult a professional. Provided “as is”, no warranty of accuracy. Click 💼 Go Corporate for the sober version.
How it works & UK tax guide
This tool computes UK Capital Gains Tax on US equity compensation (RSUs and options) held in E*Trade, from two exports you provide. All processing is local to your machine.
1. Provide your data
- BenefitHistory.xlsx — your award and vesting history. At Work → My Account → Benefit History → Download Expanded. Imported directly; the vesting log is extracted locally.
- Orders — your sales and exercises. My Account → Orders; set the date range back to your earliest order, then select and paste the table. Cancelled orders are ignored.
Daily stock prices, GBP/USD average rates and US market holidays are retrieved automatically when you select “Fetch market data”.
2. UK tax treatment
- Income Tax & NIC at vesting — RSUs are subject to income tax and NICs based on their fair market value on the vesting date (see the HMRC Securities Options Manual ERSM110000).
- Acquisition date & cost basis — both are fixed to the vesting date (rolled to the next trading day if it falls on a non-trading day). The income-taxed value becomes the CGT base cost under TCGA 1992 s.119A (see HMRC Helpsheet HS287). The later settlement/delivery date does not affect this.
- Currency — USD amounts are converted to GBP at the daily exchange rate.
3. Share identification (the matching order)
Each disposal is matched to acquisitions by date, in strict priority (refer to HMRC helpsheet HS284 and CG51560):
- Same day (TCGA 1992 s.105) — acquisitions on the same calendar day.
- Following 30 days (s.106A) — the “bed and breakfast” rule.
- Section 104 pool (s.104) — averaged cost of all remaining shares.
Because shares generally cannot be sold until after the vesting date, most RSU disposals fall to the Section 104 pool rather than same-day matching. The “Matched via” column in the results shows which rule applied to each sale.
4. Same-day sales in practice
A genuine same-day sale requires the disposal to execute on the vesting date itself. As freshly vested shares are not immediately settled, this is generally only achievable by selling shares already held (a standing buffer) on the vesting day, leaving the newly vested shares as the replacement buffer.
5. Capital losses — four-year claim limit
Allowable capital losses must be claimed (notified to HMRC) within four years of the end of the tax year in which they arose (TMA 1970 s.43); otherwise the relief is lost. The generated Word report lists each loss-making year and its claim deadline.
6. Options & fees
Options are treated as shares once exercised: cash-exercise-and-hold enters the pool; same-day exercise-and-sell is CGT-neutral (though subject to Income Tax and NICs at exercise, see the HMRC Securities Options Manual ERSM110000). Transaction fees are not included automatically and can be added from the exported disposals if required.
⚠️ This tool is provided for information only and is not financial or tax advice. Verify all figures and consult a qualified professional before submission.
TALES FROM THE TAX PUNKS
Intercepted communications from the tax resistance. Not financial advice. For entertainment purposes only. Any resemblance to actual tax optimization strategies is purely coincidental…
No tax advisors were harmed in the creation of this chat log. But several spreadsheets did expire from exhaustion.
Insights from the Accountant's Desk
This conversation is for educational purposes only and does not constitute professional tax advice. Please consult with a qualified tax advisor for your specific circumstances.
This professional dialogue aims to clarify common tax considerations for RSUs. Always seek formal advice for your specific situation.
Who are you?
Not an accountant. Just someone who once had a 116% effective marginal tax rate on part of their income.
Jeez. Any advice?
I strongly suggest checking my working.
Can I run it locally?
Absolutely — and I'd encourage it. Grab the source from
GitHub and run
python3 serve.py — nothing to install beyond Python 3, no accounts, no cloud. Everything stays
on your machine; the little server just relays Yahoo price lookups because browsers can't call them directly
(look into CORS). Your transactions never leave your computer.
Can we have more features?
Remember Goodfellas? — sufficient clicks of that Support button and I might think about it!
How can I contact you?
Contact details and the license are here.
The site source is on github.
About Me
I'm not an accountant, but an experienced professional who understands the challenges of navigating complex tax systems — including managing scenarios like effective marginal tax rates exceeding 100%.
Do You Offer Advice?
I strongly encourage you to verify any calculations and seek formal guidance from a qualified accountant.
Can I run it locally?
Yes — and it's the recommended way. The full source is on
GitHub; clone it and run
python3 serve.py (standard library only — no installation, no accounts, no cloud). All
processing happens on your machine; the small local server only relays Yahoo price and forex lookups, which
browsers can't request directly due to CORS. Your transaction data never leaves your computer.
Can we have more features?
With enough community support, further development is possible. Every little helps — especially the Support button!
How can I contact you?
Contact details and the license are here.
The site source is on github.