Breaking Down the Complexities of Account-by Account Cost Basis Calculations

Justin McCormick

Uncategorized

Starting January 1, 2025, under IRS Rev. Proc. 2024-28, all taxpayers must use an account-by-account cost basis method for crypto transactions. Unfortunately, this change adds significant complexity to crypto reconciliations. Here’s why:

More Complex Tax Calculation Chains

With the account-by-account method, the depth of tax calculations increases due to the way each transaction affects future ones. Let’s break it down with a simple dataset:

In a universal cost basis method, you would only need to ensure that the purchase, transfer fee, trade, and trade fee are accurate—four tax calculations in total. However, under an account-by-account cost basis method, you now need to account for the purchase, withdrawal, deposit, transfer fee, trade, and trade fee—resulting in six calculations. Every self-transfer adds two more tax calculations, making reconciliations more intricate.

Accurate Asset Stacks Per Account

Let’s break this down with the same sample dataset:

In a universal cost basis method, only the total volume of assets matters. However, under an account-by-account system, not only do you need to track asset volumes, but also where those assets are held. This leads to a new challenge: unmatched deposits.

Unmatched Deposits Are A New Consideration

An unmatched deposit happens when a self-transfer is recorded but the originating account doesn’t have the asset. Here’s an example:

  • Purchase: 1 ETH on Binance.US
  • Withdrawal: 2 ETH from Binance.US
  • Deposit: 1.99 ETH to MetaMask

Here, there’s a 0.01 ETH transfer fee, but 1 ETH is missing from the Binance.US records.

A bad crypto tax software would incorrectly transfer 0.99 ETH and log the fee. However, a good crypto tax software would flag the issue by adding the missing 1 ETH with a $0 cost basis and marking it as unmatched, allowing you to identify the problem early. This saves you from the hassle of searching for a needle in a haystack when the issue eventually leads to an unmatched trade.

Self-Transfers Must Match Perfectly

In the past, self-transfers under a universal cost basis method only required accuracy for the transaction fee. For instance:

  • Withdrawal: 1 ETH from Coinbase
  • Deposit: 0.99 ETH to MetaMask

Previously, you’d just ensure that the 0.01 ETH transaction fee was accounted for. Now, with an account-by-account method, you need to ensure both the fee and the exact withdrawal amount (0.99 ETH) are accurately recorded. This prevents volume issues for your account’s holdings.

This would require updating the data from above to the following:

  • Withdrawal: .99 ETH from Coinbase.
  • Deposit: .99 ETH to MetaMask.
  • Fee: .01 ETH.

Why This Could Actually Be a Positive Thing

Though account-by-account basis introduces more complexity, it ultimately leads to more realistic tax calculations. By tracking assets per wallet, you can easily pinpoint discrepancies and resolve them. Additionally, it prevents scenarios like large capital gains from selling old assets under FIFO, which is common with universal cost basis methods.

Need Help?

If all this seems overwhelming, don’t worry! We’re here to help you navigate these changes and ensure your crypto taxes are accurate and compliant!

Become a client

The content on this website is for general informational purposes only and is not intended to serve as financial, tax, or legal advice. Before making any decisions or taking action on financial, tax, or legal matters, we strongly recommend consulting with a qualified professional who can provide guidance tailored to your unique circumstances.

Resources

Blog

FAQ

Contact

Contact Form