Any period · Any broker · Any currency · Lot-matched

Realized Gains Calculator

Calculate your realized capital gain for any date range, across every broker you use, in any currency. FIFO/LIFO/SpecID/Average matched lot-by-lot, historical FX applied at trade date, ready for tax filing or portfolio review.

Read-only broker access
Historical FX at trade date
14 jurisdictions
Lot-level audit trail
Methods:
FIFO LIFO Specific ID Average Cost HIFO
S Schwab USD account AAPL 100 sh @ $145 (May 2022) I IBKR EUR account AAPL 50 sh @ €170 (Apr 2024) € → $ @ 2024-04 rate AIV Consolidated FIFO ledger Display currency: USD · Historical FX REALIZED GAIN (2025) +$8,500 LT FIFO match · Schwab lot consumed · IBKR lot held

Realized Gains Calculator: One Figure Across Every Broker and Currency

For period X, across all your brokers and currencies, what is your realized gain? This page answers that question — lot-matched, historical-FX-correct, ready for tax filing.

Who this page is for

If you sold anything this year across more than one broker — possibly in more than one currency — this page is for you.

The most common setup we see: Schwab or Fidelity for the US side, IBKR or DeGiro for European or Asian markets. Or a UK broker plus a US broker for ADRs. The moment a single ticker lives at two brokers, the realized-gain figure your tax return needs — FIFO-matched lots across the combined position with historical FX applied at trade date — cannot be produced from any single broker's report. This page shows how to actually get the right number.

What “realized gain” actually means

Five distinctions are doing most of the work whenever someone reports realized gains incorrectly. Each one is the kind of detail tax software and broker dashboards quietly skip, and each one moves the final number by enough to matter.

Realized vs unrealized

Realized = the position closed; gain locked in and taxable in the year of disposal. Unrealized = paper, not taxable. Only realized gains belong on a tax return.

Cost-basis method changes the number

FIFO matches oldest lots first; LIFO matches newest; SpecID lets you pick; Average Cost uses the weighted mean. Same trades, different gain — same proceeds, different tax. See method comparison.

Multi-currency uses historical FX, not spot

A €170 buy in 2024 is not worth €170 × today's rate when you sell. We apply the rate at trade date for cost basis and at sell date for proceeds — the only method tax authorities accept.

Multi-broker consolidation is the silent killer

Each broker reports its own lots only. Filing broker-by-broker mis-allocates basis and term whenever shares were bought on one broker and sold on another. See the consolidated tax report across every broker.

Term classification is per-jurisdiction

US splits at >1 year (LT/ST). Australia gives a 50% CGT discount after 12 months. UK pools under Section 104. Spain uses savings-income bands. We apply the rule for your jurisdiction at export time.

How it works: 3 steps

The flow is built around the principle that nothing leaves your hands. Brokers connect read-only, your data stays private, and the final artifact is the actual filable export.

Connect → Choose period & method → Export

1
Connect your brokers — Read-only via SnapTrade for IBKR, Schwab, Fidelity, Vanguard, E*TRADE, DeGiro, Trading 212, and 24 more. Or upload CSV / activity statement / 1099-B for any broker we don't sync directly. We can never execute trades.
2
Pick the date range and method — Calendar year, fiscal year, custom window. Choose FIFO, LIFO, Specific ID, Average Cost, or HIFO per holding. Pick your display currency. Historical FX is applied automatically at trade date and sell date from a published source.
3
Export the filable artifact — Per-broker reconciliation against each 1099-B / contract note, lot-level audit trail, and your country's filing format: Schedule D + Form 8949, SA108, Modelo 100, Anlage KAP, MyTax CSV, or universal CSV. Sign, attach, file.

Worked example: cross-broker, cross-currency

2025 tax year. You hold AAPL across two brokers, in two currencies. Your display currency is USD. The numbers below are the load-bearing block of this page — the calculation tax software almost always gets wrong, with FX handling that no single broker performs end-to-end.

Buy history (consolidated FIFO ledger)

Lots open before the 2025 sale

Lot Broker Trade date Qty Local price FX @ trade date Cost basis (USD) Held @ sell Term
A Schwab (USD) 2022-05 100 $145.00 1.0000 $14,500 ~3.4y LT
B IBKR (EUR) 2024-04 50 €170.00 1 EUR = 1.0700 USD $9,095 ~1.5y LT
Total 150 $23,595

The 2025 sell

100 shares on Schwab, sold 2025-10 at $230.00 = $23,000 proceeds (USD). The question: against which lots does FIFO consume the 100 shares?

FIFO match across the consolidated ledger

Method: FIFO · Display: USD · FX: historical at trade date

Lots consumed to satisfy the 100-share sale at $230

Step Lot consumed From Qty Cost (USD) Proceeds (USD) Realized gain Term
1 A Schwab 100 $14,500 $23,000 +$8,500 LT
Total 100 $14,500 $23,000 +$8,500 LT

Realized gain for 2025: +$8,500 long-term

The IBKR lot (B) stays open. Its €9,095 basis is preserved at the historical FX rate of $9,095 — ready for whatever year it's sold. Spot FX never re-touches it.

Why neither broker shows this answer

Schwab's 1099-B matches the 100-share sell against its own $14,500 lot and reports +$8,500 LT — correct here only because FIFO happened to consume the Schwab lot. Sell 50 more next year and Schwab will report “basis unknown” for the IBKR lot. IBKR's report is in EUR, doesn't see Schwab's trades, and would use today's spot FX if asked to convert — wrong for tax. No broker reconciles cost basis across the consolidated ledger, applies historical FX correctly, and shows the answer in your chosen display currency.

Want a smaller gain? Switching to SpecID-optimal can defer the LT gain by keeping the older lot open and selling the newer one instead. See the method comparison for the five-method side-by-side.

