How to do tax-loss harvesting on Zerodha at year-end

From WebNotes, a public knowledge base. Last updated . Reading time ~11 min. Level: Intermediate.

Tax-loss harvesting is the practice of selling securities that are showing an unrealised loss before the end of the financial year to realise the loss, offset it against capital gains, and reduce the overall tax liability. Under the Income Tax Act 1961 and as amended by the Finance Act 2024, capital gains tax rates on listed equity are 20% for short-term gains (section 111A) and 12.5% on LTCG above Rs 1.25 lakh (section 112A). Harvesting losses before 31 March can meaningfully reduce the taxable gain, particularly for investors who have accumulated significant unrealised losses in a falling market.

How loss set-off works

The Income Tax Act’s section 70 and section 74 govern the set-off and carry-forward of capital losses:

  • Short-term capital loss (STCL) can be set off against both short-term capital gain (STCG) and long-term capital gain (LTCG) in the same financial year.
  • Long-term capital loss (LTCL) can only be set off against LTCG, not against STCG.
  • Unapplied losses can be carried forward for eight assessment years under section 74, provided the return of income is filed on time.
  • Losses from equity and equity-oriented mutual funds (previously exempt under section 10(38)) became declarable from 1 April 2018. Any accumulated LTCL from FY 2018-19 onwards can be carried forward.

The LTCG exemption and harvesting

Section 112A provides a tax-free threshold of Rs 1.25 lakh on LTCG from listed equity shares and equity-oriented mutual fund units. If your total LTCG for the year is, say, Rs 2.5 lakh, only Rs 1.25 lakh is taxable. If you harvest Rs 1.5 lakh of unrealised LTCL from other positions, the net LTCG drops to Rs 1 lakh, which falls entirely within the exemption and your tax liability under section 112A becomes nil.

Prerequisites

  • A Zerodha trading and demat account with delivery holdings.
  • Access to Zerodha Console to review the holdings P&L.
  • The current year’s capital gains position: total STCG, total LTCG, and any STCL or LTCL already realised.
  • Sufficient time before 31 March. In India, equity trades settle on T+1 (trade date plus one working day). A trade executed on 30 March settles on 31 March (if that is a working day) and counts for the financial year ending 31 March. Check the NSE/BSE settlement calendar for holidays near year-end.

Step-by-step procedure

Step 1: Review unrealised P&L on Console

Log in to console.zerodha.com. Navigate to Reports → Holdings. The holdings page shows each scrip with:

  • Average buy price and current market price.
  • Unrealised P&L in rupees and as a percentage.
  • Holding period: whether each lot is short-term (held less than 12 months) or long-term (held more than 12 months).

You can also view the Tax P&L page mid-year to see how much STCG and LTCG you have already realised in the current financial year.

Step 2: Identify harvestable losses

Create a spreadsheet. For each holding showing a loss:

  1. Note whether the loss would be short-term (held < 12 months) or long-term (held > 12 months).
  2. Check whether you already have STCG or LTCG in the current year that this loss would offset.

Priority ranking for harvesting:

Loss typeOffsetsPriority
STCLSTCG + LTCGHighest (most versatile)
LTCLLTCG onlyHigh if you have LTCG
LTCL with no LTCG this yearCarry-forward for 8 yearsStill beneficial for future years

Focus on positions where the tax saving exceeds the transaction costs (brokerage of Rs 20 per order + STT of 0.1% of sell value + exchange charges + GST) by a comfortable margin.

Step 3: Model the tax impact

Before executing, estimate the net benefit:

Example:

  • STCG realised to date: Rs 80,000
  • LTCG realised to date: Rs 180,000 (taxable above Rs 1.25 lakh = Rs 55,000 taxable LTCG)
  • Unrealised STCL in holdings: Rs 30,000
  • Unrealised LTCL in holdings: Rs 70,000

Without harvesting:

  • STCG tax (20%): Rs 80,000 × 20% = Rs 16,000
  • LTCG tax (12.5%): Rs 55,000 × 12.5% = Rs 6,875
  • Total tax: Rs 22,875

After harvesting both the STCL (Rs 30,000) and LTCL (Rs 70,000):

  • Net STCG: Rs 80,000 - Rs 30,000 = Rs 50,000; STCG tax = Rs 10,000
  • Net LTCG: Rs 180,000 - Rs 70,000 = Rs 110,000; below Rs 1.25 lakh threshold; LTCG tax = nil
  • Total tax: Rs 10,000
  • Tax saved: Rs 12,875 minus transaction costs

Subtract the estimated transaction cost from harvesting (STT + brokerage + charges) to arrive at the net benefit.

Step 4: Execute the sell orders on Kite

