The Transaction Rebalancer is designed to address the needs of customers who wish to treat specific transaction types as non-taxable events (NTE) without triggering realized losses or gains while maintaining proper balance reporting. This feature simplifies the process, eliminating the need for manual adjustments, and is particularly beneficial for transaction types such as non-taxable events (NTE) and carry the same portfolio cost basis.
Why use the Transaction Rebalancer?
Customers want to maintain a consistent cost basis for certain types of transactions and treat them as non-taxable events to not trigger realized gains or losses on their portfolio. In simple terms, using this feature customers can remove gain and loss calculation for transactions it is deemed non-taxable.
We’ve listed examples of typical non-taxable events rebalancing:
- Staking
- Bridging
- Liquidity Pools
- Wrapping
- Internal Transfers: Customers perform various internal transfers, but these transactions may not be automatically recognized due to factors like off-chain movements, exchange limitations (e.g. Kraken), or internal accounting policies.
💡 Tip: Check with your accountant/accounting team regarding tax treatment for these activities in your jurisdiction. In the US, the treatment of these types of transactions is dependent on the customer (use our Transaction rebalancer), but in the UK they are treated differently.
Getting Started with the Transaction Rebalancer:
There are a few use cases for the transaction rebalancer and you can utilize the tool based on the type of transaction you would like to treat, the number of transactions, or even across workspaces.
A. Single movements - Staking/Unstaking, Bridging, Add/Remove position to/from liquidity pool, Wrapping
B. Multiple movements - Staking/Bridging/Liquidity Pool/Wrapping
C. Multi-workspaces internal transfer: internal transfer split into 2 different workspaces
D. Audit Trail and reverting
💫 Best practices: Customers should create a label for transaction types that will be altered using the rebalancer to be able to find them easily.
A. Staking/Unstaking, Bridging, Add/Remove position to/from liquidity pool, Wrapping
Let’s take an unstaking example:
Incoming | Outgoing | Cost Basis | G&L |
---|---|---|---|
$10 | |||
$10 | $12 | -$2 |
Use case 1: Create NTE and remove gain & loss
💡 Case 1 is particularly useful for staking and liquidity pool withdrawal with rewards included in the deposit side. In this case, clients might want to avoid matching the transaction value of the deposit side with the cost basis of the withdrawal.
-
Select withdrawal
-
Click on
Create NTE
💡 By definition if transaction value = cost basis → no G&L
Incoming | Outgoing | Cost Basis | G&L |
---|---|---|---|
$10 | |||
$12 | $12 | - |
All done! 🎉
See on Product: selecting one (or multiple) withdrawal movement
Use case 2: Create NTE to maintain portfolio balances
-
Execute case 1 to create the NTE
-
Select deposit and select withdrawal
-
Click on
Match Cost Basis
-
Optional: add a custom Non-Taxable Event label
💡 It carries the cost basis from the outgoing to the incoming to maintain the same balance.
Incoming | Outgoing | Cost Basis | G&L |
---|---|---|---|
$12 | |||
$12 | $12 | - |
All done! 🎉
See in Product: Selecting the deposit & the previously selected withdrawal in Step 1
B. Staking/ Bridging/Liquidity Pool/ Wrapping: Example with multiple withdrawal movements
Incoming | Outgoing | Cost Basis | G&L |
---|---|---|---|
$10 | deposit | - | |
$2 | $3 | -$1 | |
$5 | $3 | $2 | |
$3 | $3 | $0 |
Case 1: I only want to create a NTE
-
Select all the withdrawal movements
-
Click on
Create NTE
-
Optional: Optional: add a custom Non-Taxable Event label
Incoming | Outgoing | Cost Basis | G&L |
---|---|---|---|
$10 | deposit | - | |
$3 | $3 | - | |
$3 | $3 | - | |
$3 | $3 | - |
All done! 🎉
Case 2: I want to create an NTE and also maintain the same portfolio balance
-
Execute case 1 to eliminate all the G&L
-
Sum cost basis to get the total
-
Manually reprice the transaction value of the incoming with the withdrawal cost basis total (⚠️ You won’t be able to use the Match Cost Basis button in this instance)
💡Tips: to get the right rate you need to do total withdrawal cost basis/deposit volume = new rate
Incoming | Outgoing | Cost Basis | G&L |
---|---|---|---|
$9 | deposit | - | |
$3 | $3 | - | |
$3 | $3 | - | |
$3 | $3 | - |
All done! 🎉
C. Multi-workspaces internal transfer: internal transfer split into 2 different workspaces
💡 Companies that transfer assets between related entities (or workspaces) should recognize a new cost basis on the receiving entity but do not have to recognize gains and losses for the sending entity. Rebalancer works well here as it allows us to mimic what the internal transfer labels do.
Workspace 1
Incoming | Outgoing | Cost Basis | G&L |
---|---|---|---|
$10 | $12 | -$2 |
Workspace 2
Incoming | Outgoing | Cost Basis | G&L |
---|---|---|---|
$10 | deposit | - |
How to create an internal transfer in this instance:
- in the withdrawal movement, match transaction value with cost basis by selecting the movement and clicking on
Create NTE
. It will remove the G&L. Optional: add a custom Internal Transfer/ NTE label. Result:
Workspace 1
Incoming | Outgoing | Cost Basis | G&L |
---|---|---|---|
$12 | $12 | - |
- on the deposit side, if you don’t want their balances to be changed between the 2 movements, here is what you can do:
- Get the cost basis of the withdrawal movement and manually reprice the transaction value of the deposit movement with this cost basis.
- Optional: add a custom Internal Transfer/NTE label on both sides
Workspace 2
Incoming | Outgoing | Cost Basis | G&L |
---|---|---|---|
$12 | deposit | - |
All done! 🎉
D. Audit Trail and reverting
Currently, there are a few ways of checking the changes:
- Find through the labels allocated to the rebalanced transactions.
- Use the
Valuation Status
filter = Transaction with custom valuation. This will filter all the transactions with a custom rate, reducing the number of transactions to browse. - To revert a valuation, you can click on the ‘refresh’ icon and click save in the Transaction drawer like in the gif:
The team is constantly improving the app and will have further solutions to show these.
What reports would you see this in?
- Asset roll-forward
- You will see that on a deposit, the $USD amount deposited will equal the withdrawal amount
- Transaction history report
- Revised gain/loss and transaction value (which will match your cost basis) as updated in the app
- Ledger entries report
- No gain or loss account for the transactions which have been over-ridden
The Transaction Rebalancer is a valuable tool designed to streamline processes for handling non-taxable events, helping customers maintain portfolio balance and reporting accuracy without manual adjustments.
If you have any questions or need assistance with the feature, our support team is here to guide you.