Schedule VDA: what actually goes in each column
Most of the difficulty is not the arithmetic. It is that the form asks for things your exchange statement does not contain.
Schedule VDA is where crypto goes on the return. It is a table: one row per transfer, with the date you acquired what you sold, what it cost you, what you got for it, and the difference.
The arithmetic is simple. What catches people is that the form asks for facts an exchange export does not carry, and that its total does something unusual.
The columns
| Column | What goes in it |
|---|---|
| Col 2 | Date of acquisition — when you bought the coins you are now disposing of. Not when you opened the account, and not when the coins arrived on this exchange. |
| Col 3 | Date of transfer — when you sold, swapped or spent them. |
| Col 4 | Head of income — Capital Gain for ordinary investing. |
| Col 5 | Cost of acquisition — what you paid. Nothing else is deductible. |
| Col 6 | Consideration received — the full value you got. |
| Col 7 | Income — Col 6 minus Col 5. It can be negative. |
Those last three are not a reading of the form; they are what the Income Tax Department's own validation rules for ITR-2 say. Rule 188: "In Schedule VDA, value at Sl. No. 7 should be equal to Sl. No. 6 − Sl. No. 5."
The rule the form encodes, which costs people money
The same validation rules describe how the schedule's total is computed. Rule 189 requires the total to be the sum of all positive incomes in Col 7.
Read that again
Your losing rows go in the table. They are then excluded from the total.
Three sales — a ₹2,00,000 gain, a ₹1,50,000 loss, a ₹50,000 gain — do not net to ₹1,00,000. The total is ₹2,50,000, and you pay 30% plus cess on that. The loss reduces nothing: not that year's crypto gains, not any other income, and it does not carry to next year.
This is Section 115BBH, and it is the single most expensive surprise for a first-time filer. The form is not being lenient by letting you enter the loss; it is collecting it and then declining to use it.
Why one sale can need three rows
Col 2 wants a date of acquisition. If you bought BTC three times and then sold once, which date?
All three. The standard convention is oldest-first, so a sale draws on your earliest purchase until it is exhausted, then the next. Each of those purchases has its own date and its own cost, so each becomes its own row — one transfer, three lines.
Tools that collapse this into a single row have to invent an acquisition date. There is no correct one to invent.
What your exchange export does not tell you
- The acquisition date, if the coins moved. An exchange knows when coins arrived in your account, not when you bought them somewhere else. A deposit looks identical whether it is your own transfer or a fresh purchase.
- The cost, for the same reason. This is the expensive one: with no cost, Col 5 is nil and Col 7 becomes the entire sale value. See what happens when you move crypto between exchanges.
- What a USDT trade was worth in rupees. A BTCUSDT pair is priced in USDT. Cols 5 and 6 are in rupees, and the conversion is yours to make — at the rate on the day of each trade, not today's.
Swaps count, and they count twice
Trading one coin for another is a transfer of the first one. Buying ETH with USDT disposes of the USDT: that is a row. It also acquires ETH, whose cost basis is what the USDT was worth that day — which becomes Col 5 when you eventually sell the ETH.
People who never converted to rupees often assume nothing is reportable. The opposite is true: a year of active swapping can generate hundreds of rows without a single rupee withdrawal.
TDS is not part of this schedule
The 1% TDS is a credit, claimed elsewhere on the return. It does not reduce Col 6 and does not appear in Col 5. If what was deducted does not match what you expected, that is a separate reconciliation — see why your TDS may not match Form 26AS.
Working the rows out
The calculator on this site produces exactly these columns from your exchange exports: one row per acquisition lot consumed, with the dates, the cost, the consideration, the difference, and the positives-only total — plus a mark on any row whose purchase it has no record of, which is the row to fix before you file.
It runs in your browser. Nothing is uploaded.
Column numbering and the two totalling rules above are taken from the Income Tax Department's published ITR-2 validation rules for AY 2026-27. Forms change between years: check the live form before filing, and take anything material to a qualified professional.
Work out your own position
Drop your exchange exports into the calculator and open up every number it produces. It runs entirely in your browser — no account, no upload, and your files never leave your device.