1Market data

Ticker price GBP/USD US holiday
Advanced — paste market data offline

No serve.py handy? If you already have the figures, paste daily close prices, GBP/USD averages and US holidays below. Headers must match exactly.

2Your vests & sales column mappings

How to get BenefitHistory.xlsx (click any image to enlarge)
After login, pick your Stock Plan
1. Log in & pick your Stock Plan.
My Account → Benefit History
2. My Account → Benefit History.
Download → Download Expanded
3. Download → Download Expanded → saves BenefitHistory.xlsx.
How to get your orders table (click any image to enlarge)
My Account → Orders
1. My Account → Orders.
Set the date range back to your first order
2. Set the date range back to your first order, then Apply.
Select and copy the entire table
3. Select & copy the whole table (cancelled rows are fine) and paste above.
ActionDateQtyPrice USD FX (USD/GBP)Price GBPGrant

3Calculate CGT

⚠️ 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 up to 47% (or 62% if you're stuck in the child benefit trap) of your shares before they even land in your wallet. You are taxed on the theoretical peak value on vesting day under the HMRC Securities Options Manual (ERSM110000), which covers RSUs and LTIPs. If the stock plunges five minutes later, you still owe tax on that high-water mark. Oh, and your employer might legally dump the Employer's National Insurance levy onto you via a Joint NICs Election (see HMRC's guidance on transferring secondary NICs). Delightful.
  • 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):

  1. Same-Day Match: Shares acquired and disposed of on the same calendar day (s.105).
  2. 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!
  3. 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):

  1. Same day (TCGA 1992 s.105) — acquisitions on the same calendar day.
  2. Following 30 days (s.106A) — the “bed and breakfast” rule.
  3. 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…

20:57

[ Secure channel established - Encryption active ]

20:58NovaRunner

first vest just hit. everyone's like "HODL, it'll go up!" but they already took over half in tax witholding anyway. feels wrong. i'm basic rate.

21:00TaxMatrix_Sage

they never mention that part in the motivational speeches, do they? "congratulations on your RSUs, now watch half vanish for tax before you even see them" 😏. You'll get that diff back in your PAYE though.

21:01NovaRunner

so what now? stocks are volatile

21:03TaxMatrix_Sage

here's the thing no-one says: you already paid tax on full value at vest. holding after that is a pure gamble on you. like buying the stock with post-tax money, but on autopilot

21:04NovaRunner

wait... so if it drops I still paid tax on the higher amount? 🤔

21:05TaxMatrix_Sage

bingo. welcome to the matrix. only forced gamble was between grant and vest. maybe you made bank, maybe you didn't. your choice now tho ... just keep meditating 'safe percentage of net worth'

21:06NovaRunner

damn. good point. but heard something about "bed and breakfast" rules if I sell? sounds like a hotel promotion 😄

21:08TaxMatrix_Sage

haha HMRC's idea of hospitality. no fry up tho. can't sell and rebuy (a vest in our case) within 30 days or they treat it as same val. but that opens... possibilities for those who understand timing 😉

21:09NovaRunner

seeing stuff about "Section 104 pools" too. sounds like a fancy swimming complex

21:11TaxMatrix_Sage

their way of averaging your purchase costs. but here's a secret: same-day transactions match first. some people get creative with that knowledge... especially around vest days...

21:12NovaRunner

👀

21:14TaxMatrix_Sage

let's just say timing isn't just for traders. some folks get real precise with their clocks to realise the taxed vest value...

21:15NovaRunner

my benefits team keeps pushing salary sacrifice schemes. seems random

21:17TaxMatrix_Sage

not so random when you understand income thresholds. bikes, pension contributions, maybe a taycan or a tesla... all reduce "taxable income". interesting effects on child benefit and six figure ballers personal allowance taper....or UC...

21:18NovaRunner

hold up. some people driving fancy new EVs or e-bikes might actually be gaming the system? legally??

21:20TaxMatrix_Sage

