🧰 UtlKit

How to Calculate Crypto Tax: the Year Difference Picks the Rate, a Sale One Month Across a Year Boundary Counts as Long-Term, Losses Never Offset Gains, Each Row Tax Floors at Zero, Incomplete Rows Are Skipped Silently, and the Summary Simply Sums Every Row

Walk through the Crypto Tax Calculator with its exact behaviors: the per-transaction rows with purchase and sale years, the whole-year holding period check, the short and long term rate fields, the losing rows that pay zero tax, and the three-box summary with the per-transaction breakdown.

The Crypto Tax Calculator estimates the capital gains tax on a list of cryptocurrency transactions. You enter each buy-and-sell pair as its own row with a purchase price, a sale price, a quantity, and the two years, set two tax rates, and press Calculate Tax. It answers with a three-box summary and a per-transaction breakdown, and it also computes once when the page loads.

Enter the transaction rows

Each transaction row carries a purchase price, a sale price, a quantity, a purchase year, and a sale year; a fresh row defaults to 2023 and 2024 for the two years. The Add Transaction button appends another row, and any row after the first gets a Remove link. The two rate fields sit above the rows: the short-term rate defaults to 37 percent and the long-term rate to 15, each from 0 to 100 in steps of 0.1. The Calculate Tax button recomputes the whole summary from the rows and the rates.

The year difference picks the rate

The holding period is the sale year minus the purchase year. If that difference is at least 1, the transaction is long-term and takes the long-term rate; if it is 0, it is short-term. The comparison stops at whole years, so a coin bought in December and sold one month later in January crosses a year boundary and is treated as long-term. A row that buys at 30,000, sells at 45,000, with a quantity of 1, from 2023 to 2024 gains 15,000 and, as a long-term row, pays 2,250 at the default 15 percent for a net of 12,750. The same row inside one year takes the 37 percent short-term rate, pays 5,550, and nets 9,450.

Losses never offset gains

The tax on each row is its gain times its rate, floored at zero. A losing row therefore shows a negative gain with a tax of exactly 0, and it never shrinks the tax of any winning row. Add a row that buys at 45,000 and sells at 30,000 over the same 2023 to 2024 span and the two rows together report a total gain of 0, a total tax of 2,250, and a net of -2,250. The summary simply sums the rows; a loss counts in the gain total but never in the tax total.

Skipped rows, the summary, and the breakdown

A row with a missing or non-numeric field, or a quantity at or below zero, is skipped silently, and if every row is skipped the results sections do not appear at all. The summary is three boxes: the total gain or loss, the estimated tax, and the net after-tax result. Beneath it, the per-transaction breakdown lists each counted row with its gain per unit, its total gain, a holding badge that reads long-term or short-term, its tax, and its net; positive numbers render in the gain color and negative ones in the loss color. Money is formatted as USD, or CNY on the Chinese site, and a disclaimer under the summary says the figures are estimates only, not tax advice.

What is not here, and where to go next

This tool stops at the estimate: no cost-basis rules, no fees, no jurisdiction. To price the stock-side equivalent of the same buy and sell, the Stock Profit Calculator takes the share count, both prices, and optional commissions and reports the gross profit, the net profit, and the annualized return. To estimate what a mining setup earns before any tax question, the Crypto Mining Profit Calculator works from your hashrate against the network hashrate, the block reward, the coin price, and the power cost. To check the output of the swap, with its price impact, before it becomes a taxable event, the DEX Swap Calculator quotes the amount from the constant-product pool formula. And when the coins are staked instead of sold, the staking APY walkthrough turns the quoted rate and the compounding frequency into the annual yield the stake earns.

Related Tools

Frequently Asked Questions

How does the tool decide between short-term and long-term?

It subtracts the purchase year from the sale year. A difference of at least 1 means long-term with the long-term rate; a difference of 0 means short-term. The check is on whole years only, so a coin bought in December and sold one month later in January counts as long-term. A row from 2023 to 2024 is long-term, and a row from 2024 to 2024 is short-term.

Which tax rates should I enter?

The defaults are 37 percent short-term and 15 percent long-term, and both fields accept anything from 0 to 100 in steps of 0.1. The tool only multiplies your gain by the rate you give it; it does not know your jurisdiction, so the correct rates are yours to enter. If either rate field is not a number, the calculation quietly does nothing.

What happens to a losing transaction?

The tax on each row is the gain times the rate, floored at zero, so a loss shows a negative gain and a tax of 0. Losses do not offset gains: with one row gaining 15,000 and another losing 15,000, both from 2023 to 2024, the summary reports a total gain of 0, a total tax of 2,250, and a net of -2,250.

Which rows are ignored?

A row is skipped when any of its fields is missing or not a number, or when the quantity is zero or below. Skipped rows leave no trace in the summary or the table, and if every row is skipped the results sections do not appear at all.

Is the output tax advice?

No. The summary carries a disclaimer that the figures are estimates only and not tax advice. The tool has no cost-basis rules, no fee handling, and no jurisdiction logic; it multiplies each row gain by the rate you set and floors the tax at zero.

Related Articles