UK Capital Gains Calculation
How PrivateACB calculates Capital Gains Tax for UK cryptocurrency using Section 104 pooling, the same-day rule, and the 30-day bed & breakfasting rule — all in compliance with HMRC guidance.
Overview
Section titled “Overview”HM Revenue & Customs (HMRC) treats cryptocurrency as a capital asset subject to Capital Gains Tax (CGT). Every disposal of a crypto asset — selling for GBP, trading for another crypto, or using crypto to pay for goods and services — triggers a chargeable gain or loss under the Taxation of Chargeable Gains Act 1992 (TCGA 1992).
PrivateACB calculates your capital gain or loss for every disposal, applies the correct matching rules, and generates the reports you need for your Self Assessment tax return.
What PrivateACB does for UK users:
- Applies the three-tier matching hierarchy (same-day → 30-day → Section 104 pool) to every disposal
- Tracks each asset’s Section 104 pool (running quantity and cost)
- Calculates the Annual Exempt Amount (AEA) deduction
- Generates the SA108 form summary (boxes 13.1–13.8) for Self Assessment
- Produces detailed reports: Capital Gains Detail, Pool History, Income, and Audit Provenance
Important: This guide assumes you’ve already imported your transaction data. If you haven’t, see the Import Flow Guide first.
How It Differs from Canada, the US, and Australia
Section titled “How It Differs from Canada, the US, and Australia”| Feature | Canada | United States | Australia | United Kingdom |
|---|---|---|---|---|
| Method | Average Cost (ACB) | Lot-based (FIFO/LIFO/HIFO) | Lot-based (FIFO/LIFO/HIFO) | Section 104 Pool (weighted average) |
| Matching rules | None — straight to pool | None (lots selected by method) | None (lots selected by method) | Same-day → 30-day → Pool |
| Loss rules | Superficial loss (30-day window) | Wash sale (30-day window, optional) | None (Part IVA is intent-based) | 30-day rule changes cost, not loss denial |
| Holding period benefit | None | Short-term vs long-term rates | 50% CGT discount (>12 months) | None |
| Per-account tracking | No | Yes (T.D. 10000, from 2025) | No | No |
| Tax year | January – December | January – December | July 1 – June 30 | April 6 – April 5 |
| Currency | CAD | USD | AUD (A$) | GBP (£) |
Key Differences
Section titled “Key Differences”The UK’s calculation model is unique among the four jurisdictions PrivateACB supports:
- Three-tier matching — Before the Section 104 pool is consulted, disposals are first matched against same-day acquisitions, then acquisitions within the next 30 days. Only the remaining quantity uses the pool’s average cost. No other jurisdiction has this.
- Forward-looking matching — The 30-day rule looks at future acquisitions (the next 30 calendar days after the disposal). This is fundamentally different from Canada’s superficial loss rule, which looks both backwards and forwards.
- No loss denial — The 30-day rule changes which cost is used for the disposal, rather than denying a loss after the fact. The loss is never created, rather than being denied and added back.
- No holding period — All crypto disposals are taxed at the same CGT rate regardless of how long you held the asset.
Before You Start
Section titled “Before You Start”What You Need
Section titled “What You Need”Transaction data imported:
- All cryptocurrency purchases, sales, trades
- Rewards, staking, mining, airdrops
- From ALL exchanges and wallets you’ve used
Currency rates (if trading in USD):
- CoinGecko supports GBP pricing natively — no separate FX import needed for most assets
- For USD-denominated exchanges, PrivateACB handles USD→GBP conversion automatically
Understanding of your holdings:
- Which cryptocurrencies you own
- Approximate number of transactions per asset
- Date range of your trading activity
Important Notes
Section titled “Important Notes”Matching rules always apply: The same-day and 30-day rules are mandatory under HMRC guidance. They cannot be disabled. PrivateACB applies them automatically.
One method for the UK: UK tax law requires the Section 104 pool method. You cannot choose FIFO, LIFO, or other methods. The method selector shows “ACB” (average cost basis), which is the mathematical equivalent of the Section 104 pool.
The Three-Tier Matching Hierarchy
Section titled “The Three-Tier Matching Hierarchy”When you dispose of cryptocurrency, PrivateACB determines the allowable cost using three rules, applied in strict order:
Rule 1: Same-Day Rule (Section 105)
Section titled “Rule 1: Same-Day Rule (Section 105)”All acquisitions and disposals of the same token on the same calendar day are consolidated first. If you bought and sold the same asset on the same day, the disposal is matched to the same-day acquisition before anything else.
Example: You buy 2 ETH at 9am and sell 1 ETH at 5pm on the same day. The disposal is matched to the same-day acquisition at the actual purchase cost — not the pool’s average cost.
If the disposal quantity exceeds same-day acquisitions, the remainder passes to Rule 2.
Rule 2: 30-Day Rule (Section 106A — “Bed & Breakfasting”)
Section titled “Rule 2: 30-Day Rule (Section 106A — “Bed & Breakfasting”)”After same-day matching, any remaining disposal quantity is matched against acquisitions in the next 30 calendar days (forward-looking only). This prevents the classic “bed & breakfasting” tax avoidance strategy — selling at a loss and immediately rebuying.
Key details:
- The window starts the day after disposal. Selling on January 15 means acquisitions from January 16 through February 14 are matched.
- Earliest disposal gets priority when multiple disposals compete for the same acquisition.
- Acquisitions matched by this rule are diverted — they never enter the Section 104 pool.
If the disposal quantity still has a remainder after 30-day matching, it passes to Rule 3.
Rule 3: Section 104 Pool
Section titled “Rule 3: Section 104 Pool”Whatever remains after same-day and 30-day matching is removed from the Section 104 pool at the pool’s weighted average cost per token. Each cryptocurrency has its own separate pool.
Pool formula:
Allowable cost = Pool cost × (tokens disposed ÷ total tokens in pool)For the full matching rules guide — including worked examples, edge cases, and how PrivateACB’s two-pass algorithm works — see UK Matching Rules.
The Calculation Dashboard
Section titled “The Calculation Dashboard”The Calculation Dashboard uses a four-zone layout — the same layout used for all four jurisdictions.
Zone A: Configuration Bar
Section titled “Zone A: Configuration Bar”At the top of the dashboard:
- Jurisdiction toggle — Select “United Kingdom” (shows the Union Jack flag)
- Tax year selector — Shows UK tax years in “2025/26” format (April 6, 2025 to April 5, 2026)
- Method selector — Shows “ACB” (the only available method for UK)
Zone B: Rules Banner
Section titled “Zone B: Rules Banner”For the UK, the rules banner shows:
- Tax Year — e.g., “2024/25”
- Currency — “GBP”
- Method — “ACB” (Section 104 pool)
- No wash sale or superficial loss pills — the 30-day rule is built into the matching, not a separate toggle
Zone C: Asset Table
Section titled “Zone C: Asset Table”Shows all your imported cryptocurrency assets with readiness indicators:
| Column | What It Shows |
|---|---|
| Checkbox | Select assets for batch calculation |
| Asset | Cryptocurrency symbol (BTC, ETH, etc.) |
| Asset History | All-time date range of your transactions |
| {Year} Txns | Number of transactions in the selected tax year, plus total count |
| Source | Original trading currency (GBP, USD, or Mixed) |
| Converted | Currency conversion status |
| Prices | Shows a checkmark if all prices are available, or a count of missing prices |
| Last Calculated | When this asset was last calculated, or “Needs Calculation” |
| Method | Locked to ACB for UK |
Zone D: Calculation History
Section titled “Zone D: Calculation History”Shows all previous calculations with their parameters (method, tax year, timestamp) and financial results after completion.
Financial result columns (after calculation completes):
| Column | Description |
|---|---|
| Disp | Number of disposals |
| Net G/L | Net capital gain or loss (green for gains, red for losses) |
| Gains | Total capital gains |
| Losses | Total capital losses |
| Proceeds | Total proceeds from all disposals |
Running Your First UK Calculation
Section titled “Running Your First UK Calculation”Step 1: Open the Calculation Dashboard
Section titled “Step 1: Open the Calculation Dashboard”- Open your database in PrivateACB
- Click the ACB Calculator tab in the top navigation
- The Calculation Dashboard appears with the four zones described above
Step 2: Configure Your Settings (Zone A)
Section titled “Step 2: Configure Your Settings (Zone A)”- Click United Kingdom in the jurisdiction toggle
- Select your tax year (e.g., “2024/25”)
- Method is automatically set to ACB — no other options for UK
Step 3: Review the Rules Banner (Zone B)
Section titled “Step 3: Review the Rules Banner (Zone B)”The rules banner confirms your configuration. For the UK, you’ll see the tax year, currency (GBP), and method (ACB). No additional toggles needed.
Step 4: Check Asset Readiness (Zone C)
Section titled “Step 4: Check Asset Readiness (Zone C)”Before calculating, scan the Asset Table:
- Prices column should show a checkmark for each asset
- Converted column should show “GBP” (green) or ”—” if already in GBP
- If you see “N pending” in the Converted column, click it to navigate to Market Data
Step 5: Calculate
Section titled “Step 5: Calculate”Option A — Individual assets: Check specific assets, click “Calculate Selected (N)”
Option B — All assets: Click “Calculate All”
Step 6: Monitor Progress (Zone D)
Section titled “Step 6: Monitor Progress (Zone D)”Each asset processes sequentially. You’ll see:
- A progress bar with throughput (transactions per second)
- The current asset being processed
- Results appearing as each asset completes
Step 7: Review Results
Section titled “Step 7: Review Results”After completion, Zone D shows financial results per asset:
- Net G/L — Your net capital gain or loss
- Gains/Losses — Broken down separately
- Proceeds — Total disposal proceeds
For detailed per-disposal results, go to the Reports tab.
Annual Exempt Amount (AEA)
Section titled “Annual Exempt Amount (AEA)”The first portion of your net capital gains each tax year is exempt from CGT:
| Tax Year | AEA |
|---|---|
| 2024/25 onwards | £3,000 |
| 2023/24 | £6,000 |
| 2022/23 and earlier | £12,300 |
The AEA is a deduction — it reduces your taxable gains, but only the excess above the AEA is taxed.
How PrivateACB shows this:
- The Dashboard TaxSummaryCard displays: Net Gain/Loss → Annual Exempt Amount (£3,000) → Taxable Gains → Estimated Tax
- The SA108 report shows the AEA deduction as a separate line item
CGT Rates
Section titled “CGT Rates”From 30 October 2024 onwards:
| Taxpayer Band | Rate |
|---|---|
| Basic rate (income ≤ £50,270) | 18% |
| Higher/additional rate | 24% |
PrivateACB defaults to 18% but lets you adjust the rate in the TaxSummaryCard.
What the UK Doesn’t Have
Section titled “What the UK Doesn’t Have”Understanding what the UK doesn’t have helps avoid confusion:
- No wash sale rule — The 30-day rule changes cost allocation, not loss denial
- No superficial loss rule — No backward-looking loss denial window
- No lot tracking — UK uses pooling (Section 104), not individual lots. No FIFO/LIFO/HIFO choice.
- No per-wallet tracking — No equivalent to the US T.D. 10000 requirement. All tokens of the same type are pooled regardless of which exchange or wallet holds them.
- No short-term/long-term distinction — All gains taxed at the same CGT rate
- No CGT discount — Unlike Australia’s 50% discount for holding >12 months
Common Scenarios
Section titled “Common Scenarios”Scenario 1: Basic Pool Disposal
Section titled “Scenario 1: Basic Pool Disposal”Situation: You own 5 ETH with a pool cost of £15,000 (avg £3,000/ETH). You sell 2 ETH for £10,000.
No same-day or 30-day acquisitions exist.
Result:
- Pool cost for 2 ETH: £15,000 × (2/5) = £6,000
- Gain: £10,000 - £6,000 = £4,000
- Remaining pool: 3 ETH, £9,000
Scenario 2: Same-Day Buyback
Section titled “Scenario 2: Same-Day Buyback”Situation: You sell 1 BTC for £40,000 (pool avg cost £50,000/BTC), then buy 1 BTC for £38,000 later the same day.
Result:
- Same-day rule applies — disposal matched to same-day acquisition
- Allowable cost: £38,000 (the actual same-day purchase price, not the pool’s £50,000 average)
- Gain: £40,000 - £38,000 = £2,000
- The 1 BTC purchased is diverted from the pool (matched to same-day disposal)
Without the same-day rule, the pool average would have given a loss. The same-day rule prevents this.
Scenario 3: 30-Day Bed & Breakfasting
Section titled “Scenario 3: 30-Day Bed & Breakfasting”Situation: You sell 1 ETH at a loss on January 15, then rebuy 1 ETH on January 25 (10 days later).
Result:
- 30-day rule applies — disposal matched to the January 25 acquisition
- Allowable cost: the actual January 25 purchase price
- The reacquired ETH is diverted from the pool
This prevents “bed & breakfasting” — selling to crystallise a loss then immediately rebuying.
Scenario 4: Mixed Matching (All Three Rules)
Section titled “Scenario 4: Mixed Matching (All Three Rules)”Situation: Multiple transactions with all three rules triggered.
PrivateACB’s two-pass algorithm handles this automatically. The Audit Provenance report shows exactly which rule was applied to each portion of each disposal, with match type badges (same-day, 30-day, pool, or mixed).
Scenario 5: Recalculating After New Data
Section titled “Scenario 5: Recalculating After New Data”Situation: You imported Q4 transactions and need to update calculations.
Steps:
- Go to the Data Viewer tab
- Delete old calculation jobs for affected assets
- Return to the Calculation Dashboard
- Recalculate the affected assets
Why delete first: Running multiple calculations for the same asset creates duplicate records. Always delete old calculations before recalculating.
Tax Year: April 6 – April 5
Section titled “Tax Year: April 6 – April 5”The UK tax year is different from the calendar year used by Canada and the US, and from Australia’s July–June fiscal year:
- “2024/25” means April 6, 2024 to April 5, 2025
- A BTC sale on March 15, 2025 falls in the 2024/25 tax year
- A BTC sale on April 10, 2025 falls in the 2025/26 tax year
PrivateACB displays UK tax years in the “2024/25” format throughout the app and correctly assigns all transactions to the right tax year based on the disposal date.
Using Your Results for Taxes
Section titled “Using Your Results for Taxes”SA108 (Capital Gains Summary)
Section titled “SA108 (Capital Gains Summary)”After calculating, go to the Reports tab:
- Select United Kingdom in the jurisdiction toggle
- Click SA108 Summary
- Review the form — boxes 13.1 through 13.8 are populated automatically
- Export to PDF or CSV
- Use these values when completing your Self Assessment tax return
Capital Gains Detail Report
Section titled “Capital Gains Detail Report”For a per-disposal breakdown showing which matching rule was applied:
- Go to the Reports tab
- Click Capital Gains Detail
- Each disposal shows: proceeds, allowable cost, gain/loss, and match type (same-day, 30-day, pool, or mixed)
Pool History Report
Section titled “Pool History Report”To see how your Section 104 pool changed over time:
- Go to the Reports tab
- Click Pool History
- View the running pool balance per asset — every acquisition and disposal event with its effect on the pool
This report is unique to the UK. It shows which acquisitions were diverted by matching rules and never entered the pool.
Income Report
Section titled “Income Report”For staking, mining, and airdrop income:
- Go to the Reports tab
- Click Income Report
- Income is grouped by type with HMRC reporting form references (SA103, SA100 Box 17)
Technical Details
Section titled “Technical Details”For the full mathematical formulas behind UK capital gains calculations — including the Section 104 pool formula, same-day cost apportionment, 30-day matching cost allocation, and worked examples — see the UK Capital Gains Formulas (Technical) guide.
For a deep dive into the three matching rules with worked examples and edge cases, see the UK Matching Rules Guide.
Frequently Asked Questions
Section titled “Frequently Asked Questions”Q: Can I use FIFO or LIFO instead of the Section 104 pool?
Section titled “Q: Can I use FIFO or LIFO instead of the Section 104 pool?”A: No. UK tax law requires the Section 104 pool method with same-day and 30-day matching rules. This is mandatory and cannot be changed.
Q: Is the 30-day rule the same as the wash sale rule?
Section titled “Q: Is the 30-day rule the same as the wash sale rule?”A: No. They serve a similar purpose (preventing loss harvesting) but work differently:
- US wash sale: Loss is calculated, then denied and added to the replacement cost basis
- UK 30-day rule: The matching rule changes which cost is used for the disposal. The loss is never created in the first place.
Q: Does the 30-day rule look backwards?
Section titled “Q: Does the 30-day rule look backwards?”A: No. The 30-day rule is forward-looking only. It matches disposals to acquisitions in the next 30 days, not the previous 30 days. This is different from Canada’s superficial loss rule, which looks both ways.
Q: How does PrivateACB handle the same-day and 30-day rules technically?
Section titled “Q: How does PrivateACB handle the same-day and 30-day rules technically?”A: PrivateACB uses a two-pass algorithm:
- Pass 1 scans all transactions to build a match table — identifying same-day and 30-day matches before any calculations
- Pass 2 processes transactions chronologically, using the pre-computed matches to determine costs
This ensures correct results even when multiple disposals compete for the same acquisitions.
Q: What if I have transactions from before I started using PrivateACB?
Section titled “Q: What if I have transactions from before I started using PrivateACB?”A: Import them all. PrivateACB needs your complete transaction history to correctly compute the Section 104 pool’s running balance. Even old transactions affect your current pool cost.
Q: Can I calculate multiple assets at once?
Section titled “Q: Can I calculate multiple assets at once?”A: Yes. Select multiple assets using the checkboxes, or click “Calculate All”. PrivateACB processes them sequentially in a batch.
Q: Do I need to report gains below the AEA?
Section titled “Q: Do I need to report gains below the AEA?”A: You may still need to file if your total disposal proceeds exceed 4 × the AEA (£12,000 for 2024/25 onwards), even if your net gain is below the £3,000 AEA. Check HMRC guidance on reporting requirements.
Troubleshooting
Section titled “Troubleshooting”Prices column shows a red number
Section titled “Prices column shows a red number”Cause: Some transaction prices are missing from your data.
Solution:
- Go to the Market Data tab
- Fetch crypto prices for the affected asset. CoinGecko supports GBP natively.
- Return to the Calculation Dashboard — the Prices column should show a checkmark
Converted column shows “N pending”
Section titled “Converted column shows “N pending””Cause: Some transactions were priced in a currency other than GBP (e.g., USD from a US exchange).
Solution:
- Click the red “N pending” text to navigate to Market Data
- Import exchange rates for the relevant date range
- Return to the Calculation Dashboard and verify the Converted column shows “GBP” in green
”Needs Calculation” badge won’t clear
Section titled “”Needs Calculation” badge won’t clear”Cause: New transaction data has been imported since the last calculation, making old results stale.
Solution: Delete the old calculation (Data Viewer tab), then recalculate the asset.
Net G/L seems wrong
Section titled “Net G/L seems wrong”Possible causes:
- Missing transactions — you didn’t import all buy/sell data
- Duplicate transactions — the same file was imported twice
- Incorrect prices — transaction data has wrong price values
- Currency conversion issues — USD trades not converted to GBP
How to verify:
- Go to the Reports tab and generate a Capital Gains Detail report
- Review the per-disposal breakdown — check match types and costs
- Generate a Pool History report to see the running pool balance
- Cross-check against your exchange records
Best Practices
Section titled “Best Practices”1. Import All Data Before Calculating
Section titled “1. Import All Data Before Calculating”Import ALL transactions from ALL sources before running your first calculation. Incomplete data produces incorrect pool balances and may result in inaccurate SA108 figures.
2. Check Prices and Conversions First
Section titled “2. Check Prices and Conversions First”Before calculating, scan the Asset Table:
- Prices column should show a checkmark for each asset
- Converted column should show “GBP” (green) or ”—” (native)
3. Delete Before Recalculating
Section titled “3. Delete Before Recalculating”If you need to recalculate (new data imported, error correction), always delete the old calculation first via the Data Viewer tab.
4. Export Reports After Calculating
Section titled “4. Export Reports After Calculating”After calculating, go to the Reports tab and export:
- SA108 Summary — For your Self Assessment tax return
- Capital Gains Detail — For your records or accountant
- Pool History — For audit trail purposes
- Income Report — If you have staking/mining/airdrop income
5. Back Up Your Database
Section titled “5. Back Up Your Database”Use “Export Database Copy” in the Settings tab to create a backup after calculating.
Related Guides
Section titled “Related Guides”- UK Capital Gains Formulas (Technical) — Mathematical details, pool formula, cost apportionment
- UK Matching Rules (S104/S105/S106A) — Complete guide to same-day, 30-day, and pool matching with worked examples
- UK Tax Reports — Guide to SA108, Capital Gains Detail, Pool History, Income, and Audit Provenance reports
- Market Data Guide — Exchange rates and cryptocurrency prices
- Import Flow Guide — Importing transaction data from exchanges
- Deletion Guide — How to delete old calculations
Summary
Section titled “Summary”Key Takeaways:
- Section 104 pool — All tokens of the same type are pooled together at weighted average cost
- Three-tier matching — Same-day → 30-day → Pool (mandatory, applied automatically)
- Four-zone dashboard — Config Bar, Rules Banner, Asset Table, Calculation History
- AEA deduction — First £3,000 of net gains is exempt (2024/25 onwards)
- Tax year — April 6 to April 5, displayed as “2024/25”
- Export reports for taxes — SA108 Summary, Capital Gains Detail, Pool History, Income
Quick Reference:
| Action | How |
|---|---|
| Calculate capital gains | ACB tab → United Kingdom → Tax Year → Calculate |
| View financial results | Calculation History panel (Zone D) |
| Get per-disposal detail | Reports tab → Capital Gains Detail |
| Get SA108 figures | Reports tab → SA108 Summary |
| See pool balance | Reports tab → Pool History |
| Fix currency issues | Click “N pending” in Converted column |
Jurisdiction: United Kingdom Tax Authority: HM Revenue & Customs (HMRC)
Last Updated: March 2026 PrivateACB Version: 2.4