;doc:cctax: updates
This commit is contained in:
parent
fc34c76eda
commit
824d10b406
@ -1,10 +1,5 @@
|
|||||||
## Cryptocurrency tax reporting
|
## Cryptocurrency tax reporting
|
||||||
|
|
||||||
<div class=pagetoc>
|
|
||||||
|
|
||||||
<!-- toc -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
(This is the README in the hledger repo's `examples/csv/cctax/` directory,
|
(This is the README in the hledger repo's `examples/csv/cctax/` directory,
|
||||||
also published as the [Cryptocurrency tax reporting] page on hledger.org.)
|
also published as the [Cryptocurrency tax reporting] page on hledger.org.)
|
||||||
<!-- This page can be viewed on github or hledger.org, so use absolute urls -->
|
<!-- This page can be viewed on github or hledger.org, so use absolute urls -->
|
||||||
@ -12,27 +7,38 @@ also published as the [Cryptocurrency tax reporting] page on hledger.org.)
|
|||||||
|
|
||||||
In this directory we are not concerned with importing to hledger,
|
In this directory we are not concerned with importing to hledger,
|
||||||
but with exporting from hledger to cryptocurrency tax calculators.
|
but with exporting from hledger to cryptocurrency tax calculators.
|
||||||
|
The information here was last updated in 2025-12.
|
||||||
|
|
||||||
Why do this ? In most countries, the revenue and capital gain or loss incurred from
|
Why do this ?
|
||||||
receiving/selling/trading cryptocurrencies is taxable and must be itemised and reported.
|
In most countries, the revenue and capital gain from receiving/selling/trading cryptocurrencies (cc) is taxable and must be reported.
|
||||||
There are several aspects to this:
|
There are several aspects to this:
|
||||||
|
|
||||||
1. Calculating income.
|
- Calculating income. This is easy - at least, once you have recorded all transactions in hledger.
|
||||||
2. Calculating capital gains.
|
- Calculating capital gains. This can be hard, and depends on your country's rules.
|
||||||
3. Calculating actual taxes owed.
|
- Calculating taxes owed. This also depends on your country's rules, and is often handled by specialised tax preparation software.
|
||||||
|
|
||||||
1 (income) is relatively easy to do with hledger.
|
Centralised exchanges will calculate gains for you, but self-custodied wallets, decentralised exchanges, or other defi apps won't;
|
||||||
3 (tax owed) requires knowledge of current tax rules and is often handled by specialised tax preparation software.
|
with those, you are responsible for calculating gains.
|
||||||
2 (gains) can be complex. Depending on your country's tax rules, it may require
|
|
||||||
- tracking the original cost, date, and wallet of every purchase/acquisition over your lifetime
|
In some countries, such as the USA, this requires:
|
||||||
|
- tracking the acquisition date, cost, and wallet of every purchase/acquisition over your lifetime
|
||||||
- tracking their movements/splits/merges
|
- tracking their movements/splits/merges
|
||||||
- selling/disposing them in a precise mandated order
|
- disposing (selling/spending) them in a required order, such as:
|
||||||
|
- FIFO - first in first out
|
||||||
|
- LIFO - last in first out
|
||||||
|
- HIFO - highest cost first out
|
||||||
|
- LOFO - lowest cost first out
|
||||||
|
- SpecId - specific identification of lots
|
||||||
- and thereby calculating the capital gains or losses.
|
- and thereby calculating the capital gains or losses.
|
||||||
|
|
||||||
Centralised exchanges will calculate gains for you,
|
In the US, before 2025 universal cost tracking was used to determine the disposal order;
|
||||||
but self-custodied wallets, decentralised exchanges, or other defi apps won't;
|
this means you consider the acquisition costs/dates of all your holdings of an asset (cryptocurrency), across all wallets.
|
||||||
there you are responsible for calculating gains.
|
From tax year 2025, per-wallet cost tracking is required, which means you apply the disposal order separately within each wallet.
|
||||||
There are several ways you could tackle this:
|
The "Safe Harbor" rule allows you to allocate pre-2025 lots to specific wallets (once), which could help optimise taxes in some cases.
|
||||||
|
|
||||||
|
In the UK, it's easier: you use each asset's average cost across all wallets.
|
||||||
|
|
||||||
|
There are several ways you could calculate gains. Eg, assuming the worst case (US taxes), you could:
|
||||||
|
|
||||||
1. Calculate gains using only hledger,
|
1. Calculate gains using only hledger,
|
||||||
by keeping track of each lot and lot movement with subaccounts,
|
by keeping track of each lot and lot movement with subaccounts,
|
||||||
@ -41,6 +47,7 @@ There are several ways you could tackle this:
|
|||||||
|
|
||||||
2. Calculate gains using the built-in lot tracking syntax of Ledger or Beancount. Beancount's is more robust.
|
2. Calculate gains using the built-in lot tracking syntax of Ledger or Beancount. Beancount's is more robust.
|
||||||
These may be too limited to calculate gains accurately, eg when there are inter-wallet transfers.
|
These may be too limited to calculate gains accurately, eg when there are inter-wallet transfers.
|
||||||
|
There may be additional plugins which help.
|
||||||
|
|
||||||
3. Online cryptocurrency tax calculators (Bitcoin.Tax, Cointracker, Coinledger, Koinly, Summ, TokenTax..)
|
3. Online cryptocurrency tax calculators (Bitcoin.Tax, Cointracker, Coinledger, Koinly, Summ, TokenTax..)
|
||||||
These let you upload transaction history from all of your cryptocurrency activities.
|
These let you upload transaction history from all of your cryptocurrency activities.
|
||||||
@ -49,15 +56,15 @@ There are several ways you could tackle this:
|
|||||||
When they are hacked or infiltrated, potentially your entire past, present and future cryptocurrency activities can be analysed.
|
When they are hacked or infiltrated, potentially your entire past, present and future cryptocurrency activities can be analysed.
|
||||||
|
|
||||||
4. Offline cryptocurrency tax calculators. These tend to be more private.
|
4. Offline cryptocurrency tax calculators. These tend to be more private.
|
||||||
- rotki - AGPL/freemium, featureful, does not support US yet (wallet-based cost tracking, https://github.com/rotki/rotki/issues/2438)
|
- [rotki] - freemium, featureful, does not support US yet (wallet-based cost tracking, <https://github.com/rotki/rotki/issues/2438>)
|
||||||
- RP2 - Apache, does not support US yet (https://github.com/eprbell/rp2/issues/135)
|
- [RP2] - does not support US yet (<https://github.com/eprbell/rp2/issues/135>)
|
||||||
- BittyTax - AGPL, UK and US variants (can do wallet-based cost tracking by using multiple configs)
|
- [BittyTax] - UK and US variants (can do wallet-based cost tracking by using multiple configs)
|
||||||
|
|
||||||
So the main focus here is exporting to offline tools.
|
[rotki]: http://rotki.com
|
||||||
These require CSV data in a specific format; examples are collected here.
|
[rp2]: https://github.com/eprbell/rp2
|
||||||
Each record represents an event in a particular cryptocurrency wallet.
|
[bittytax]: https://github.com/BittyTax/BittyTax
|
||||||
|
|
||||||
|
The main focus in this directory is exporting to offline calculators.
|
||||||
|
Examples of their CSV import format are collected here.
|
||||||
|
Each record represents an event in a particular cryptocurrency "wallet" (on an exchange or on a blockchain).
|
||||||
There are basic events like deposit, withdrawal, buy, sell, expense, income; and some more specialised event types.
|
There are basic events like deposit, withdrawal, buy, sell, expense, income; and some more specialised event types.
|
||||||
These tools usually provide general gains reports, which you must interpret or adjust according to your country's tax rules.
|
|
||||||
|
|
||||||
In the US, universal cost tracking was used through 2024; from tax year 2025, per-wallet cost tracking is required.
|
|
||||||
The "Safe Harbor" rule allows you to allocate pre-2025 lots to specific wallets (once), which could help optimise taxes in some cases.
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user