Koinly offers a powerful migration feature, which can be used to migrate between cost-basis methods, as well as cost-tracking methods.
The feature can be found under the 'Cost basis' section in your settings.
Why use migrations?
Migrations allow you to apply different tax settings to different time periods. This can be useful if you want to change your settings without affecting your previous years tax reports. If you were to simply change your setting without using a migration, then the new setting would apply to your entire transaction history.
How to add a cost-tracking migration
Note that Koinly only supports migrating from the "universal" cost-tracking method to wallet-based tracking. It's not currently possible to migrate from wallet-based tracking to universal tracking.
If you are a US-based taxpayer and want to learn more about the 2025 IRS requirements for cost-tracking, see this article.
To set up a cost-tracking migration, follow these steps:
Go to Settings → Cost basis
Select 'Add migration'
Select the Date and Migration type
Select Save to confirm the migration
After saving the migration, you can enable Wallet-based cost tracking
✅ Once done, all previous transactions will follow the universal cost-tracking method, while new transactions from the migration date onward will follow wallet-based cost tracking.
Wallet-based tracking: How cost lots are allocated
Using the Lowest Cost → Biggest Wallet allocation method, Koinly assigns your lowest-cost tax lots to the wallets with the highest balance as of the migration date.
This ensures that cost lots are distributed efficiently while maintaining consistency across your portfolio.
Koinly will be adding a "migration report" that can be generated to see how the holdings have been allocated. This report will be available soon.
❗Important note about negative balances:
If any of your wallets are holding an excess amount of tax lots, then these will all be allocated to your smallest wallet, as per the allocation method.
This issue happens if you have any negative balances in the past. This can cause discrepancies in the ledger, as the amount that you have received since the negative balance occurred may be greater than your actual balance.
We strongly recommend that you fix any negative balances in your account, as you may otherwise be over-reporting your capital gains.
How to add a cost basis method migration
Cost-basis migrations can be added if you would like to apply different methods to different time periods.
Note that cost-basis migrations can only be used for FIFO, LIFO, HIFO, and 'Optimized HIFO'. It is not possible to change to/from other methods.
To set up a cost-basis method migration, follow these steps:
Go to Settings → Cost basis
Select 'Add migration'
Select the Date and Migration type
When creating the migration, you should select the cost-basis method that you would like to apply to transactions before the migration date
Select Save to confirm the migration
After saving the migration, you can set a new cost-basis method in your settings
✅ Once done, all disposals taking place on or after the migration date will use the method that you have selected in your settings, while the older disposals will use the method set in the migration