Read-only broker access, results in minutes, your portfolio stays private.

Run this on your own portfolio

Connect your brokers (or import CSVs) and we'll show you the realized gain for any date range, in any currency, against every connected account.

Start free

How AllInvestView compares

Four honest alternatives investors actually try when they hit the multi-broker, multi-currency realized-gain problem. We win on consolidation, historical FX, and per-jurisdiction term classification; other tools win on other axes — we say so.

Capability AllInvestView Broker dashboards Spreadsheet Generic portfolio trackers
Realized gains consolidated across multiple brokers
Historical FX at trade date (multi-currency basis)
FIFO / LIFO / SpecID / Average — switchable per holding
Per-jurisdiction term classification (US >1y, AU 12m, UK pool, ES, DE)
Custom date range — not just the calendar tax year
Country tax-format export (Schedule D, SA108, Modelo 100, KAP)
Dividends + withholding included in income tab
Options realized P&L (assignments, expirations, closes)
Bond accrued interest at sale
Corporate actions (splits, spin-offs, mergers adjust basis)
Lot-level audit trail with broker source attribution
Wash-sale aware (US) — gracefully ignored elsewhere

Broker dashboards are accurate within one account and one currency. Spreadsheets work until corporate actions, FX, or wash sales appear. Generic trackers show portfolio value but rarely produce a defensible realized-gain figure. AllInvestView is built for the case where all three break — see the consolidated multi-broker tax report for the wider workflow.

Ready to calculate your realized gains?

Free for 14 days. Read-only broker access. No card to start. Cancel anytime.

Connect your brokers

Jurisdictional term rules at a glance

Set your jurisdiction once in Settings → Tax. The calculator applies the right rule, the right rate, and the right export form. Six representative jurisdictions below; full set is 14.

How term classification differs by country

Jurisdiction Term rule Treatment
United States>1 year = long-termLT taxed at 0/15/20%; ST at ordinary rates. Schedule D + Form 8949
United KingdomNo term splitSection 104 pooling + same-day + 30-day matching; annual allowance. SA108
AustraliaHeld ≥12 months50% CGT discount on the gain. MyTax CSV
SpainNo term splitSavings income bands (19/21/23/27/28%). Modelo 100 / Modelo 720
GermanyNo term split (post-2009 acquisitions)Flat 25% Abgeltungssteuer + Soli. Anlage KAP
NetherlandsNo realized-gain taxBox 3 deemed return on wealth. Wealth disclosure summary

Set your jurisdiction once in Settings → Tax. The realized-gains calculator applies the right rule, the right rate, and the right form at export.

Frequently asked questions

Realized means the position is closed: the gain is locked in and taxable in the year of disposal. Unrealized is paper, not taxable. Only realized gains appear on a tax return; unrealized matter only for net worth and risk monitoring.

Trades from every connected broker (read-only via SnapTrade) feed a single consolidated FIFO/LIFO/SpecID ledger. Lot matching happens globally, not per-broker, so a buy on IBKR can be matched against a sell on Schwab. See the multi-broker tax report for the full consolidation workflow.

It depends on price trajectory and holding period. SpecID-optimal usually wins; HIFO is a close second in rising markets. The same trades can produce a multi-thousand-dollar tax swing across methods. See the five-method worked example on the FIFO cost basis tracker.

Historical FX at trade date for cost basis, historical FX at sell date for proceeds. Spot FX is wrong for tax. Daily rates are pulled from a published source, stored at trade time, and never re-applied retrospectively. The IBKR lot in the worked example above keeps its $9,095 USD basis indefinitely, regardless of where EUR/USD moves later.

Any range. Calendar tax year, fiscal year (UK 6 Apr – 5 Apr, AU 1 Jul – 30 Jun), quarter-end, custom (e.g., “January through the day I emigrated”). The calculator runs the lot-matching over whatever window you set — including ranges that cross a tax-residency change.

Dividends are realized income, not realized capital gains — they live on a separate line on the return. AllInvestView tracks both: realized gains on the capital-gains export, dividends + withholding on the income export. Both pull from the same trade ledger.

US splits LT (>1y, 0/15/20%) vs ST (ordinary). UK uses Section 104 pool + same-day + 30-day matching with an annual allowance. Spain taxes within savings-income bands. Germany flat 25% + Soli. Australia gives a 50% discount after 12 months. Set your jurisdiction once; the calculator applies the right rule.

Yes. Schedule D + Form 8949 (US, with wash-sale code W flagged), SA108 (UK), Modelo 100 with capital-gains annex (Spain), Anlage KAP (Germany), MyTax-compatible CSV (Australia), plus a universal CSV. The export matches the calculator output exactly — no spreadsheet step in between.

Yes for assets you record manually or import via supported exchanges. US users: from 2025, Rev. Proc. 2024-28 requires per-wallet basis (universal pool is gone) — AllInvestView tracks lots per wallet to match. Stocks remain our primary depth.

Disclaimer: This page is informational and educational. It does not constitute tax, legal, or financial advice. AllInvestView is a calculation tool that produces realized-gain reports from your transaction data; it does not replace a qualified tax professional. Always review generated reports before filing. For complex situations (estates, foreign trusts, options assignments with §1256 implications), consult a CPA or qualified tax advisor.

One realized-gain figure. Any period. Every broker.

Private by default. Read-only broker access. No AI training on your data. Generate your realized capital gains report in minutes.

AllInvestView Team

We're financial engineers and DIY investors building the portfolio tracker we wanted for ourselves. AllInvestView is for equity investors who need more than what their broker shows them — cross-broker realized-gain math, historical FX, and audit-ready tax exports.

Realized gains calculator Free for 14 days
Start free