Place delivery sell orders for the identified holdings via Zerodha Kite:

  1. Log in to Kite.
  2. Navigate to Holdings or use the search bar to find the scrip.
  3. Click Sell. Select product type CNC (Cash and Carry, which is the delivery segment).
  4. Enter the quantity and confirm the order at market or limit price.
  5. Receive the contract note by email from Zerodha. Verify the trade is executed.

Settlement timing: India operates T+1 settlement. A sell trade on the last working day of the financial year (typically 28 or 31 March depending on the calendar) will settle on T+1. Confirm with the NSE/BSE holiday calendar that settlement falls within the financial year. To be safe, execute harvesting trades at least two to three working days before 31 March.

Step 5: Consider repurchase (no wash-sale rule)

Unlike the United States, India has no statutory wash-sale rule that disallows a loss if you repurchase the same security within 30 days. You can buy back the sold position immediately on the next trading day without invalidating the harvested loss.

However, consider:

  • Whether you still want the long-term exposure to the scrip.
  • Whether the repurchase price represents a reasonable entry point.
  • That after repurchase, the holding period restarts from the new buy date for future LTCG classification.

Step 6: Download the updated capital gains statement after year-end

After 1 April, log in to Console. Navigate to Reports → Tax P&L and select the completed financial year. Download the capital gains CSV. Verify that:

  • The harvested sell trades appear as realised losses.
  • The holding period classification (STCL or LTCL) matches your expectation.
  • The net STCG and LTCG figures match your earlier modelling.

If figures are unexpected, cross-check the trade-level CSV against your contract notes.

Step 7: Report in ITR-2 or ITR-3

In Schedule CG of ITR-2 or ITR-3:

  • Enter realised STCG and STCL in the section 111A row or the relevant STCG row.
  • Enter realised LTCG and LTCL in the section 112A row (scrip-level entries required for LTCG under section 112A).
  • Net losses set off against gains within the same category (or across categories as allowed).

If unapplied capital losses remain after set-off, enter them in Schedule CFL (Carry-Forward of Losses). The ITR utility automatically populates Schedule CFL when losses exceed gains. Retain the filed ITR-V to substantiate the carry-forward in future years.

Year-end LTCG optimisation (the booking and rebooking strategy)

For investors with significant long-term holdings in profit, the Rs 1.25 lakh annual exemption under section 112A is a recurring benefit. If your unrealised LTCG is much larger than Rs 1.25 lakh, some advisors recommend booking exactly Rs 1.25 lakh of LTCG each financial year (selling and buying back), thereby using the annual exemption continuously and reducing the accumulated unrealised LTCG over time. This is legal and does not require harvesting any losses; it simply makes use of the exemption each year rather than allowing it to lapse.

What can go wrong

Trade settlement outside the financial year: If you execute a sell trade on the last trading day but settlement falls in the next financial year due to holidays, the trade counts for the next financial year. Check the settlement calendar.

Ignoring transaction costs: For small loss positions, transaction costs (STT, brokerage, GST) may exceed the tax saving. Model carefully before executing.

Forgetting to file on time: Capital losses can only be carried forward if the ITR is filed before the due date (31 July for non-audit cases). A belated return forfeits the carry-forward.

LTCL applied to STCG: You cannot set off LTCL against STCG. Only STCL can be set off against LTCG. The ITR utility enforces this, but be aware when planning.

Overlooking intraday losses: Intraday equity losses are speculative losses and can only be set off against speculative gains, not against capital gains. Keep F&O, intraday, and delivery gains and losses in separate buckets.

References

  1. Income Tax Act 1961, section 70, set-off of losses from one source against income from another source under the same head.
  2. Income Tax Act 1961, section 74, carry-forward and set-off of capital losses.
  3. Income Tax Act 1961, section 111A, special rates for short-term capital gains on listed equity.
  4. Income Tax Act 1961, section 112A, special rates for long-term capital gains on listed equity above Rs 1.25 lakh.
  5. Finance Act 2024, amendment of STCG rate to 20% and LTCG rate to 12.5%; threshold Rs 1.25 lakh; effective 23 July 2024.
  6. NSE/BSE circular on T+1 settlement, effective 1 January 2023 for all scrips.
  7. Zerodha Console Tax P&L documentation, console.zerodha.com/reports/tax-pnl.

Reviewed and published by

The WebNotes Editorial Team covers Indian capital markets, payments infrastructure and retail investor procedures. Every article is fact-checked against primary sources, principally SEBI circulars and master directions, NPCI specifications and the official support documentation published by the intermediary in question. Drafts go through a second-pair-of-eyes review and a separate compliance read before publication, and revisions are tracked against the SEBI and NPCI rule changes referenced in the methodology section.

Last reviewed
Conflicts of interest
WebNotes is independent. No relationship with any broker, registrar or bank named in this article.