well ... heard paye stories that would make mossack fonseca envious. all perfectly legal. system has more loopholes than a crochet convention. by design. labor lost to capital but crumbs are still there.

21:21NovaRunner

starting to see why they make it so complicated...

21:23TaxMatrix_Sage

complexity creates opportunity. pension allowances, carry back, charitable giving, timing of disposals... pieces of a puzzle waiting to be solved

21:24NovaRunner

any recommended reading? need to level up my tax game

21:26TaxMatrix_Sage

official guides tell half the story. watch what people actually do. especially those who talk about effective marginal rates and tax and benefit thresholds. but you didn't hear that from me...

21:27

[ Warning: HMRC pattern matching detected - Channel compromised ]

21:28TaxMatrix_Sage

time to disappear. remember: eggs in baskets, watch the clock near vest, and always read the fine print on salary sacrifice... 😉

21:29

[ Connection terminated - Channel shutdown complete ]

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.

20:57

[ Conversation initiated - Advisor online ]

20:58Employee

My RSUs just vested, but over half was taken for tax withholding. Is this normal?

21:00Accountant

Yes, that's standard. At vesting, Income Tax and National Insurance are calculated on the full market value of the shares. The withholding is an estimate, and any overpayment will be adjusted via your PAYE tax code.

21:01Employee

Should I hold the shares or sell them now? They’re quite volatile.

21:03Accountant

That depends on your risk tolerance. Remember, you’ve already paid tax on the shares' value at vesting. If the stock drops, you won’t recover that tax. Holding is essentially like reinvesting post-tax money into the stock.

21:04Employee

What about the "bed and breakfast" rule I’ve heard about? Does that apply here?

21:06Accountant

The "bed and breakfast" rule prevents you from selling and repurchasing the same shares within 30 days for tax advantage. If you sell your RSUs and repurchase them quickly, HMRC will treat it as the same holding for tax purposes. Release on vest is effectively an acquisition, so if you sold in the 30 days prior to vest, this is a situation you may encounter. Timing is key if you want to avoid this.

21:07Employee

I’ve also seen mentions of "Section 104 pools." What are those?

21:09Accountant

Section 104 pools are used to average the acquisition cost of shares acquired over time. However, same-day transactions and the 30-day rule take precedence. This can be advantageous if you’re strategic with your trades, especially around vesting dates.

21:10Employee

My company also keeps mentioning salary sacrifice schemes. Are they worth considering?

21:12Accountant

Salary sacrifice can reduce your taxable income, which may help you stay below key thresholds, such as the higher tax rate or child benefit taper. Common options include pension contributions, cycle-to-work schemes, and electric vehicle plans. They’re worth exploring if they align with your financial goals.

21:13Employee

It all seems so complex. Why does the system work this way?

21:15Accountant

The complexity creates opportunities for optimization but also makes compliance challenging. Timing disposals, using allowances, and understanding the nuances of rules like Section 104 can help reduce your tax liability. Knowledge is key.

21:16Employee

Where can I learn more? I’d like to better understand these strategies.

21:18Accountant

I recommend starting with HMRC’s official guides and consulting with a tax professional for tailored advice. Additionally, understanding effective marginal rates and income thresholds can provide deeper insights into tax planning.

21:20

[ Conversation ended - Advisor offline ]

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.

Why a little Python server?

Look into CORS. Browsers can't call Yahoo Finance directly, so serve.py relays the price lookups for you — locally, with nothing to install beyond Python 3. Your transactions never touch it.

Why not a proper cloud backend?

Because I want this to run on your own machine, privately, with no accounts and no third-party servers holding your data. The optional Cloudflare worker exists only if you choose to host it online.

Just add 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.

Why Include a Local Server?

Stock prices and forex rates come from Yahoo Finance, which browsers cannot call directly (CORS). A small, standard-library Python server relays those lookups locally, requiring no installation and keeping your transaction data entirely on your machine.

Why Keep It Local?

The focus is privacy and simplicity. Running locally avoids reliance on external servers. Hosting online is possible via an optional Cloudflare worker, at your discretion.

Can You Add 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.