How the tools work, where the prices come from, and what they leave out
Every number on DeFiCalculator.ca comes from four tested engines that run in your browser: an ACB ledger, a concentrated-liquidity simulator, day-by-day replays for loans, staking and DCA, and a costs model. Prices are yours or scenario paths; exchange rates and benchmarks are dated Bank of Canada data.
Where the prices come from
Crypto price paths are either your own daily price file (read in your browser) or a scenario path built from a few turning points you set, or from a crash's publicly reported fall.
- Your own prices. Paste or upload daily prices (a date column and a close or price column) from your exchange or any source you're allowed to use. They are read in your browser and never uploaded. US-dollar prices are converted with the Bank of Canada rate for each date.
- Scenario paths. A path through a starting price, a lowest point, when it happens and where it finishes, with optional day-to-day swings from a fixed seed so the same inputs always give the same path. It is not price data.
- Crash scenarios. Built from falls reported in the press, with the publisher, date and link shown next to each: a straight fall to the reported low, then flat. Real crashes bounce on the way down and wick lower within a day.
- Bank of Canada data. US dollar to Canadian dollar conversions use the Bank of Canada's daily exchange rate (Bank of Canada data; converted by DeFiCalculator.ca). Posted GIC and savings rates (series V80691338–V80691341) observed 2026-10-28; USD/CAD to 2026-10-30. The Bank does not endorse this site.
We don't ship third-party crypto price history: the sources we checked either forbid reuse on a commercial site or require a signed licence.
The ACB engine
- Identical properties are pooled across every wallet and exchange: the cost per unit is the average cost of the units you hold.
- A swap is a disposition of what you give up at fair market value plus an acquisition of what you receive at the same value. If your file has no CAD value, the engine values it from a price file you add for that coin (what you received first, then what you gave); otherwise it flags the row for you to fill in.
- Rewards are acquired at their value when received; that value is income and becomes their cost.
- A fee paid in crypto is a small disposition of the fee coins, and its value is an outlay of the trade it paid for.
- Superficial loss: denied share = min(units sold, units acquired from 30 days before to 30 days after, units held at day 30) ÷ units sold; the denied amount is added to the cost of the remaining or repurchased units. Only the same coin counts; affiliated persons (such as a spouse) are not modelled.
- One-half of a net capital gain is taxable (the inclusion rate in force; the proposed increase was cancelled in March 2025). The engine treats crypto as capital property; if your trading is a business, the whole profit is income.
The position simulators
- Liquidity positions use the concentrated-liquidity formulas from the Uniswap v3 whitepaper; full range is the special case of an unlimited range. Fees are your estimate, accrued daily only while the price is in range, optionally scaled by the range's capital efficiency.
- Loans: health factor = collateral value × liquidation threshold ÷ debt, day by day, converting between US and Canadian dollars at the Bank of Canada rate for each date where it matters. Liquidation penalties and partial liquidations are not modelled.
- Staking: rewards accrue at your rate after commission and are credited on the network's payout schedule, each valued at that day's price on your path.
- DCA: each purchase is the amount minus any flat fee, at that day's price plus the spread you enter.
Checks the engines pass
| Check | Result |
|---|---|
| ETH loan, 80% threshold, through ETH's reported May 2021 fall (−53%) | highest safe starting LTV 37.6% = 80% × (1 − 53%) |
| Scenario paths | hit the start, lowest point and end you set exactly, with or without day-to-day swings |
| Full-range LP loss vs holding when price doubles | −5.72%, the constant-product formula |
| Concentrated range efficiency | 1 ÷ (1 − (lower ÷ upper)^¼) for a geometrically centred range |
| Multi-coin ACB vs the single-coin ledger | identical gains, denied losses and ending cost on the same records |
| Superficial loss, sell 10 and rebuy 4 within 30 days | 40% of the loss denied and added to the new cost |
Automated tests covering the engines, the price file and the site run before every release. Corrections are welcome through the contact page. Last full review: Nov 1, 2026.
Worked example: from your fee estimate to daily fees
| Starting price | $3,000 |
|---|---|
| Range | $2,700 to $3,330−10% / +11%, roughly centred in ratio terms |
| Your in-range fee rate | 10% |
| Capital efficiency | 19.58×1 ÷ (1 − (lower ÷ upper)^¼) |
| Equivalent full-range fee rate | 0.51% |
| Fees per day in range on $10,000 | $2.74zero on any day the price is outside the range |
This is why a narrow range looks generous and isn't free: the same capital earns about ten times the fees of a full-range position while the price stays inside, and nothing once it leaves.
Open this range in the LP simulator →Computed 2026-11-02.

Data published on this site
| Dataset | What it holds | Source | Date |
|---|---|---|---|
| Crash scenarios | 5 crashes: BTC and ETH falls as reported | Bloomberg, Fortune, CoinDesk, The Block, Cointelegraph (each linked on the loan stress test) | checked 2026-11-01 |
| Canadian deposit benchmarks | 1-year GIC 2.45%, 3-year 3.20%, 5-year 2.75% | Bank of Canada posted rates, V80691338–V80691341 | observed 2026-10-28 |
| USD/CAD daily rate | Bank of Canada daily average, used for every US-dollar conversion | Bank of Canada series FXUSDCAD | to 2026-10-30 |
| Staking network presets | 5 networks: payout schedule and exit wait | Each network's own documentation (linked on the staking calculator) | checked 2026-11-01 |
Changelog
- : Crash scenarios: ETH's March 2020 fall corrected to 44% (DappRadar, the whole day to the low; CoinDesk's 33% was written before the low) and its fall to June 18, 2022 to 80% (Investing.com); the bitcoin Terra figure is labelled as the reported floor. Staking sensitivity grid fixed for rising prices. "Backtest" renamed "scenario replay" until licensed price history ships.
- : New look; every page now opens with a short answer and has its own worked example computed by the engines. Ask Mitey chat added. Embeddable calculators at /embed. The cookie page merged into the privacy policy.
- : Exchange CSV import for Coinbase, Kraken, Newton, Shakepay, NDAX and Bitbuy (Koinly-format statements), with a column-mapping step for anything else, including Wealthsimple.
- : Saved scenarios (this browser only) on every workbench tool; shared links re-read when you follow an in-site link.
- : Rebuilt as the Canadian crypto position and tax workbench: multi-coin ACB engine, LP simulator, staking, loan-stress and DCA replays, stablecoin vs GIC, fees vs yield. Rules and risk guides moved to DecentralizedFinance.ca with redirects.
- : Prices: no third-party crypto price history is shipped. Tools replay your own price file or a scenario path; crash scenarios are built from publicly reported falls.
What the models leave out
Smart-contract failures, oracle errors, depegs, platform insolvency, governance changes and slippage on large trades are not in the price history. For how those failures happen, and what the CRA says about each DeFi activity, see DecentralizedFinance.ca. Treat any output as one input to a decision, not the decision.
What this means for you
If a number on this site matters to a decision, you can recompute it: the formulas are on each tool page, the sources are dated, and the engines are covered by automated tests that run before every release.
The models leave out smart-contract failures, depegs, liquidation penalties and slippage on large trades. Treat any output as one input to a decision, and read the risk guides on DecentralizedFinance.ca before committing money.
Definitions
- Capital efficiency
- How many times more fees a concentrated range earns per dollar than a full-range position, while the price stays inside it.
- Health factor
- Collateral value × liquidation threshold ÷ debt. Below 1.00 the position can be liquidated.
- Superficial loss
- A loss denied because the same property was acquired within 30 days before or after the sale and still held 30 days after.