Jurisdiction · India

India: STT, the LTCG exemption, and 2018 grandfathering

The transaction-tax leg, the ₹1L LTCG exemption, the §10(38) grandfathering of pre-2018 acquisition cost, and how the optimizer values lots whose basis is the higher of cost and 31 January 2018 fair market value.

May 20269 min read

India's tax engine has three distinctive features that the optimizer has to honour: the Securities Transaction Tax that levies a small basis-point cost on every buy and sell, the ₹1 lakh annual exemption on long-term capital gains under §112A, and the §112A(4) grandfathering provision that protects pre-31-Jan-2018 acquirers from gains accrued before the date listed-equity LTCG was reintroduced. Each shows up as first-class structure in the engine.

Statute
ITA §10(38), §112A · STT 2004
Lot ID
FIFO
LTCG rate
10% above ₹1L
STCG rate
15%
STT — the transaction-tax leg

A flat basis-point cost on every leg of every trade

STT (Securities Transaction Tax) is collected by the exchange on every transaction in listed securities. For delivery-based equity it's currently 0.1% on both buy and sell — so 20 bp round-trip per name traded. The optimizer's holding-cost builder folds STT into the per-name turnover penalty, which means the harvest signal has to clear a higher threshold in India than in jurisdictions without a transaction tax.

STT rates · listed equity (India)
LegSTTNotes
Buy (delivery)0.1%Paid by buyer
Sell (delivery)0.1%Paid by seller
Intraday (sell)0.025%Not used by the optimizer (no intraday)
F&O — futures (sell)0.0125%Not used by long-only DI
LTCG · §112A · the ₹1 lakh exemption

Why the optimizer treats the first ₹1L of long-term gain as zero-tax

Section 112A taxes long-term capital gains on listed equity at 10% — but only to the extent the holder's aggregate LTCG in a financial year exceeds ₹1 lakh. The first ₹1 lakh is exempt. For the optimizer, this is a piecewise tax-rate function, not a flat rate. The engine carries a per-account running tally of realised LTCG across the year and applies 0% to the first ₹1L, 10% to the excess.

Grandfathering · §112A(4)

The 31 January 2018 fair-market-value floor

Before April 2018, long-term capital gains on listed equity were exempt under §10(38). When LTCG was reintroduced in the 2018 Finance Act, §112A(4) grandfathered pre-existing positions: for any acquisition before 31 January 2018, the cost basis for LTCG calculation is max(historical cost, FMV on 31 Jan 2018). This protects pre-2018 holders from being taxed on gains that accrued during the exempt period.

For a lot acquired in 2010 at ₹100, with FMV on 31 Jan 2018 of ₹400, and current price ₹500 — the taxable LTCG is computed off a basis of ₹400, not ₹100. The optimizer carries both numbers and uses the right one.

The engine maintains two basis fields per pre-2018 lot: historical cost and FMV-on-31-Jan-2018. When the engine evaluates a sell, it uses the larger of the two for LTCG calculation and the historical cost for STCG (the grandfathering applies only to LTCG). Without this, harvest signals on long-tenured pre-2018 lots are systematically too aggressive.

Holding-period boundary

12 months for listed equity, longer for unlisted

Listed equity crosses to long-term at 12 months. Below that the gain is short-term and taxed at 15% (§111A) plus surcharge and cess. Above 12 months the gain is long-term and taxed under §112A as described. The optimizer's tax penalty has the same step-function shape as the Australian engine, but with smaller rate magnitudes.

Effective top-bracket rate · listed equity · India
Holding periodRateNotes
≤ 12 months15% + surcharge + cess§111A · STCG
> 12 months · first ₹1L0%§112A exemption
> 12 months · above ₹1L10% + surcharge + cess§112A
Surcharge varies with total income; cess is 4%. The optimizer takes a per-account marginal-rate input that includes both.
What the engine reads

Per-account inputs the IN tax engine consumes

  • Lot history with grandfathering FMV. Per-ticker, per-acquisition-date, with both cost and (where applicable) the 31-Jan-2018 FMV.
  • Running LTCG tally for the financial year. Carried on the Account record; reset on April 1.
  • Marginal-rate inputs. STCG rate (incl. surcharge + cess) and LTCG rate (incl. surcharge + cess). The ₹1L exemption is applied inside the engine.
  • STT rate. Hardcoded 0.1% per leg; configurable for jurisdictions that adjust.
Implications for the strategy

High turnover, calendar effects, and exempted-window concentration

Three patterns show up in Indian backtests:

  • Higher turnover than other jurisdictions. The combination of FIFO + the LTCG exemption + STT pushes the optimizer into more frequent rebalances — particularly around year-end when the exemption window can be absorbed before March 31.
  • Pre-2018 lots are sticky. The grandfathering protects basis at 31-Jan-2018 FMV; the optimizer therefore prefers to realise post-2018 lots on gains and pre-2018 lots only when the harvest signal is decisive.
  • Q4 (Jan–Mar) loss-harvest weight. The optimizer's annual-budget logic naturally concentrates harvest in Q4 to absorb the exemption and reset positions before the new financial year.

For the cross-jurisdiction comparison see the multi-jurisdiction deep-dive.

Notes & references
  1. Income Tax Act, 1961 — §10(38) (exemption pre-2018), §112A (long-term capital gains on listed equity), §111A (short-term capital gains).
  2. Finance (No. 2) Act, 2004 — Securities Transaction Tax provisions.
  3. Finance Act, 2018 — introduced §112A; the §112A(4) grandfathering protects pre-31-Jan-2018 acquisition basis.

Educational illustration · not advice. Indian tax law is amended yearly through the Finance Act; consult a chartered accountant.

Related