{"id":113,"date":"2026-04-09T09:00:00","date_gmt":"2026-04-09T09:00:00","guid":{"rendered":"https:\/\/taxbull.co.uk\/blog\/?p=113"},"modified":"2026-04-09T09:00:00","modified_gmt":"2026-04-09T09:00:00","slug":"capital-gains-tax-multiple-brokers-uk","status":"publish","type":"post","link":"https:\/\/taxbull.co.uk\/blog\/capital-gains-tax-multiple-brokers-uk\/","title":{"rendered":"How to Calculate CGT Across Multiple UK Brokers"},"content":{"rendered":"<p>Here&#8217;s something that catches a lot of people off guard: if you hold the same shares across different brokers, HMRC treats them as <strong>one single holding<\/strong>. Your Section 104 pool for, say, Tesla shares is the same pool whether you bought them on Trading 212, Robinhood UK, or Freetrade.<\/p>\n<p>This means you can&#8217;t just calculate CGT per broker and add the results up. You need to combine everything first.<\/p>\n<h2>Why this matters<\/h2>\n<p>Imagine you own 100 NVDA shares on Trading 212 (bought at \u00a380 each) and 50 NVDA shares on Robinhood UK (bought at \u00a3120 each). Your Section 104 pool is 150 shares with a total cost of \u00a314,000, giving an average cost of \u00a393.33 per share.<\/p>\n<p>If you sell 50 shares on Trading 212 at \u00a3130, the cost basis is 50 \u00d7 \u00a393.33 = \u00a34,666.67 \u2014 not 50 \u00d7 \u00a380 (from the Trading 212 purchase). The pool spans both brokers.<\/p>\n<p>Getting this wrong means your gains are calculated incorrectly, which means your tax return is wrong.<\/p>\n<h2>How to combine trades from different brokers<\/h2>\n<p>The process is straightforward in principle:<\/p>\n<p><strong>Step 1:<\/strong> Export transaction history from every broker you&#8217;ve used during the tax year \u2014 and ideally your full history going back to when you first started investing. You need the original purchases to build accurate pools.<\/p>\n<p><strong>Step 2:<\/strong> Combine all transactions into a single timeline, sorted by date.<\/p>\n<p><strong>Step 3:<\/strong> Apply HMRC&#8217;s matching rules (same-day, 30-day, S104) across the combined dataset.<\/p>\n<p>The tricky bit is that every broker uses a different CSV format. Column names differ, date formats differ, currency handling differs. Trading 212 gives you GBP amounts directly. Robinhood gives you USD. Freetrade has its own format. Manually reformatting three different CSVs into a single spreadsheet is where most errors creep in.<\/p>\n<h2>Cross-broker matching scenarios<\/h2>\n<p>Some real-world situations that only arise with multiple brokers:<\/p>\n<p><strong>Same-day trades on different platforms.<\/strong> You buy AAPL on Robinhood in the morning and sell AAPL on Trading 212 in the afternoon. The same-day rule applies \u2014 even though the trades are on different brokers. The Robinhood buy matches the Trading 212 sell.<\/p>\n<p><strong>30-day rule across brokers.<\/strong> You sell MSFT on Freetrade, then buy MSFT on Robinhood 15 days later. The 30-day rule kicks in. The Robinhood purchase matches to the Freetrade sale, not the pool.<\/p>\n<p><strong>Pool spanning three platforms.<\/strong> You&#8217;ve bought the same ETF on Trading 212, Freetrade, and through a generic broker. All those purchases feed into one Section 104 pool. When you sell from any platform, the cost comes from the combined pool average.<\/p>\n<h2>Different currencies across brokers<\/h2>\n<p>This adds another layer of complexity. Your Trading 212 trades might be in GBP (using their execution rate), while your Robinhood trades are in USD (needing HMRC monthly rates for conversion). Both need to end up in GBP before they enter the same pool.<\/p>\n<p>The conversion happens at the point of each transaction \u2014 not when you combine them. A January purchase on Robinhood converts at January&#8217;s HMRC rate. A March purchase on Trading 212 in GBP stays as-is. Both enter the pool in GBP.<\/p>\n<h2>Practical approach<\/h2>\n<p>Doing this manually across three brokers with different formats and currencies is genuinely miserable. Most people who try end up with a spreadsheet that&#8217;s hundreds of rows long, full of VLOOKUP formulas, and one wrong reference away from silently producing incorrect numbers.<\/p>\n<p><a href=\"https:\/\/taxbull.co.uk\">TaxBull<\/a> was built for exactly this situation. Upload CSV files from multiple brokers \u2014 Robinhood UK, Trading 212, Freetrade, Tastytrade, or any broker via generic CSV format. It auto-detects each broker&#8217;s format, converts currencies where needed, combines everything into unified Section 104 pools, and applies HMRC matching rules across the full dataset.<\/p>\n<p>The results show which broker each transaction came from, which rule was applied, and which acquisition was matched to each disposal \u2014 giving you a complete cross-platform audit trail for your SA108.<\/p>\n<h2>One pool per company, not per broker<\/h2>\n<p>The key takeaway bears repeating: HMRC doesn&#8217;t care which platform you used. One company = one pool. If you own shares in the same company across multiple accounts (excluding ISAs and SIPPs, which are separate), they&#8217;re all in the same basket for CGT purposes.<\/p>\n<p>The only exception is ISA-held shares, which live in their own tax-free world and never interact with your GIA pools.<\/p>\n<p><em>This guide is for informational purposes only. Cross-broker CGT calculations are complex. Always verify with a qualified tax professional, especially if large sums are involved.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>How to calculate UK Capital Gains Tax when you trade the same shares across multiple brokers. Section 104 pools span all accounts.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[59,60,58,8,9],"class_list":["post-113","post","type-post","status-publish","format-standard","hentry","category-cgt-guides","tag-combine-trades","tag-cross-platform","tag-multiple-brokers","tag-section-104","tag-share-matching"],"_links":{"self":[{"href":"https:\/\/taxbull.co.uk\/blog\/wp-json\/wp\/v2\/posts\/113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/taxbull.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/taxbull.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/taxbull.co.uk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/taxbull.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=113"}],"version-history":[{"count":1,"href":"https:\/\/taxbull.co.uk\/blog\/wp-json\/wp\/v2\/posts\/113\/revisions"}],"predecessor-version":[{"id":341,"href":"https:\/\/taxbull.co.uk\/blog\/wp-json\/wp\/v2\/posts\/113\/revisions\/341"}],"wp:attachment":[{"href":"https:\/\/taxbull.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/taxbull.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/taxbull.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}