Drop your broker CSV. Walk out with ITR-Schedule CG.
Browser-only parser for Zerodha Console, Groww, ICICI Direct, Upstox tradebooks. Auto-classifies STCG vs LTCG by holding period, applies the 31-Jan-2018 FMV rule for grandfathered shares, and gives you a row-per-trade table that maps 1:1 to ITR-2 Schedule 112A and 111A.
Import tradebook
Pick your broker, drop the CSV (or paste tab/comma-separated text). Headers are auto-detected for known brokers.
Drop CSV here
Or click to browse — .csv, .tsv, .txt up to 5MB
How the importer actually classifies your trades
The math sounds boring until you realise most online calculators get the grandfathering rule wrong. Here is exactly what runs in your browser:
(Section 111A, flat 15%)
else if (asset == listed_equity && holding_days > 365) → LTCG (Section 112A, 10% above ₹1L)
else if (asset == property && holding_days ≤ 730) → STCG (slab rate)
else if (asset == property && holding_days > 730) → LTCG (20% with indexation)
Grandfathering (the one rule everyone forgets)
For listed equity acquired before 1-Feb-2018, Section 112A says the cost is the higher of:
- Actual cost of acquisition, or
- Fair Market Value (FMV) on 31-Jan-2018, capped at the sale price.
If you bought Reliance at ₹500 in 2015, FMV on 31-Jan-2018 was ₹928, and you sold at ₹2,400 — your taxable gain is computed on cost = ₹928, not ₹500. The importer ships an embedded JSON of FMV on 31-Jan-2018 for the top 100 NSE stocks; for anything else it prompts you for FMV manually with a link to NSE's archive.
Brokerage, STT, exchange charges
Per Section 48, brokerage and stamp duty are deductible from the sale price (or addable to cost). STT, however, is NOT deductible when computing capital gains under 111A/112A — the IT Act explicitly excludes it. The importer detects these columns and applies them correctly. If a broker bundles them into a single "charges" column, we err on the side of treating them as STT (non-deductible) and let you adjust.
STCG, LTCG and the ₹1 lakh exemption — worked example
Assume FY 2025-26: you sold three holdings.
- Infosys: bought Jan 2024, sold Mar 2026, gain ₹80,000 → LTCG (held >12 months)
- HDFC Bank: bought Aug 2025, sold Mar 2026, gain ₹30,000 → STCG (held 7 months)
- ITC: bought Apr 2010, sold Mar 2026, sale ₹2,80,000, FMV-31-Jan-2018 = ₹2,60,000, actual cost ₹1,40,000 → grandfathered cost ₹2,60,000, LTCG ₹20,000
Total LTCG = ₹1,00,000 (Infy) + ₹20,000 (ITC) = ₹1,20,000. After the ₹1L Section 112A exemption, taxable LTCG = ₹20,000 × 10% = ₹2,000. STCG = ₹30,000 × 15% = ₹4,500. Cess @4% applies on top.
Trap: the ₹1 lakh LTCG exemption is per FY across all 112A scrips, not per stock. People often double-count.
Set-off rules (don't miss this)
- STCL (short-term loss) sets off against both STCG and LTCG.
- LTCL (long-term loss) sets off only against LTCG.
- Unutilised capital losses carry forward 8 assessment years — only if ITR is filed before the due date.
What CAs do that DIY filers miss
1. Bunch sales to use the ₹1L LTCG exemption every year
The exemption doesn't carry forward. If your LTCG this FY is only ₹40,000, you have ₹60,000 of "free" gain capacity. Sell-and-rebuy a long-held holding to lock in cost-base step-up at zero tax.
2. Tax-loss harvesting in March
Before 31-March, scan your portfolio for unrealised losers and sell them to offset realized gains. We have a dedicated tax-loss harvesting calculator for this — it integrates with the same CSV.
3. Spouse / HUF gifting (clubbing-aware)
Gifts to a non-working spouse trigger clubbing under Section 64 — the income from the gifted asset is taxed in your hands. But gifts to adult children or major HUF members avoid clubbing. CAs use this to reset cost basis at zero tax (gift price = donor's cost under Section 49).
4. Schedule 112A bulk upload
The income-tax portal accepts a CSV bulk upload for Schedule 112A. Our "Export to CSV" button outputs columns in the exact order: ISIN, Name, No. of shares, Sale price per unit, Total sale value, Cost of acquisition, FMV on 31-Jan-2018, Cost of acquisition without indexation. Saves 30 minutes of manual entry.
How we kept your tradebook in your browser alone
This page does three things, in order:
- You drop a file.
FileReader.readAsText()reads the bytes from disk into a JS string. No network involved. - We pipe the string to
Papa.parse(), a CDN-loaded JS library that runs in a Web Worker locally. - The parsed array is held in a JS variable, rendered into the table. Nothing is
fetch()-ed or POSTed.
Open DevTools → Network tab → clear → drop a file. You will see zero new requests. The only network call this page ever makes is the initial CDN load of Papa Parse. After that, you can disconnect Wi-Fi and the parser still works.
This isn't a privacy policy — it's an architecture statement. Compare to broker portals that "let you compute taxes online" but require login, sending your trades to their server.
Common questions about CSV import & ITR Schedule CG
Is my CSV uploaded anywhere?
No. The CSV is parsed entirely in your browser using the FileReader API and Papa Parse. Disconnect from the internet after this page loads — you will see the parser still works perfectly. Verifiable in DevTools → Network.
What is grandfathering and why does it matter?
For listed equity acquired before 1-Feb-2018, Section 112A allows you to step up cost basis to FMV on 31-Jan-2018 (capped at sale price). This often slashes LTCG by 50%+. Most online calculators skip this; we apply it for top 100 NSE stocks automatically and prompt you for others.
What's the holding-period cutoff for STCG vs LTCG?
Listed equity / equity MF: 12 months. Unlisted equity / immovable property: 24 months. Debt funds (purchased after 1-Apr-2023): always taxed at slab rate regardless of holding period.
Does this handle bonus shares and splits?
Yes — bonus shares get zero cost basis with allotment date as acquisition; splits adjust per-share cost proportionally. The importer flags unusual quantity ratios for confirmation.
Can I edit a row after import?
Yes. Every cell — buy date, sale date, ISIN, quantities, prices — is editable inline. Totals recompute live. Delete non-CG rows (interest, charges) with the × button.
What about buy-back, demerger, tendered shares?
Buy-backs (post-2020) are exempt in shareholder's hands but flagged. Demergers preserve cost basis split — you may need a CA's input for the cost-allocation ratio.
Why differ from Zerodha's P&L?
Brokers usually show realized P&L without grandfathering and without distinguishing STCG vs LTCG to the day. Our totals are ITR-rule-aligned, so a small delta is expected. Brokerage and stamp duty are deducted; STT is not (per Section 48 + 111A exclusion).
Can I export an ITR-portal-ready file?
Yes. The "Export Schedule CG CSV" button outputs columns in the exact order required by the income-tax portal's Schedule 112A bulk-upload utility.