The capital gains panic in June — why this is the most-Googled month for ITR
Every June, the same thing happens. The Income Tax department releases the ITR utilities. Two weeks later, my WhatsApp starts pinging: cousins, college friends, two people from my gym, all asking the same question — "Bhai, I sold some Zerodha stocks last year, what do I do?"
The panic is real because capital gains feels intimidating. Schedule CG has dropdowns within dropdowns. Words like "grandfathering," "FIFO," "FMV as on 31-Jan-2018," and "section 112A vs 111A" are thrown around. The Zerodha P&L statement looks like a Bloomberg terminal. Most people just throw up their hands and pay a CA ₹2,500 to do it.
I'm going to walk you through exactly what I did for AY 2024-25, when I had 47 sell transactions across Zerodha and 8 across Groww, including one position (TCS) that I had bought in 2017 — meaning grandfathering applied. Total turnover: ~₹14.8L. Net capital gain: ~₹1,12,400. By the end, you'll know every dropdown, every column, and the one bug everyone misses.
What you need open in tabs before you start
(1) Zerodha Console → Reports → P&L → Equity (download both PDF and Excel) · (2) e-filing portal → ITR-2 → Schedule CG · (3) AIS PDF (for cross-check) · (4) Calculator. Block out 2 hours on a weekend afternoon, not a weeknight. You will be slow. That's fine.Step 1: Downloading the Zerodha capital gains statement (the right way)
Log into console.zerodha.com. Top nav → Reports → P&L. Important: don't use the "Holdings" report, that's different. Set:
Segment : Equity Period : 01-Apr-2024 to 31-Mar-2025 (the full FY, not calendar year) P&L type : Realised P&L
Click the spreadsheet/download icon top-right. Zerodha gives you an Excel file with these sheets:
- Tradewise Exits — Equity (each sell broken into FIFO-matched buys)
- Tradewise Exits — Equity (LTCG) (only the long-term ones, with grandfathering FMV)
- Charges (STT, brokerage, exchange charges — already deducted from P&L)
- Summary (totals)
The two columns you'll live in are STCG and LTCG. Zerodha's report has already done the FIFO matching for you — you bought 10 Reliance on three different dates? Zerodha will figure out which buy lots get matched against which sell, in chronological order.
Step 2: Understanding the columns (this is where most people get lost)
The Tradewise Exits sheet has roughly these columns. Here's what each one means:
Column What it means Why it matters ───────────────────────────────────────────────────────────────────────────────── Symbol Ticker (e.g. TCS, RELIANCE) ITR doesn't need this ISIN 12-digit identifier (INE467B01029) Required in Schedule 112A Quantity Shares sold in this lot ITR: needed for grandfathered Buy date Date of buy (FIFO matched) Decides STCG vs LTCG Sell date Date of sale Same Buy value Acquisition cost Cost base, before grandfathering Sell value Sale proceeds (net of charges) Sale consideration Realised P&L Sell − Buy Final gain/loss Period STCG / LTCG The whole point FMV 31-Jan-2018 Only for pre-2018 buys Grandfathering input
One detail people miss: Zerodha's P&L is already net of STT, brokerage, exchange fees, GST and stamp duty. You don't add charges back. You don't need a separate deduction line. The "realised P&L" column is what flows directly to ITR.
Step 3: My TCS story — grandfathering in action
Here's a real example from my statement. I bought 50 shares of TCS on 18-Aug-2017 at ₹2,495/share (split-adjusted). I sold all 50 on 22-Jul-2024 at ₹4,128/share. Long-term, since holding > 12 months. Without grandfathering, the math is simple:
Actual cost : 50 × ₹2,495 = ₹ 1,24,750 Sale proceeds : 50 × ₹4,128 = ₹ 2,06,400 "Naive" LTCG : ₹ 81,650 LTCG tax @ 10% (over ₹1L) : not the right number — see below
But Section 112A introduced in Budget 2018 says: for shares bought before 1-Feb-2018, your cost is the HIGHER of (a) actual cost, or (b) lower of [FMV on 31-Jan-2018] and [actual sale price]. That FMV is the highest price on the NSE on 31-Jan-2018.
TCS closed at ₹3,041 on 31-Jan-2018 (actual data; Zerodha's report shows this in the FMV column). So:
Grandfathering computation
─────────────────────────────────────────
(a) Actual cost = ₹ 2,495/sh
(b) Lower of:
FMV on 31-Jan-2018 = ₹ 3,041
Sale price = ₹ 4,128
⇒ lower = ₹ 3,041
Cost for tax = MAX(₹2,495, ₹3,041) = ₹ 3,041/sh
LTCG = (₹4,128 − ₹3,041) × 50 = ₹ 54,350
(vs ₹81,650 naive)
Grandfathering saved me ₹27,300 of taxable gain. At 10% LTCG, that's ₹2,730 saved on this single position. If you have 5-6 positions from before Feb 2018, the savings compound quickly. The biggest mistake I see people make is ignoring grandfathering entirely and entering "actual cost" — overpaying tax by 10% on the difference.
Step 4: STCG vs LTCG split — what tax rate applies?
For listed equity (and equity MF), the rules under FY 2024-25 (post Budget 2024 changes):
CATEGORY HOLDING PERIOD TAX RATE
────────────────────────────────────────────────────────
STCG (Sec 111A) ≤ 12 months 20% flat (raised from 15%
w.e.f. 23-Jul-2024)
LTCG (Sec 112A) > 12 months 12.5% over ₹1.25L exempt
(raised from 10% over ₹1L
w.e.f. 23-Jul-2024)
The mid-year rate change is the biggest gotcha for AY 2024-25. For transactions on or before 22-Jul-2024, old rates apply (15% STCG, 10% LTCG, ₹1L exempt). For transactions from 23-Jul-2024 onwards, new rates (20% STCG, 12.5% LTCG, ₹1.25L exempt). The ITR utility now splits these into "Before 23-Jul-2024" and "From 23-Jul-2024 onwards" sub-rows in Schedule CG. Two of my 47 sells fell on either side of this date and I had to be careful.
My full FY 2024-25 split came out to:
STCG before 23-Jul-2024 : ₹ 18,420 → tax @ 15% = ₹ 2,763
STCG from 23-Jul-2024+ : ₹ 32,180 → tax @ 20% = ₹ 6,436
LTCG before 23-Jul-2024 : ₹ 22,400 → covered in ₹1L exemption
LTCG from 23-Jul-2024+ : ₹ 39,400 → covered partly in remaining ₹85K exemption
net taxable LTCG ≈ ₹0
─────────────────────────────────────────────────
Total CG tax (before cess) ≈ ₹ 9,200
Step 5: Filling Schedule CG on the portal — every dropdown
Open ITR-2. Navigate to Schedule CG (Capital Gains). You will see a list of sub-schedules. The relevant ones for listed equity:
- A1: STCG on equity shares where STT paid (Section 111A)
- B4: LTCG on equity shares where STT paid (Section 112A)
- Schedule 112A: the scrip-wise schedule (mandatory for LTCG > ₹1L)
Filling A1 (STCG under 111A)
This is summary-only. Just enter:
i. Full value of consideration (sum of sell values) ii. Cost of acquisition (sum of buy values) iii. Cost of improvement 0 iv. Expenditure wholly & exclusively 0 (Zerodha P&L is already net) v. Short-term capital gain (i) − (ii) − (iii) − (iv)
For AY 2025-26, the utility splits this into "upto 22-Jul-2024" and "23-Jul-2024 onwards". Make sure your sum of both sub-rows matches your Zerodha STCG total.
Filling Schedule 112A (the scrip-wise LTCG schedule)
This is the one that intimidates people. You must enter one row per ISIN. If you sold 5 TCS lots across the year, those still consolidate into one row (sum quantities and weighted-avg prices). For my TCS row, it looked like this:
Share/Unit acquired : 50 ISIN : INE467B01029 Name : TCS Sale price/share : ₹ 4,128 Total sale value : ₹ 2,06,400 Cost of acquisition : ₹ 1,24,750 (actual) FMV on 31-Jan-2018 : ₹ 3,041 Sale price/unit : ₹ 4,128 Lower of FMV & sale : ₹ 3,041 Cost for tax (higher of actual & above) : ₹ 3,041 × 50 = ₹ 1,52,050 Expenditure : 0 LTCG : ₹ 54,350
The portal auto-calculates the "cost for tax" once you punch in FMV. If your statement shows FMV blank (because Zerodha couldn't find it for some scrip), you can look it up on the BSE/NSE historical price archive for 31-Jan-2018.
For shares bought after 31-Jan-2018, leave FMV blank and the portal uses actual cost. Simple.
Step 6: The grandfathering bug everyone misses
Here's the trap. Zerodha's P&L statement shows the "LTCG (grandfathered)" number in the summary, but the tradewise sheet sometimes shows the un-grandfathered cost. If you blindly copy the tradewise sheet into Schedule 112A without checking, you'll under-report your cost and over-pay tax.
The fix: always cross-check that the sum of Schedule 112A's "LTCG" column matches Zerodha's grandfathered LTCG total in the summary sheet. If they don't match by more than ₹500, something's wrong — probably a pre-2018 holding where you forgot to enter FMV.
The other bug — forgetting brought-forward losses
If you had STCG losses in earlier years that you filed before the due date, those can be set off against this year's STCG (and unused balance carried forward for 8 years). Schedule CFL is where you declare brought-forward losses. Always populate Schedule CFL before Schedule BFLA (Brought Forward Loss Adjustment). A friend of mine forgot a ₹62,000 STCG loss from FY 2021-22 and paid ₹9,300 of extra tax he could have avoided.Step 7: When ITR-2 becomes ITR-3 — F&O and intraday
Capital gains in ITR-2 covers delivery-based equity, mutual funds, bonds, gold, property. The moment you have any of the following, you must use ITR-3 instead:
- F&O (Futures & Options) — treated as non-speculative business income under Section 43(5)(d).
- Intraday equity — treated as speculative business income under Section 43(5).
- Currency derivatives, commodity F&O — similar to equity F&O.
I had a small intraday accident in October 2024 — bought 25 shares of HCL Tech accidentally with MIS instead of CNC, sold the same day. ₹420 loss. That single trade technically pushed me into ITR-3 territory. I declared it under Schedule BP as "speculative loss," carried it forward (4 years for speculative).
F&O is heavier: turnover calculation gets weird (absolute sum of all profits and losses, not notional), and if turnover > ₹3 Cr you'll be looking at tax audit under 44AB. Outside this article's scope but flagged so you know.
Step 8: My CSV import trick
I built our Capital Gains CSV Importer after my second year of manually entering 30+ scrip rows into Schedule 112A. It accepts Zerodha and Groww P&L CSV/Excel exports, normalises the columns, applies the grandfathering check, splits transactions by date for the 23-Jul-2024 rate change, and gives you a tidy JSON output you can paste straight into the ITR utility's Schedule 112A import.
It saved me about 45 minutes this year. Free, browser-only, your file never leaves the device — I built it that way deliberately so I'd use it myself for my own statements.
Step 9: Final tax, total time, what I'd do differently
MY AY 2024-25 CAPITAL GAINS — FINAL TALLY ───────────────────────────────────────── Number of sells : 47 (Zerodha) + 8 (Groww) = 55 Number of unique scrips : 31 Pre-2018 holdings (grandfathered): 4 Total STCG : ₹ 50,600 Total LTCG (gross) : ₹ 61,800 LTCG exemption used : ₹ 61,800 (well within ₹1.25L cap) ───────────────────────────────────────── Net taxable capital gains : ₹ 50,600 (all STCG) Tax on CG (mix of 15% / 20%) : ₹ 9,199 Cess @ 4% : ₹ 368 ───────────────────────────────────────── TOTAL CG TAX : ₹ 9,567 Time spent end-to-end : ~2 hours 40 minutes First-time would have taken : ~6-8 hours easily
What I'd do differently next year:
- Quarterly reconciliation. Instead of doing the whole year in June, I'm going to spend 30 min at end of each quarter exporting my Zerodha P&L and saving it. By March I'll already have my numbers.
- Tag pre-2018 holdings in a separate sheet. So I never miss the FMV / grandfathering step.
- Don't sell anything between July 15 and July 23. Half-joking. The mid-year rate change in AY 24-25 was painful to model. If another tax law change is around the corner, batch your sells before the change-date.
The tools that turned this from 6 hours into 2.5
For the actual computation: Capital Gains Calculator (handles STCG, LTCG, grandfathering, mid-year split). For the bulk import: CSV Importer. For the broader workflow: How to File ITR step-by-step. All free, no signup.
The June capital gains panic — why this is the most-Googled month for ITR
Every June, the same thing happens. The Income Tax department releases the ITR utilities. Two weeks later, my WhatsApp starts buzzing: cousins, college friends, two guys from my gym — all asking the exact same question — "Hey, I sold some Zerodha stocks last year, what do I do now?"
The panic is real because capital gains feels intimidating. Schedule CG has dropdowns inside dropdowns. Words like "grandfathering," "FIFO," "FMV as on 31-Jan-2018," and "Section 112A vs 111A" get thrown around. The Zerodha P&L statement looks like a Bloomberg terminal. Most people just throw up their hands and pay a CA ₹2,500 to handle it.
I'm going to walk you through exactly what I did for AY 2024-25, when I had 47 sell transactions across Zerodha and 8 across Groww, including one position (TCS) that I had bought back in 2017 — meaning grandfathering applied. Total turnover: ~₹14.8L. Net capital gain: ~₹1,12,400. By the end, you'll understand every dropdown, every column, and the one bug everyone misses.
What you need open in tabs before you start
(1) Zerodha Console → Reports → P&L → Equity (download both the PDF and the Excel) · (2) e-filing portal → ITR-2 → Schedule CG · (3) AIS PDF (for cross-checking) · (4) a calculator. Block out 2 hours on a weekend afternoon, not a weeknight. You're going to be slow. That's fine.Step 1: Downloading the Zerodha capital gains statement (the right way)
Log in to console.zerodha.com. Top nav → Reports → P&L. Important: don't use the "Holdings" report — that's a different thing. Set:
Segment : Equity Period : 01-Apr-2024 to 31-Mar-2025 (the full FY, not the calendar year) P&L type : Realised P&L
Click the spreadsheet/download icon at the top-right. Zerodha hands you an Excel file with these sheets:
- Tradewise Exits — Equity (each sell broken out into FIFO-matched buys)
- Tradewise Exits — Equity (LTCG) (only the long-term ones, with the grandfathering FMV)
- Charges (STT, brokerage, exchange charges — already deducted from the P&L)
- Summary (the totals)
The two columns you'll live in are STCG and LTCG. Zerodha's report has already done the FIFO matching for you — you bought 10 Reliance shares on three different dates? Zerodha figures out which buy lots get matched against which sell, in chronological order.
Step 2: Understanding the columns (this is where most people get lost)
The Tradewise Exits sheet has roughly these columns. Here's what each one means:
Column What it means Why it matters ───────────────────────────────────────────────────────────────────────────────── Symbol Ticker (e.g. TCS, RELIANCE) ITR doesn't need this ISIN 12-digit identifier (INE467B01029) Required in Schedule 112A Quantity Shares sold in this lot ITR: needed for grandfathered Buy date Date of buy (FIFO matched) Decides STCG vs LTCG Sell date Date of sale Same Buy value Acquisition cost Cost base, before grandfathering Sell value Sale proceeds (net of charges) Sale consideration Realised P&L Sell − Buy Final gain/loss Period STCG / LTCG The whole point FMV 31-Jan-2018 Only for pre-2018 buys Grandfathering input
One detail people miss: Zerodha's P&L is already net of STT, brokerage, exchange fees, GST and stamp duty. You don't add charges back. You don't need a separate deduction line. The "realised P&L" column is what flows straight into the ITR.
Step 3: My TCS story — grandfathering in action
Here's a real example from my statement. I bought 50 shares of TCS on 18-Aug-2017 at ₹2,495/share (split-adjusted). I sold all 50 on 22-Jul-2024 at ₹4,128/share. Long-term, since the holding was > 12 months. Without grandfathering, the math is simple:
Actual cost : 50 × ₹2,495 = ₹ 1,24,750 Sale proceeds : 50 × ₹4,128 = ₹ 2,06,400 "Naive" LTCG : ₹ 81,650 LTCG tax @ 10% (over ₹1L) : not the right number — see below
But Section 112A, introduced in Budget 2018, says: for shares bought before 1-Feb-2018, your cost is the HIGHER of (a) the actual cost, or (b) the lower of [FMV on 31-Jan-2018] and [actual sale price]. That FMV is the highest price on the NSE on 31-Jan-2018.
TCS closed at ₹3,041 on 31-Jan-2018 (actual data; Zerodha's report shows this in the FMV column). So:
Grandfathering computation
─────────────────────────────────────────
(a) Actual cost = ₹ 2,495/sh
(b) Lower of:
FMV on 31-Jan-2018 = ₹ 3,041
Sale price = ₹ 4,128
⇒ lower = ₹ 3,041
Cost for tax = MAX(₹2,495, ₹3,041) = ₹ 3,041/sh
LTCG = (₹4,128 − ₹3,041) × 50 = ₹ 54,350
(vs ₹81,650 naive)
Grandfathering saved me ₹27,300 of taxable gain. At 10% LTCG, that's ₹2,730 saved on this single position. If you have 5-6 positions from before Feb 2018, the savings compound quickly. The biggest mistake I see people make is ignoring grandfathering entirely and entering the "actual cost" — overpaying tax by 10% on the difference.
Step 4: STCG vs LTCG split — which tax rate applies?
For listed equity (and equity mutual funds), the rules under FY 2024-25 (after the Budget 2024 changes):
CATEGORY HOLDING PERIOD TAX RATE
────────────────────────────────────────────────────────
STCG (Sec 111A) ≤ 12 months 20% flat (raised from 15%
w.e.f. 23-Jul-2024)
LTCG (Sec 112A) > 12 months 12.5% over ₹1.25L exempt
(raised from 10% over ₹1L
w.e.f. 23-Jul-2024)
The mid-year rate change is the biggest gotcha for AY 2024-25. For transactions on or before 22-Jul-2024, the old rates apply (15% STCG, 10% LTCG, ₹1L exempt). For transactions from 23-Jul-2024 onwards, the new rates apply (20% STCG, 12.5% LTCG, ₹1.25L exempt). The ITR utility now splits these into "Before 23-Jul-2024" and "From 23-Jul-2024 onwards" sub-rows in Schedule CG. Two of my 47 sells fell on either side of this date, and I had to be careful.
My full FY 2024-25 split worked out to:
STCG before 23-Jul-2024 : ₹ 18,420 → tax @ 15% = ₹ 2,763
STCG from 23-Jul-2024+ : ₹ 32,180 → tax @ 20% = ₹ 6,436
LTCG before 23-Jul-2024 : ₹ 22,400 → covered in ₹1L exemption
LTCG from 23-Jul-2024+ : ₹ 39,400 → covered partly in remaining ₹85K exemption
net taxable LTCG ≈ ₹0
─────────────────────────────────────────────────
Total CG tax (before cess) ≈ ₹ 9,200
Step 5: Filling Schedule CG on the portal — every dropdown
Open ITR-2. Navigate to Schedule CG (Capital Gains). You'll see a list of sub-schedules. The relevant ones for listed equity:
- A1: STCG on equity shares where STT was paid (Section 111A)
- B4: LTCG on equity shares where STT was paid (Section 112A)
- Schedule 112A: the scrip-wise schedule (mandatory for LTCG > ₹1L)
Filling A1 (STCG under 111A)
This one is summary-only. Just enter:
i. Full value of consideration (sum of sell values) ii. Cost of acquisition (sum of buy values) iii. Cost of improvement 0 iv. Expenditure wholly & exclusively 0 (Zerodha P&L is already net) v. Short-term capital gain (i) − (ii) − (iii) − (iv)
For AY 2025-26, the utility splits this into "upto 22-Jul-2024" and "23-Jul-2024 onwards". Make sure the sum of both sub-rows matches your Zerodha STCG total.
Filling Schedule 112A (the scrip-wise LTCG schedule)
This is the one that intimidates people. You have to enter one row per ISIN. If you sold 5 TCS lots across the year, they still consolidate into a single row (sum the quantities and use weighted-average prices). For my TCS row, it looked like this:
Share/Unit acquired : 50 ISIN : INE467B01029 Name : TCS Sale price/share : ₹ 4,128 Total sale value : ₹ 2,06,400 Cost of acquisition : ₹ 1,24,750 (actual) FMV on 31-Jan-2018 : ₹ 3,041 Sale price/unit : ₹ 4,128 Lower of FMV & sale : ₹ 3,041 Cost for tax (higher of actual & above) : ₹ 3,041 × 50 = ₹ 1,52,050 Expenditure : 0 LTCG : ₹ 54,350
The portal auto-calculates the "cost for tax" once you punch in the FMV. If your statement shows FMV blank (because Zerodha couldn't find it for some scrip), you can look it up in the BSE/NSE historical price archive for 31-Jan-2018.
For shares bought after 31-Jan-2018, leave FMV blank and the portal uses the actual cost. Simple.
Step 6: The grandfathering bug everyone misses
Here's the trap. Zerodha's P&L statement shows the "LTCG (grandfathered)" number in the summary, but the tradewise sheet sometimes shows the un-grandfathered cost. If you blindly copy the tradewise sheet into Schedule 112A without checking, you'll under-report your cost and overpay tax.
The fix: always cross-check that the sum of Schedule 112A's "LTCG" column matches Zerodha's grandfathered LTCG total in the summary sheet. If they don't match within ₹500, something's wrong — probably a pre-2018 holding where you forgot to enter the FMV.
The other bug — forgetting brought-forward losses
If you had STCG losses in earlier years that you filed before the due date, those can be set off against this year's STCG (and any unused balance carried forward for 8 years). Schedule CFL is where you declare brought-forward losses. Always populate Schedule CFL before Schedule BFLA (Brought Forward Loss Adjustment). A friend of mine forgot a ₹62,000 STCG loss from FY 2021-22 and paid ₹9,300 of extra tax he could have avoided.Step 7: When ITR-2 becomes ITR-3 — F&O and intraday
Capital gains in ITR-2 covers delivery-based equity, mutual funds, bonds, gold, property. The moment you have any of the following, you must use ITR-3 instead:
- F&O (Futures & Options) — treated as non-speculative business income under Section 43(5)(d).
- Intraday equity — treated as speculative business income under Section 43(5).
- Currency derivatives, commodity F&O — similar to equity F&O.
I had a small intraday accident in October 2024 — I accidentally bought 25 shares of HCL Tech with MIS instead of CNC and sold them the same day. ₹420 loss. That single trade technically pushed me into ITR-3 territory. I declared it under Schedule BP as a "speculative loss" and carried it forward (4 years for speculative).
F&O is heavier: the turnover calculation gets weird (absolute sum of all profits and losses, not notional), and if turnover > ₹3 Cr you're looking at a tax audit under 44AB. That's outside this article's scope, but I'm flagging it so you know.
Step 8: My CSV import trick
I built our Capital Gains CSV Importer after my second year of manually entering 30+ scrip rows into Schedule 112A. It accepts Zerodha and Groww P&L CSV/Excel exports, normalises the columns, applies the grandfathering check, splits transactions by date for the 23-Jul-2024 rate change, and gives you a tidy JSON output that you can paste straight into the ITR utility's Schedule 112A import.
It saved me about 45 minutes this year. Free, browser-only, and your file never leaves your device — I built it that way on purpose so I'd actually use it for my own statements.
Step 9: Final tax, total time, and what I'd do differently
MY AY 2024-25 CAPITAL GAINS — FINAL TALLY ───────────────────────────────────────── Number of sells : 47 (Zerodha) + 8 (Groww) = 55 Number of unique scrips : 31 Pre-2018 holdings (grandfathered): 4 Total STCG : ₹ 50,600 Total LTCG (gross) : ₹ 61,800 LTCG exemption used : ₹ 61,800 (well within ₹1.25L cap) ───────────────────────────────────────── Net taxable capital gains : ₹ 50,600 (all STCG) Tax on CG (mix of 15% / 20%) : ₹ 9,199 Cess @ 4% : ₹ 368 ───────────────────────────────────────── TOTAL CG TAX : ₹ 9,567 Time spent end-to-end : ~2 hours 40 minutes First-time would have taken : ~6-8 hours easily
What I'd do differently next year:
- Quarterly reconciliation. Instead of doing the whole year in June, I'm going to spend 30 min at the end of each quarter exporting my Zerodha P&L and saving it. By March I'll already have my numbers.
- Tag pre-2018 holdings in a separate sheet. So I never miss the FMV / grandfathering step.
- Don't sell anything between July 15 and July 23. Half-joking. The mid-year rate change in AY 24-25 was painful to model. If another tax-law change is around the corner, batch your sells before the change-date.
The tools that turned this from 6 hours into 2.5
For the actual computation: Capital Gains Calculator (handles STCG, LTCG, grandfathering, mid-year split). For the bulk import: CSV Importer. For the broader workflow: How to File ITR, step-by-step. All free, no signup.
जून में कैपिटल गेन्स की घबराहट — ITR के लिए यह साल का सबसे ज़्यादा गूगल किया जाने वाला महीना क्यों है
हर जून में यही होता है। इनकम टैक्स विभाग ITR यूटिलिटीज़ रिलीज़ करता है। दो हफ़्ते बाद मेरा WhatsApp बजने लगता है: चचेरे भाई-बहन, कॉलेज के दोस्त, मेरे जिम के दो लोग — सब एक ही सवाल पूछते हैं — "भाई, मैंने पिछले साल कुछ Zerodha स्टॉक्स बेचे थे, अब मैं क्या करूँ?"
घबराहट असली है क्योंकि कैपिटल गेन्स डरावना लगता है। Schedule CG में ड्रॉपडाउन के अंदर ड्रॉपडाउन होते हैं। "grandfathering," "FIFO," "FMV as on 31-Jan-2018," और "Section 112A बनाम 111A" जैसे शब्द उछाले जाते हैं। Zerodha का P&L स्टेटमेंट किसी Bloomberg टर्मिनल जैसा दिखता है। ज़्यादातर लोग हाथ खड़े कर देते हैं और किसी CA को ₹2,500 देकर यह काम करवा लेते हैं।
मैं आपको बिल्कुल वही दिखाने जा रहा हूँ जो मैंने AY 2024-25 के लिए किया था, जब मेरे पास Zerodha पर 47 सेल ट्रांज़ैक्शन और Groww पर 8 थे, जिनमें एक पोज़ीशन (TCS) भी थी जिसे मैंने 2017 में खरीदा था — यानी grandfathering लागू हुई। कुल टर्नओवर: ~₹14.8L। नेट कैपिटल गेन: ~₹1,12,400। अंत तक आप हर ड्रॉपडाउन, हर कॉलम, और वो एक बग समझ जाएँगे जो सबसे छूट जाता है।
शुरू करने से पहले टैब्स में क्या खुला होना चाहिए
(1) Zerodha Console → Reports → P&L → Equity (PDF और Excel दोनों डाउनलोड करें) · (2) e-filing पोर्टल → ITR-2 → Schedule CG · (3) AIS PDF (क्रॉस-चेक के लिए) · (4) एक कैलकुलेटर। वीकेंड की दोपहर में 2 घंटे निकालें, किसी कामकाजी रात में नहीं। आप धीरे चलेंगे। यह ठीक है।स्टेप 1: Zerodha कैपिटल गेन्स स्टेटमेंट डाउनलोड करना (सही तरीके से)
console.zerodha.com पर लॉग इन करें। ऊपर के nav में → Reports → P&L। ज़रूरी बात: "Holdings" रिपोर्ट का इस्तेमाल मत करें, वो अलग चीज़ है। सेट करें:
Segment : Equity Period : 01-Apr-2024 to 31-Mar-2025 (पूरा FY, कैलेंडर ईयर नहीं) P&L type : Realised P&L
ऊपर-दाईं ओर स्प्रेडशीट/डाउनलोड आइकन पर क्लिक करें। Zerodha आपको इन शीट्स वाली एक Excel फ़ाइल देता है:
- Tradewise Exits — Equity (हर सेल को FIFO-मैच्ड खरीद में तोड़ा हुआ)
- Tradewise Exits — Equity (LTCG) (सिर्फ़ लॉन्ग-टर्म वाले, grandfathering FMV के साथ)
- Charges (STT, ब्रोकरेज, एक्सचेंज चार्जेस — P&L से पहले ही घटाए जा चुके हैं)
- Summary (कुल योग)
दो कॉलम जिनमें आप ज़्यादातर रहेंगे वो हैं STCG और LTCG। Zerodha की रिपोर्ट ने आपके लिए FIFO मैचिंग पहले ही कर दी है — आपने 10 Reliance शेयर तीन अलग-अलग तारीख़ों पर खरीदे? Zerodha तय कर देगा कि कौन-से खरीद लॉट किस सेल के ख़िलाफ़ मैच होंगे, कालक्रम के अनुसार।
स्टेप 2: कॉलम समझना (यहीं ज़्यादातर लोग भटक जाते हैं)
Tradewise Exits शीट में लगभग ये कॉलम होते हैं। हर एक का मतलब यह है:
Column What it means Why it matters ───────────────────────────────────────────────────────────────────────────────── Symbol Ticker (e.g. TCS, RELIANCE) ITR doesn't need this ISIN 12-digit identifier (INE467B01029) Required in Schedule 112A Quantity Shares sold in this lot ITR: needed for grandfathered Buy date Date of buy (FIFO matched) Decides STCG vs LTCG Sell date Date of sale Same Buy value Acquisition cost Cost base, before grandfathering Sell value Sale proceeds (net of charges) Sale consideration Realised P&L Sell − Buy Final gain/loss Period STCG / LTCG The whole point FMV 31-Jan-2018 Only for pre-2018 buys Grandfathering input
एक डिटेल जो लोगों से छूट जाती है: Zerodha का P&L पहले से ही STT, ब्रोकरेज, एक्सचेंज फ़ीस, GST और स्टैंप ड्यूटी का नेट है। आप चार्जेस वापस नहीं जोड़ते। आपको अलग से कोई डिडक्शन लाइन नहीं चाहिए। "realised P&L" कॉलम ही सीधे ITR में जाता है।
स्टेप 3: मेरी TCS कहानी — grandfathering एक्शन में
मेरे स्टेटमेंट से एक असली उदाहरण। मैंने 18-Aug-2017 को TCS के 50 शेयर ₹2,495/शेयर (स्प्लिट-एडजस्टेड) पर खरीदे। मैंने सारे 50 शेयर 22-Jul-2024 को ₹4,128/शेयर पर बेच दिए। लॉन्ग-टर्म, क्योंकि होल्डिंग > 12 महीने थी। grandfathering के बिना, गणित आसान है:
Actual cost : 50 × ₹2,495 = ₹ 1,24,750 Sale proceeds : 50 × ₹4,128 = ₹ 2,06,400 "Naive" LTCG : ₹ 81,650 LTCG tax @ 10% (over ₹1L) : not the right number — see below
लेकिन Budget 2018 में पेश की गई Section 112A कहती है: 1-Feb-2018 से पहले खरीदे गए शेयरों के लिए, आपकी कॉस्ट होगी (a) असली कॉस्ट, या (b) [31-Jan-2018 का FMV] और [असली सेल प्राइस] में से कम — इन दोनों में से ज़्यादा। वह FMV 31-Jan-2018 को NSE पर सबसे ऊँचा भाव होता है।
TCS 31-Jan-2018 को ₹3,041 पर बंद हुआ था (असली डेटा; Zerodha की रिपोर्ट इसे FMV कॉलम में दिखाती है)। तो:
Grandfathering computation
─────────────────────────────────────────
(a) Actual cost = ₹ 2,495/sh
(b) Lower of:
FMV on 31-Jan-2018 = ₹ 3,041
Sale price = ₹ 4,128
⇒ lower = ₹ 3,041
Cost for tax = MAX(₹2,495, ₹3,041) = ₹ 3,041/sh
LTCG = (₹4,128 − ₹3,041) × 50 = ₹ 54,350
(vs ₹81,650 naive)
grandfathering ने मेरा ₹27,300 का टैक्सेबल गेन बचाया। 10% LTCG पर, इस एक ही पोज़ीशन पर वो ₹2,730 की बचत है। अगर आपके पास फ़रवरी 2018 से पहले की 5-6 पोज़ीशन हैं, तो बचत तेज़ी से जुड़ती जाती है। सबसे बड़ी गलती जो मैं लोगों को करते देखता हूँ वो है grandfathering को पूरी तरह नज़रअंदाज़ करके "actual cost" डाल देना — और फ़र्क़ पर 10% ज़्यादा टैक्स भर देना।
स्टेप 4: STCG बनाम LTCG स्प्लिट — कौन-सा टैक्स रेट लागू होता है?
लिस्टेड इक्विटी (और इक्विटी म्यूचुअल फंड) के लिए, FY 2024-25 के नियम (Budget 2024 के बदलावों के बाद):
CATEGORY HOLDING PERIOD TAX RATE
────────────────────────────────────────────────────────
STCG (Sec 111A) ≤ 12 months 20% flat (raised from 15%
w.e.f. 23-Jul-2024)
LTCG (Sec 112A) > 12 months 12.5% over ₹1.25L exempt
(raised from 10% over ₹1L
w.e.f. 23-Jul-2024)
साल के बीच में रेट बदलना AY 2024-25 का सबसे बड़ा झंझट है। 22-Jul-2024 तक के ट्रांज़ैक्शन पर पुराने रेट लागू होते हैं (15% STCG, 10% LTCG, ₹1L छूट)। 23-Jul-2024 से आगे के ट्रांज़ैक्शन पर नए रेट (20% STCG, 12.5% LTCG, ₹1.25L छूट)। ITR यूटिलिटी अब Schedule CG में इन्हें "Before 23-Jul-2024" और "From 23-Jul-2024 onwards" सब-रोज़ में बाँटती है। मेरे 47 सेल में से दो इस तारीख़ के दोनों ओर पड़े और मुझे सावधान रहना पड़ा।
मेरा पूरा FY 2024-25 स्प्लिट यूँ निकला:
STCG before 23-Jul-2024 : ₹ 18,420 → tax @ 15% = ₹ 2,763
STCG from 23-Jul-2024+ : ₹ 32,180 → tax @ 20% = ₹ 6,436
LTCG before 23-Jul-2024 : ₹ 22,400 → covered in ₹1L exemption
LTCG from 23-Jul-2024+ : ₹ 39,400 → covered partly in remaining ₹85K exemption
net taxable LTCG ≈ ₹0
─────────────────────────────────────────────────
Total CG tax (before cess) ≈ ₹ 9,200
स्टेप 5: पोर्टल पर Schedule CG भरना — हर ड्रॉपडाउन
ITR-2 खोलें। Schedule CG (Capital Gains) पर जाएँ। आपको सब-शेड्यूल्स की एक लिस्ट दिखेगी। लिस्टेड इक्विटी के लिए ज़रूरी हैं:
- A1: इक्विटी शेयरों पर STCG जहाँ STT चुकाया गया हो (Section 111A)
- B4: इक्विटी शेयरों पर LTCG जहाँ STT चुकाया गया हो (Section 112A)
- Schedule 112A: स्क्रिप-वाइज़ शेड्यूल (LTCG > ₹1L के लिए अनिवार्य)
A1 भरना (111A के तहत STCG)
यह सिर्फ़ समरी है। बस ये डालें:
i. Full value of consideration (sum of sell values) ii. Cost of acquisition (sum of buy values) iii. Cost of improvement 0 iv. Expenditure wholly & exclusively 0 (Zerodha P&L is already net) v. Short-term capital gain (i) − (ii) − (iii) − (iv)
AY 2025-26 के लिए, यूटिलिटी इसे "upto 22-Jul-2024" और "23-Jul-2024 onwards" में बाँटती है। यह पक्का करें कि दोनों सब-रोज़ का योग आपके Zerodha STCG कुल से मेल खाता हो।
Schedule 112A भरना (स्क्रिप-वाइज़ LTCG शेड्यूल)
यही वो है जो लोगों को डराता है। आपको हर ISIN के लिए एक रो डालनी होती है। अगर आपने साल भर में TCS के 5 लॉट बेचे, तो भी वो एक ही रो में जुड़ते हैं (क्वांटिटी जोड़ें और वेटेड-एवरेज प्राइस लें)। मेरी TCS रो ऐसी दिखती थी:
Share/Unit acquired : 50 ISIN : INE467B01029 Name : TCS Sale price/share : ₹ 4,128 Total sale value : ₹ 2,06,400 Cost of acquisition : ₹ 1,24,750 (actual) FMV on 31-Jan-2018 : ₹ 3,041 Sale price/unit : ₹ 4,128 Lower of FMV & sale : ₹ 3,041 Cost for tax (higher of actual & above) : ₹ 3,041 × 50 = ₹ 1,52,050 Expenditure : 0 LTCG : ₹ 54,350
जैसे ही आप FMV डालते हैं, पोर्टल "cost for tax" अपने-आप कैलकुलेट कर देता है। अगर आपके स्टेटमेंट में FMV खाली दिखता है (क्योंकि Zerodha किसी स्क्रिप के लिए इसे नहीं ढूँढ पाया), तो आप इसे 31-Jan-2018 के लिए BSE/NSE हिस्टोरिकल प्राइस आर्काइव में देख सकते हैं।
31-Jan-2018 के बाद खरीदे गए शेयरों के लिए, FMV खाली छोड़ दें और पोर्टल असली कॉस्ट इस्तेमाल करेगा। आसान।
स्टेप 6: grandfathering का वो बग जो सबसे छूट जाता है
यहाँ जाल है। Zerodha का P&L स्टेटमेंट समरी में "LTCG (grandfathered)" नंबर दिखाता है, लेकिन tradewise शीट कभी-कभी बिना grandfathering वाली कॉस्ट दिखाती है। अगर आप बिना जाँचे tradewise शीट को सीधे Schedule 112A में कॉपी कर देंगे, तो आप अपनी कॉस्ट कम बताएँगे और ज़्यादा टैक्स भरेंगे।
उपाय: हमेशा क्रॉस-चेक करें कि Schedule 112A के "LTCG" कॉलम का योग Zerodha के समरी शीट में grandfathered LTCG कुल से मेल खाता हो। अगर वे ₹500 से ज़्यादा के अंतर से मेल नहीं खाते, तो कुछ गड़बड़ है — शायद कोई pre-2018 होल्डिंग जहाँ आप FMV डालना भूल गए।
दूसरा बग — brought-forward लॉस भूल जाना
अगर आपके पास पिछले सालों के STCG लॉस थे जो आपने ड्यू डेट से पहले फ़ाइल किए थे, तो उन्हें इस साल के STCG के ख़िलाफ़ सेट-ऑफ़ किया जा सकता है (और बचा हुआ बैलेंस 8 साल तक कैरी-फ़ॉरवर्ड)। Schedule CFL वहाँ है जहाँ आप brought-forward लॉस घोषित करते हैं। हमेशा Schedule BFLA (Brought Forward Loss Adjustment) से पहले Schedule CFL भरें। मेरा एक दोस्त FY 2021-22 का ₹62,000 STCG लॉस भूल गया और ₹9,300 का फ़ालतू टैक्स भर दिया, जिससे वो बच सकता था।स्टेप 7: जब ITR-2 बन जाता है ITR-3 — F&O और इंट्राडे
ITR-2 में कैपिटल गेन्स डिलीवरी-बेस्ड इक्विटी, म्यूचुअल फंड, बॉन्ड, गोल्ड, प्रॉपर्टी को कवर करता है। जिस पल आपके पास इनमें से कुछ भी हो, आपको ITR-3 इस्तेमाल करना ही होगा:
- F&O (Futures & Options) — non-speculative बिज़नेस इनकम के रूप में Section 43(5)(d) के तहत।
- इंट्राडे इक्विटी — speculative बिज़नेस इनकम के रूप में Section 43(5) के तहत।
- करेंसी डेरिवेटिव, कमोडिटी F&O — इक्विटी F&O जैसा ही।
अक्टूबर 2024 में मेरे साथ एक छोटा-सा इंट्राडे हादसा हुआ — मैंने ग़लती से HCL Tech के 25 शेयर CNC की जगह MIS से खरीद लिए और उसी दिन बेच दिए। ₹420 का नुक़सान। उस एक ट्रेड ने ही तकनीकी रूप से मुझे ITR-3 के दायरे में धकेल दिया। मैंने इसे Schedule BP के तहत "speculative loss" घोषित किया और कैरी-फ़ॉरवर्ड कर दिया (speculative के लिए 4 साल)।
F&O ज़्यादा भारी है: टर्नओवर कैलकुलेशन अजीब हो जाता है (सभी प्रॉफ़िट और लॉस का एब्सोल्यूट योग, नोशनल नहीं), और अगर टर्नओवर > ₹3 Cr है तो आपको 44AB के तहत टैक्स ऑडिट देखना पड़ेगा। यह इस आर्टिकल के दायरे से बाहर है, पर बता दिया ताकि आपको पता रहे।
स्टेप 8: मेरी CSV इम्पोर्ट ट्रिक
मैंने अपना Capital Gains CSV Importer अपने दूसरे साल के बाद बनाया, जब मैंने 30+ स्क्रिप रो मैन्युअली Schedule 112A में डाली थीं। यह Zerodha और Groww के P&L CSV/Excel एक्सपोर्ट स्वीकार करता है, कॉलम नॉर्मलाइज़ करता है, grandfathering चेक लगाता है, 23-Jul-2024 रेट बदलाव के लिए ट्रांज़ैक्शन को तारीख़ से बाँटता है, और आपको एक साफ़-सुथरा JSON आउटपुट देता है जिसे आप सीधे ITR यूटिलिटी के Schedule 112A इम्पोर्ट में पेस्ट कर सकते हैं।
इसने इस साल मेरे लगभग 45 मिनट बचाए। फ़्री, सिर्फ़ ब्राउज़र में, और आपकी फ़ाइल कभी आपके डिवाइस से बाहर नहीं जाती — मैंने इसे जानबूझकर ऐसा बनाया ताकि मैं ख़ुद अपने स्टेटमेंट के लिए इसे इस्तेमाल करूँ।
स्टेप 9: फ़ाइनल टैक्स, कुल समय, और मैं अगली बार क्या अलग करूँगा
MY AY 2024-25 CAPITAL GAINS — FINAL TALLY ───────────────────────────────────────── Number of sells : 47 (Zerodha) + 8 (Groww) = 55 Number of unique scrips : 31 Pre-2018 holdings (grandfathered): 4 Total STCG : ₹ 50,600 Total LTCG (gross) : ₹ 61,800 LTCG exemption used : ₹ 61,800 (well within ₹1.25L cap) ───────────────────────────────────────── Net taxable capital gains : ₹ 50,600 (all STCG) Tax on CG (mix of 15% / 20%) : ₹ 9,199 Cess @ 4% : ₹ 368 ───────────────────────────────────────── TOTAL CG TAX : ₹ 9,567 Time spent end-to-end : ~2 hours 40 minutes First-time would have taken : ~6-8 hours easily
अगले साल मैं क्या अलग करूँगा:
- तिमाही रिकंसिलिएशन। पूरे साल का काम जून में करने के बजाय, मैं हर तिमाही के अंत में 30 मिनट अपना Zerodha P&L एक्सपोर्ट करके सेव करने में लगाऊँगा। मार्च तक मेरे पास मेरे नंबर पहले से होंगे।
- pre-2018 होल्डिंग्स को अलग शीट में टैग करें। ताकि मैं FMV / grandfathering स्टेप कभी न चूकूँ।
- 15 जुलाई से 23 जुलाई के बीच कुछ मत बेचें। आधा-मज़ाक। AY 24-25 में साल के बीच रेट बदलाव को मॉडल करना तकलीफ़देह था। अगर कोई और टैक्स-कानून बदलाव दरवाज़े पर है, तो अपने सेल बदलाव-तारीख़ से पहले बैच कर लें।
वो टूल्स जिन्होंने इसे 6 घंटे से 2.5 घंटे का बना दिया
असली गणना के लिए: Capital Gains Calculator (STCG, LTCG, grandfathering, मिड-ईयर स्प्लिट संभालता है)। बल्क इम्पोर्ट के लिए: CSV Importer। बड़े वर्कफ़्लो के लिए: How to File ITR, स्टेप-बाय-स्टेप। सब फ़्री, कोई साइनअप नहीं।