Coinbase and Crypto.com App imports, and the new website
New Coinbase — all four generations of the transaction export are read; a Convert is a sale and a purchase, a coin-pair trade records both coins, and moving ETH into staking is a transfer
New Crypto.com App — the activity export is read: buys at what you paid, cashback, interest and staking rewards as income, card purchases and top-ups, Earn moves as your own coins
Improved The Handbook rewritten — every chapter names the screens, columns, buttons and messages as the program shows them
Improved The program names the seven exchanges it reads; any other CSV is read column by column in the import window
Fixed US long-term means more than one calendar year, not 365 days — the calculation, Form 8949, Schedule D and Lot Tracking all decide the same way
Fixed Wealthsimple: the fee is no longer counted twice after a column edit
Fixed A row with no buy or sell side is no longer silently dropped — the Review tab lists it as a warning and says the row is left out
Before you upgrade: no database upgrade — 2.18.0 can still open the database afterwards. If you imported a Crypto.com App export in 2.18.0, delete that import and import the file again, then recalculate. US users: recalculate, because a sale one year and one day after the purchase can move to long-term.
Calculations checked across four jurisdictions, and a new Import window
New The Import window — the whole file on screen before anything is imported: how each column is read, what each transaction type means for tax, and how every row will be imported
New Wealthsimple Crypto exports are read directly
Improved Database dialogs rebuilt — one set of rules from the start screen and the File menu; password changes and database copies are checked before they report success; remembering a password is a checkbox you can untick, and forget later in Settings
Improved Every calculation stays available in Reports, and every report names the calculation it came from
Improved The T1135 asks instead of guessing where each account holds your property
Fixed Corrections to transfers between your own accounts and the loss rules, Kraken and Shakepay income, and many reports
Before you upgrade: opening a database in 2.18.0 upgrades it for good — 2.15.1 can't open it afterwards, so export a copy first if you want a fallback. Your T1135 will show "Not Yet Placed" until you record each account in Settings → Foreign Property Status; no figure has changed. Exports may differ from older ones in the last digit; the new figure is correct
New The installer and the application are now code-signed — both carry a publisher signature (Robert Vassov) with a trusted timestamp. Windows shows the publisher instead of "Unknown publisher", and you can confirm it yourself: right-click the file → Properties → Digital Signatures. A new certificate has no reputation yet, so SmartScreen may still warn for a while: More info → Run anyway
Fixed Smaller download — 2.15.0 accidentally packaged an inert internal documentation tool next to the app; it is gone, the installer is about 2 MB smaller, and installing over 2.15.0 removes the stray file
No change to import, calculation, or reports — figures on 2.15.1 are identical to 2.15.0. No database upgrade
The Review tab, the Handbook & year-less calculation
New The Review tab — a new workspace for verifying your figures: walk any asset's history with running balances and source line numbers, correct a value in place, or accept a small explained difference. Every change is recorded as your decision, timestamped, and fully reversible — your imported data is never edited
New Calculate once, view any year — the engine now walks your whole history once and tax years become views: pick a year and the dashboard, reports, and status badges follow instantly, with jurisdiction-correct year boundaries
New The PrivateACB Handbook — the full manual now ships inside the app (Help menu): seventeen chapters, searchable, readable offline, and written for the exact version you're running. Reference tables are generated from the program's own registries, so they can't drift from its behavior
New The Resolution Guide — every check the app can raise now has a guide entry in its own window: what the finding means, your options, what each option records, and whether it can be undone
New Balance check — a new pre-calculation check independently recomputes every asset's holdings and points to the first row where anything diverges
Fixed Accuracy — on-screen report totals now always show the engine's exact figures (three display-layer rounding cases fixed; PDFs were unaffected), US Account-by-Account results no longer mix with universal ones, and more files resolve their fee currency without asking you
New Dollar impact — open issues are priced where prices exist, so you can see what a discrepancy is actually worth before spending time on it
Automatic one-time database upgrade on first launch. Note: once a database has been opened in 2.15.0, it cannot be opened by earlier versions — copy your .db file first if you want a fallback
Because of the accuracy fixes, recalculating — or re-importing files with crypto-denominated fees — can produce slightly different, corrected figures. Re-importing the same file is safe: duplicate detection recognizes your existing rows
Maintenance release — accuracy, consistency and polish
Fixed Fees charged in crypto are recorded exactly — when an exchange takes its fee in the coin being traded, the importer now determines the fee's currency from the file itself and records quantities as they actually moved: what arrived on a buy, what left on a sell. A fee whose currency can't be determined is kept and flagged in the Preflight Report instead of being guessed
Fixed UK Annual Exempt Amount correct for every selectable year — including 2017/18 through 2019/20, which previously used a later year's figure — and the table now reaches back to 2009/10. UK Pool History opening balances no longer include purchases from later years
Fixed Working papers respect the selected year — the ACB Summary, Lot Tracking, and Wash Sale reports now scope their figures to, and print, the tax year you selected, in every header, footer, and filename
Improved The tax-year dropdown reads your data — every year your records actually touch is selectable, with jurisdiction-correct year boundaries, including years older than the previous fixed list allowed
Fixed Imports speak up — a file that imports zero rows now says so instead of reporting quiet success, and "Fetch All Missing" tells you when it fetched nothing and names the dates no source covers
Improved Cleaner report filenames — jurisdiction-correct year labels (2024-25 for AU, 2009-10 for UK), no redundant date suffixes, and one consistent timestamp format on every report
Polish — clearer preflight labels on blocked assets, a hover that states whether an asset can calculate, a succinct one-line PDF footer, and accessibility touch-ups
Automatic one-time database upgrade on first launch. Note: once a database has been opened in 2.12.0, it cannot be opened by earlier versions — copy your .db file first if you want a fallback
Because of the accuracy fixes, re-importing a file with crypto-denominated fees, or recalculating affected years, can produce slightly different — corrected — figures. Re-importing the same file is safe: duplicate detection recognizes your existing rows
New The Preflight Report — every asset row now unfolds into a five-part report (Data · Prices · Your decisions · Transfers · Engine check) that shows what passed as well as what didn't, states each finding as a plain sentence, and shows the actual rows behind it — including the source file and the exact line number. A "Copy report" button captures the whole thing as plain text for your accountant
New Transfer assertions — when a deposit has no matching withdrawal in your imports, you can now resolve it in place: mark the coins as your own, set aside on-chain dust, or match the deposit to the withdrawal leg that's already in your data (no time limit — cold-storage round trips of any length pair correctly). Every decision is recorded as yours, timestamped, and fully undoable, and none of them ever modify your imported data
Fixed Deposits only block the years they can actually affect — a deposit that arrived after the tax year you're calculating no longer holds up that year's calculation. It's shown, labelled, and left out of the way
Improved Internal movements recognized automatically — rows an exchange labels as staking-program movements (e.g. NDAX's STAKING / DEPOSIT and REFUND), and rows a wallet exporter marks as unknown, are now classified without asking you. Your staking rewards are still counted as income exactly once
Fixed Honest staleness badge — editing or deleting a transaction now flips the affected asset to "Needs Calculation", so a result computed from data you've since changed is never presented as current
Fixed Consistent results on repeat runs — transactions sharing an identical timestamp are now always processed in the order they appear in your file, so the same data always produces the same numbers
Improved Tax-bite glance replaces the Tax-Year Bridge graph on the dashboard — the same information, read at a glance
Fixes — the "Checked N hours ago" timestamp on cached checks now shows your local time correctly; transfer quantities display without rounding artifacts; the Create Transfer button now appears only under US Account-by-Account tracking, where it means something
Automatic one-time database upgrade on first launch. Note: once a database has been opened in 2.11.0, it cannot be opened by earlier versions
ACB Calculator — reliable batches, clearer history
Fixed Cancelled calculations now stay cancelled — stopping a calculation shows a distinct "Cancelled" status that survives an app restart, instead of appearing as "Failed"
Improved Redesigned calculation history — clearer columns with correct currency symbols and fiscal-year labels (including AU/UK tax years), and money figures that no longer get truncated
Fixed More dependable batch calculations — "Calculate All" and "Stop All" behave predictably; stopping a batch no longer throws a spurious "timed out" warning or briefly stalls the queue, and a batch finishes even if you switch away from the tab
Fixed Accurate price & staleness badges — the "missing prices" and "out of date" indicators now respect your reporting currency and look across all years, so they no longer contradict the Market Data tab
Fixed Sharper pre-calculation checks — validation now matches the exact method (FIFO / LIFO / HIFO) and asset selection you're about to calculate, and correctly handles last-day-of-year disposals
Fixed Exact manual-transfer quantities — high-precision token amounts (e.g. 18-decimal coins) are recorded without rounding drift
Automatic one-time database upgrade on first launch adds the new "Cancelled" status and refined validation — nothing to do; your existing history is preserved
New New free, keyless deep-history price tier — DefiLlama (top-100 coins) and Binance (gaps + coins not on CoinGecko) replace CryptoCompare, whose free tier was retired by the provider. No API key required
New Deep-history prices for AU and UK — historical USD prices are now cross-rated into AUD and GBP automatically via keyless Bank of Canada FX, matching what CA and US users already had
Deep-history prices (>365 days) cross-rated from USD to your reporting currency during the fetch — nothing to configure
Visible price-fetch spinner, including over Remote Desktop sessions where animations are reduced
CoinGecko Pro keys now unlock full CoinGecko history (the 365-day limit applies only to the free Demo tier)
Note: deep-history FX uses Bank of Canada series from 2017 onward; pre-2017 dates in CAD/AUD/GBP reports fall to manual entry. Binance is unavailable to US users (provider geo-restriction)
Schedule 3 Expenses column — now displayed in CAD, matching Proceeds and ACB. Previously the column showed the fee in its original transaction currency (often USD for USD-quoted trades), because the report builder read the fee directly from the source trade record before the engine’s currency conversion was applied. The Gain/(Loss) column has always been calculated in CAD using the converted value, so the bottom-line capital gain or loss is unchanged. Re-exporting Schedule 3 from 2.8.1 produces a form where every column reads in your reporting currency
Scientific-notation values now parse — assets priced below $0.000001 per unit, and CSVs that have been opened and re-saved in Excel, can produce values like 6.37442E-07 in the file. Previously the parser only accepted plain decimal notation, which caused the entire import to fail when a single row used scientific form. All five numeric parse sites in the import pipeline now accept both forms
Improved Tax-Bridge graph redesign — labels stay readable across every year, from quiet to high-activity
New Read-the-graph explainer — click the ⓘ next to TAX-YEAR BRIDGE for a plain-language guide with rules specific to your jurisdiction (ACB, lot-based, CGT discount, or Section 104)
New Configurable tax rates — US long-term capital gains dropdown (0% / 15% / 20%) and UK income tax dropdown (20% / 40% / 45%), independent of the CGT slider
Fixed Sharper tax math — US Schedule D Part III netting (short-term losses offset long-term gains), AU CGT Schedule Q18 dashboard figure matches the report, multi-method users (FIFO / LIFO / HIFO) no longer see over-counted insights
New New insight cards — AU CGT-discount and UK AEA usage
Fixed Four previously-hidden dashboard insights now visible — Superficial Loss, Wash Sale, Zero Cost Basis, Stale Calcs
Legacy databases open cleanly — no more "Schema sync failed" on older files
Preflight respects the current method after jurisdiction change
Imports no longer leak currency conversions across jurisdictions
Manual price entry redesigned — all missing dates shown at once (was capped at 10), streamlined two-column layout, keyboard navigation with Enter and arrow keys
Currency status fix — assets with crypto-to-crypto swaps no longer show "?" in the Currency Conversion column
Precision hardening — floating-point tolerance widened for assets with thousands of units. Eliminates false "insufficient quantity" errors on high-volume tokens
Kraken profile fix — column mappings (like order ID) no longer lost when customizing the import wizard
Treemap tooltip — stays within the window on edge cells instead of overflowing off-screen
Tax Insights dark theme — Method Comparison chart no longer shows white backgrounds
"Fetch All Missing" tooltip — hover to see which price sources will be used
Kraken Ledger+Trades merge, precision fixes & Market Data improvements
New Kraken Ledger+Trades Merge — import both Kraken CSVs together. The Trades file enriches the Ledger with exact execution prices and fees, matched by transaction ID. Merged file saved to Downloads for your records
Fixed FX rate auto-chunking — Bank of Canada and Federal Reserve rate fetches automatically split multi-year date ranges. No more "range too large" errors
Holiday and weekend rate gaps resolved — single-day rate requests on holidays and weekends now return the last available rate
CryptoCompare single-date fix — fetching a price for a single date no longer fails
Fee handling fix — "Fees in Crypto" checkbox no longer corrupts fiat-denominated fees. Safe to enable on mixed fee data
Precision fix — calculations no longer reject sells due to floating-point dust
Swap fee attribution — cross-asset swaps place fees on the correct side, preventing pool corruption
Import audit trail — validation warnings now saved with each transaction instead of being discarded
Kraken Trades CSV validation — standalone Trades imports blocked with guidance to use the merge workflow
New CryptoCompare secondary price source — historical crypto prices back to 2010, no more 365-day free tier limit. Zero API key required.
New Unified "Fetch Prices" — one click auto-routes dates to the best source. CoinGecko for recent, CryptoCompare for historical. Per-source breakdown with results.
New "Fetch All Missing" button — fetch prices for all assets at once. No more clicking asset by asset.
New Exclude & Restore Assets — soft-delete dust tokens and spam airdrops without losing data. Multi-select. Fully reversible.
Fixed Multi-jurisdiction price gaps — switching jurisdictions now correctly shows missing prices for that currency. Previously, fetching CAD prices hid USD/GBP/AUD gaps.
New Oracle Intelligence Phase A — 11 data-driven inference passes auto-map your CSV columns, even on headerless files. Foundation for upcoming AI-assisted imports.
Import quality scoring — automatic analysis catches suspicious mappings, price anomalies, and arithmetic mismatches before you commit. Yellow and red alerts with specific fix guidance.
Per-row data quality notes right in the preview — no more guessing which rows need attention
Back-navigation — spotted a problem? Jump back to fix column mappings without restarting the wizard
Auto-populate prices — price conversions automatically applied after import using your existing market data. Fewer manual steps.
Smarter price extraction — exchange-provided prices (like Netcoins Rate) used directly instead of computed approximations
Bidirectional & profile hardening — zero-amount classification, fee currency fallback, and header validation for more reliable imports across all formats
Import pipeline hardening — 5 fixes from full architecture assessment
Before you upgrade from 2.3.0: create a new database and re-import your CSV files. All calculations reproduce automatically. No automatic migration from 2.3.0 databases.
ACB performance: 835 transactions/second (3.2x faster than v1)
12 specialized tax reports (PDF and CSV export)
AES-256 encrypted local database
Installer size reduced from 195 MB to 16 MB (NSIS)
Bank of Canada, FRED, and CoinGecko market data pipelines
7 deletion strategies with full integration test coverage
Version 1
PrivateACB version 1 was built with Electron and released in December 2025. Version 2 is a complete rewrite in Rust (Tauri): the same features, a much smaller installer and faster calculations.
1.13 Dashboard command center, activity log, trial UX
1.12 Performance optimization, custom income types
1.9 CSV price import, validation improvements
1.8 CoinGecko price fetching, market data dashboard
1.7 Stake.tax integration for Solana staking
1.6 Bidirectional CSV support (Newton, Shakepay)
1.5 Enhanced audit reports with source verification
1.3 Flexible US cost basis methods (FIFO, LIFO, HIFO)
1.2 Aggregated tax reports across all assets
1.1 Smart transaction classification
1.0 Initial release — Canadian ACB, US lot tracking, superficial loss, wash sale, encrypted database