rotki / rotki

A portfolio tracking, analytics, accounting and management application that protects your privacy
https://rotki.com
GNU Affero General Public License v3.0
2.76k stars 504 forks source link

Support for changing cost basis accounting method on a per-year basis #5064

Open jessepollak opened 1 year ago

jessepollak commented 1 year ago

Abstract

In order to do accurate accounting of crypto transactions, a user must select a "cost basis accounting method" which determines how their transactions are accounted for when they accumulate or dispose crypto. The common methods are FIFO (first-in-first-out), LIFO (last-in-first-out), and HIFO (highest-in-first-out). This accounting method determines which lot of a given crypto is disposed of when a user executes a transaction that triggers a disposal (e.g. a sell or swap).

This accounting method has an outsized impact on the user's profit & loss accounting as it can be the difference between disposing of a very low cost basis lot versus a higher basis one. For many customers who have crypto tax filing requirements, the method is often chosen to minimize the overall tax burden of the user's ongoing crypto usage.

Rotki should support the ability to change a user's cost basis accounting method for a given year to enable user's to effectively manage their PnL and tax burden.

Motivation

Users may want to change their cost basis accounting method to position themselves for a more accurate, or tax efficient, profit and loss statement. A common example of this is users who elected FIFO when they began using crypto (because that was the widely accepted guidance) and would like to migrate to HIFO (because it is now widely accepted and has significantly better tax properties).

An example of this is a user who began interacting with crypto in 2015 and elected the FIFO method. During the 2015-2019 period, they primarily acquired crypto (including ETH) because there were not yet significant reasons to transact in crypto. In 2020, however, with the rise of NFTs and the increasingly useful cryptoeconomy on Ethereum, they began spending large amounts of ETH. If they continued to apply a FIFO cost basis accounting method, they would quickly dispose of all of their low cost basis ETH, which would have a very significant tax burden. Instead, the user would like to transition to HIFO for a given tax year and going forward, which would enable them to efficiently dispose of high cost basis ETH.

To enable this, Rotki should support changing the accounting method for specific year (2020+) while persisting the prior accounting method for prior years (2015-2019).

Specification

In Rotki, a user should be able to:

Settings

Accounting

sahilc0 commented 11 months ago

I support this! @jessepollak have you heard anything about this? Curious if there's appetite from the team

sahilc0 commented 11 months ago

Actually -- looks like we might have this now: https://github.com/rotki/rotki/issues/5001