A tax engine that runs on your own ledger
Krosos already holds every trade, deposit and reward you track. The tax engine replays that ledger and turns it into the number your declaration needs, with the working shown. No second tool, no re-uploading your history to yet another service.
1. One pass over everything
The engine walks your ledger chronologically and matches every disposal against the acquisition lots that funded it: FIFO (oldest units first) or weighted average (pooled cost), your choice per portfolio. It reads only the ledger, so manual entries, CSV imports and synced transactions all count the same.
2. Three buckets, three rates
Capital gains, income (dividends and rewards) and interest are reported separately, each at its own flat rate. Losses and tagged costs are subtracted from the year's gains, then the annual exemption, then the rate. In that order, per year, per portfolio.
3. Tag the exceptions
Any row can be tagged: dividend, interest, reward, cost (fees and advisory, deducted from the net gain), lost/stolen (disposed at €0, so the remaining basis becomes a loss), or excluded entirely. "Always tag like this" rules auto-tag future imports, up to a quantity ceiling you set, and never override a manual tag.
4. Declare what the ledger can't know
Positions that predate Krosos get a declared basis: the position's value or per-unit cost on an as-of date, in any currency, converted at the ECB reference rate of that date. Declarations override unknown-cost lots without touching your P/L figures.
5. Belgium's new 10% capital gains tax, built in
The Belgium preset applies the 10% rate and the €10,000 annual exemption, resets every position's basis to its 31 December 2025 value (the 2026 "photo"), and applies the transitional higher-of rule (valid until end 2030) that keeps your higher acquisition cost when the photo value is lower. Presets also ship for Belgium (company, 25%), France and Germany (26.375%). All editable, all per portfolio, and an "All portfolios" view that sums each at its own rates.
New to the 2026 rules? Read Belgium's new 10% capital gains tax, explained, with worked examples.
6. Every figure explains itself
The History tab grows a Gain column; click any figure and the exact lots appear: each buy, opening, adjustment or declaration with its quantity, cost and per-unit price, and a pencil straight into the source row.
7. Wrong in the safe direction
Where the engine can't know a cost, it counts it as zero, so the estimate is over-stated, never hidden, and flags the row under Needs attention (no-basis lots, oversells, partly-sold openings) until you resolve it.
What it isn't
Not tax advice, and honest about scope: no FX gains on foreign cash, no progressive brackets, no holding-period rules. The output is a careful estimate to bring to your accountant or declaration, with every number traceable to the rows that produced it.