Independent · Beginner-Friendly · Data-Driven

Investment Education

Tax Loss Harvesting in India: Why I Sold 597 Shares Instead of 800

I sold, rebought ten minutes later, and booked nothing. Why a same day rebuy silently fails in India, and the FIFO quantity that decides your loss.

Ambika IyerAmbika Iyer
August 25, 2026
42 min read
Tax Loss Harvesting in India: Why I Sold 597 Shares Instead of 800

Six Things Nobody Tells You About Tax Loss Harvesting

By the end of this guide, you'll understand:

  • Why buying the stock back the same day books you no loss at all, which is the mistake I made
  • Why selling more units can book you a smaller loss, and where the optimum sits
  • Why the tax loss harvesting deadline is not 31 March, and never was
  • How FIFO decides your loss for you, whether you like it or not
  • What your portfolio looks like the days after a harvest, which almost nobody writes about
  • Whether the saving is real or merely postponed

Reading Time: 25 minutes


I Sold ₹1.65 Lakh of NIFTYBEES and Bought It Back Ten Minutes Later

On 20 August 2026 at 12:11 in the afternoon, I sold 597 units of NIFTYBEES at ₹276.42. Ten minutes and twenty four seconds later I bought back the same 597 units at ₹276.48.

I ended the day owning exactly what I had owned that morning. Same 1,596 units, same market value, no meaningful cash movement. What I believed had also changed was a number that had not existed before lunch: a realised short term capital loss of ₹7,059.86, worth ₹1,411.97 off my tax bill.

That loss does not exist. I published this article on 21 August saying it did. Four days later I opened Console and found my buy average still sitting at ₹276.86, exactly where it had been before I placed the order. Nothing had moved. The whole round trip had been netted away as an intraday position, and the tax event I thought I had manufactured never happened.

So this article now does two jobs. The first is the FIFO arithmetic, which is the part I got right, and which is why I sold 597 units rather than the 800 my instinct wanted. The second is the settlement mechanic, which is the part I got wrong, and which silently cancels the harvest of anybody who does what I did.

My instinct was to sell 800 units. That would have booked ₹1,804 less loss while liquidating 203 more units. I had also assumed, as most people do, that this was a March job. It was not, and waiting would have destroyed ninety percent of the benefit. Both of those conclusions still stand. The third thing I believed, that you can buy back whenever you like because India has no wash sale rule, is the one that cost me the trade.

Why This Matters:

Most Indian writing on this topic says the same four things: losses offset gains, you can buy back immediately, do it before March, here is a calculator. Three of those are shallow and the second one is actively wrong, as I found out the expensive way. The interesting part of tax loss harvesting is not whether to do it. It is how to execute it so the loss actually exists, how much to sell, when the real deadline falls, and what your holding looks like afterwards. All four have precise answers, and none of them is the answer you would guess.


The Whole Strategy Fits in One Sentence

The tax department only notices gains and losses you have realised, meaning actually sold. A loss sitting unrealised in your portfolio is invisible to it and worth nothing to you.

Tax loss harvesting is the act of selling a losing position to make the loss visible, then buying it back so that your portfolio finishes where it started. A few days later you own what you owned before, holding a deduction you did not have.

You want the tax event without the investment event.

Everything difficult about this strategy follows from that sentence. The tax event is what you are trying to create. The investment event is what you are trying to avoid. Every decision below is about maximising the first while minimising the second, and the uncomfortable finding of this article is that you cannot quite drive the second to zero.


The Ten Minute Round Trip That Booked Nothing

Here is what I believed, and it is what almost every Indian article on this subject will tell you. The Income-tax Act has no wash sale rule. Nothing disallows a capital loss because you repurchased the same security. Therefore you can sell and buy back whenever you like, even seconds later, and the loss stands.

Every sentence in that paragraph is true. The conclusion is still wrong, because it answers a question nobody was asking.

The loss was never disallowed. It was never created.

When you sell 597 units of a scrip and buy 597 units of the same scrip in the same session, the clearing corporation nets the two obligations against each other. Your net delivery obligation for the day is zero. Nothing is debited from your demat account and nothing is credited to it. In settlement terms you did not sell anything, so there is no sale for the tax code to look at, and therefore nothing to allow or disallow.

Zerodha states this plainly in its own documentation:

Any transaction that does not result in delivery in or out of demat is classified as intraday and is considered speculative.

And on the same page, the consequence spelled out: "Your buy average remains unaffected when you sell shares from your holdings and buy them back on the same day." That sentence is the whole story. An unchanged buy average means an unchanged cost basis, and an unchanged cost basis means no loss was realised.

Watch Out:

This is not a Zerodha quirk, and changing brokers will not help you. The test that decides the matter is the statutory definition of a speculative transaction: a contract settled otherwise than by actual delivery. Netting means there was no actual delivery. Every Indian broker sits on the same exchange and clearing plumbing and produces the same outcome.

The Two Tells, Both Sitting in My Account for Four Days

The buy average did not move. This is the definitive check and it takes ten seconds. A booked harvest lowers your cost basis by exactly the loss you realised, spread across your remaining holding. Mine should have fallen from ₹276.86 to ₹272.44. It read ₹276.86. If your buy average is unchanged after a harvest, the harvest did not happen. There is no second interpretation of that number.

No DP charge appeared. The depository levies roughly ₹15 per scrip whenever shares are genuinely debited from your demat account. If nothing left the account, nothing is billed. A missing DP charge on a day you thought you sold something is the cheapest diagnostic available, and it shows up on your ledger the very next morning.

Doing It Wrong Costs More Than Doing It Right

This is the part that stings. Equity delivery on Zerodha is zero brokerage, and equity ETFs pay securities transaction tax of just 0.001 percent on the sell side. An intraday position pays brokerage on both legs and STT at 0.025 percent, twenty five times the delivery rate.

Failed intraday round tripCorrect delivery round trip
Brokerage, both legs₹40.00₹0
STT₹41.26 at 0.025% intraday₹1.65 at 0.001% ETF delivery
Stamp duty on the buy₹4.95 at 0.003% intraday₹24.76 at 0.015% delivery
Exchange and SEBI charges₹10.13₹10.13
GST₹9.02₹1.82
DP charge₹0, nothing left the demat₹15.34
Total charges₹105.36₹53.71
Capital loss booked₹0₹7,060

Those figures are computed from Zerodha's published rate card rather than read off a contract note, so treat the paise as indicative and your own ledger as authoritative.

The single thing my failed trade did produce was a speculative business loss of ₹35.82, being the six paise per unit I paid to buy back higher than I sold. Speculative losses can be set off only against speculative income, and they carry forward four years rather than eight. For an investor with no intraday trading business, that is worth precisely nothing.

I paid ₹105 in charges to manufacture a ₹36 loss I cannot use, in pursuit of a ₹7,060 loss that never existed.

The Fix Is One Trading Day

Sell your units with a CNC delivery order and then leave them alone. The sale settles on T+1, the shares actually leave your demat account, and the capital loss becomes real. Buy back on the next trading day. An order placed on T+1 is a fresh settlement obligation and cannot net against a sale that has already gone through.

Zerodha's support page on harvesting says exactly this: for tax loss harvesting you have to sell the shares from your holdings and purchase them the next day.

One trading day is sufficient. Waiting two or three does not make the loss any more real, it only widens the window in which the market can move without you. I will come back to what that gap costs, because it is not nothing.


No Wash Sale Rule Is Not the Same as Buy It Back Whenever

The most repeated claim about Indian tax loss harvesting is that we have no wash sale rule. It is true, and it matters, and it is not the permission people take it for.

United States
  • Repurchase within 30 days and the loss is disallowed
  • The disallowed loss is added to the cost basis of the replacement lot
  • A real constraint, and a real month of market risk if you want the deduction now
VS
India
  • No equivalent provision. No 30 day rule, no 7 day rule, no rule at all
  • The loss is fully allowable however soon you repurchase
  • The only constraint is settlement: the sale has to actually settle as a delivery

The distinction is worth being precise about, because it changes what you actually do. In the United States the loss exists and the law takes it away from you. In India the law never takes anything away. It is the settlement mechanic that decides whether a loss came into existence in the first place.

So the American investor asks "how long must I stay out of the market?" and the answer is thirty days. The Indian investor asks "did my sale actually settle?" and the answer is one trading day. Those are very different constraints, and the second is enormously cheaper. The popular advice collapses them into "buy back whenever", which is how you end up where I did.

Key Point:

The practical rule, in one line: sell on one trading day using a delivery product, buy back on the next. Not the same session, not a few hours later, not after lunch. A different day. Everything else in this article assumes you have got that part right, which for four days I had not.


The Four Capital Gains Rules That Decide Everything Below

Before the interesting parts, the framework. These are the FY 2026-27 numbers, under the Income-tax Act, 2025, which replaced the 1961 Act from 1 April 2026 and renumbered everything.

ItemTreatmentWhere it lives now
Holding period, listed equity and equity ETFs12 months separates short term from long term
Short term capital gains, STT paid equity20%Section 196 (was 111A)
Long term capital gains12.5%, on gains above ₹1.25 lakh a yearSection 198 (was 112A)
Carry forward of unused losses8 tax yearsSection 111 (was 74)

If you have read about capital gains before, those section numbers will look wrong. They are not. The Income-tax Act, 2025 renumbered the provisions without changing the rules, in the same way sections 234A, 234B and 234C became 423, 424 and 425, which I covered in the advance tax guide. Most articles still published online cite 111A and 112A.

Now the part that drives every decision in this article:

Short Term Capital Loss (STCL)
  • Can be set off against both short term and long term gains
  • Shelters income taxed at 20%
  • Carries forward 8 tax years
  • Strictly more flexible and more valuable
VS
Long Term Capital Loss (LTCL)
  • Can be set off only against long term gains
  • Shelters income taxed at 12.5%
  • Carries forward 8 tax years
  • Worth nothing at all if you have no long term gains

A short term loss is better on both axes. It is more flexible, and the income it shelters is taxed at a higher rate. That asymmetry is not a footnote. It is the reason the conventional March advice is wrong, which I will come to.

One more condition, easy to miss and expensive to forget: carry forward of unused losses depends on filing your return by the due date. File late and the loss you carefully harvested simply evaporates if you could not use it this year.


FIFO Picks Which Shares You Sell. You Do Not.

This is the mechanic most retail investors get wrong, and it deserves real space, because everything counter intuitive later follows from it.

For shares held in demat form, Indian tax law applies First In, First Out. When you sell, the cost basis used is that of your oldest remaining purchase. You have no say in the matter. Your broker will happily let you click "sell". It will not let you pick which units.

The useful mental model is a queue:

FRONT (sold first) ─────────────────────────► BACK (sold last)
  oldest purchase                            newest purchase

Whatever sits at the front of that queue determines whether a sale produces a profit or a loss, regardless of what the rest of your holding looks like. Your average cost tells you nothing useful here. Two investors with identical average costs and identical market values can have completely different harvests available, purely because of the order in which they bought.

Here is what my queue looked like on the morning of the trade:

Jan '26 @ ~₹290   Feb @ ~₹287   Mar @ ~₹265   Apr @ ~₹268  ...  Jul @ ~₹274
└──── bought HIGH, now worth 276 = LOSS ────┘  └─── bought LOW = gain ───┘
      ▲ front of queue

I had been accumulating NIFTYBEES through a falling market. I bought in January near ₹290, kept buying as it fell to ₹253 in April, and bought again on the recovery to ₹276. The consequence is that my loss making lots happened to be first in line. FIFO, normally a constraint that investors complain about, was in this case doing exactly what I wanted.

Watch Out:

Whether FIFO helps or hurts you depends entirely on the shape of your accumulation history, and you do not get to change it. An investor who bought low and has been riding gains has no harvest available at all, no matter how many recent losing purchases sit at the back of their queue. Before you plan a harvest, pull your lot wise holdings. Not the average price. The lots.

Zerodha exposes this in Console under Holdings, with the breakdown by purchase date. Most brokers have an equivalent. If yours does not show lot level detail, your contract notes do.


#1 Selling More Shares Books You Less Loss

My instinct was to sell 800 of my 1,596 units. Round number, roughly half the position, felt sensible. Here is what FIFO actually produces at a market price of ₹276.42:

Units soldRealised loss
400−₹5,791
500−₹6,809
597−₹7,060 ← maximum
600−₹7,039
800−₹5,256
1,000−₹3,416
1,200−₹2,150
Selling 597 units books ₹1,804 more loss than selling 800, while liquidating 203 fewer units. Strictly better on every axis.

Why this happens. FIFO consumes the queue front to back. As long as it is eating lots priced above the current market, each additional unit adds to the loss. The moment it reaches lots priced below the market, each further unit starts adding a profit that nets against the loss you were trying to accumulate. Sell far enough and you wipe out the entire benefit.

The realised loss is not monotonic in quantity. It rises, peaks, and falls away. Sell 1,200 units and you have liquidated three quarters of your position to book less than a third of the available loss.

Realised loss by quantity sold, NIFTYBEES at ₹276.42
400 units₹5,791
500 units₹6,809
597 unitsThe optimum₹7,060
600 units₹7,039
800 unitsMy original instinct₹5,256
1,000 units₹3,416
1,200 units₹2,150

The curve peaks at 597 units and falls away on both sides. Selling more units past the turning point starts netting profits against the loss you are trying to book.

The rule is simple to state. Sell exactly up to, and not one unit past, the last lot priced above the current market price. In my queue that turning point sat at 597 units. The very next lot had been bought below ₹276.42 and was carrying a profit, so every unit past 597 started working against me.

Here is the fine grained view around the optimum, so you can watch the curve turn:

Units soldWhat FIFO was consuming at that pointRealised
512lots bought above the market price−₹6,907
537lots bought above the market price−₹7,047
587a lot bought a few paise below the market−₹7,033
597the last lot above the market−₹7,060 ← peak
689lots bought below the market price−₹6,423
796lots bought below the market price−₹5,334

Notice that even the approach to the optimum is not smooth. One lot in that sequence had been bought a few paise below the market price of ₹276.42, so it added a small profit and dented the running total, before the next loss making lot pushed it back down to the peak. This is exactly why the answer cannot be eyeballed from a chart of your average cost.

Tip:

The optimum is almost never a round number, and it changes every time the price moves. At ₹276.42 the answer was 597 units. At ₹270 it would be a different quantity, because a different set of lots sits above the market. There is no shortcut here. It has to be computed lot by lot, on the day, at the price you are actually going to trade at.


#2 Your Real Deadline Is January, Not 31 March

Every article published in February tells you to harvest before the financial year closes. For my portfolio, following that advice would have destroyed most of the benefit.

Every loss making lot in my position was purchased between January and March 2026. They cross the 12 month mark, and convert from short term to long term, starting 9 January 2027.

Here is the ₹7,060 harvest that was available on 20 August, broken down by the month each contributing lot turns long term:

Turns long termLoss affectedShare of the harvest
January 2027₹6,34890%
February 2027₹5388%
March 2027₹1752%

An investor who waited until "tax season" in March 2027 would open their console and find that ninety percent of this loss had quietly become a long term capital loss. Usable only against long term gains. Worth 12.5 percent instead of 20 percent. And against a short term gain, which is what I actually need to shelter, worth exactly nothing.

Watch Out:

Harvest a short term loss before the lot's first anniversary, not before the year end. Every lot has its own private deadline, and the financial year is irrelevant to this decision. A lot bought on 9 January 2026 has to be harvested by 8 January 2027. A lot bought on 20 August 2026 has until 19 August 2027, which is in a different financial year entirely.

This is worth sitting with, because it inverts the usual advice completely. The conventional calendar says "review your portfolio in February". The correct calendar says "review the age of your loss making lots continuously, and act when the oldest ones approach twelve months". For a portfolio built through steady monthly buying, that means a rolling deadline every single month.

There is a second reason the March habit is bad, and it is subtler. Everyone harvests in March. That is when the advice columns run, when the reminders go out, and when the tax nudges appear in broker apps. Waiting until then means you are making a decision under a deadline, on whatever price the market happens to be showing, rather than acting when your lot structure and the price were actually favourable.


The ₹3,300 Bet Hiding Inside a ₹1,330 Tax Saving

If you sell and do not repurchase, you have accidentally placed a directional bet.

The block I sold was worth ₹1.65 lakh. The tax saving is ₹1,330. A two percent move in the index while I am out of the market is ₹3,300, which is more than double the prize. The buy back exists for exactly one reason: to cancel market risk. Every hour out of the market is unpaid exposure.

Which brings us to the uncomfortable consequence of the correction earlier in this article. The overnight gap is not optional. Doing this properly means being out of the market for at least one full trading day, and that gap has a price I had not been charging myself. On 13 percent annualised volatility, one standard deviation of daily move on ₹1.65 lakh is about 0.82 percent:

Time out of the market1 sigma swingAgainst a ₹1,330 prize
1 trading day, the unavoidable minimum±₹1,3521.02×
2 trading days, being extra careful±₹1,9111.44×
5.5 days, staggering the rebuy±₹3,1742.39×
The one day gap you cannot avoid costs roughly one whole tax prize in variance.

That does not make harvesting a bad idea. Variance is symmetric while the tax saving is certain, so across many harvests the expected value stays clearly positive. But it does mean two things worth acting on. Extra caution days are genuinely expensive, and there is a route that removes the gap altogether.

Waiting Longer Than One Day Buys You Nothing

My first instinct was to leave a two day gap rather than one, on the vague theory that more distance must be safer. It is not. Once the sale has settled and the shares have left your demat account, the loss is booked and no later purchase can undo it. There is no lookback period to wait out, because there is no wash sale rule to create one. A second day would have added roughly ₹560 of extra one sigma exposure and precisely zero extra tax certainty. Do it on T+1.

The Zero Gap Route: Sell One ETF, Buy a Different One

There is a way to book the loss and stay fully invested with no overnight gap at all, and it works because the netting problem is scrip specific.

Sell NIFTYBEES and, in the same session, buy a different NIFTY 50 ETF. SETFNIF50 from SBI and UTINIFTETF from UTI both track the same index. Different scrip means no netting: the NIFTYBEES sale settles as a genuine delivery out of your demat and books the loss, while the other ETF settles as a delivery in. Both legs are real deliveries. You are never out of the market for a second, and your index exposure is unchanged throughout.

Watch Out:

Three honest caveats before you reach for this. Liquidity. NIFTYBEES trades at many multiples of the volume of its rivals, and on a thinner ETF the wider bid ask spread plus the risk of trading away from iNAV can easily cost more than the overnight gap you were trying to dodge. Check the spread and the iNAV deviation on the day, not in theory. Tracking. Expense ratios and tracking differences vary between funds, and you keep that difference for as long as you hold. It is a real portfolio decision. You now own a different fund from a different AMC, not the one you originally chose. If you would not hold it on its own merits, do not buy it to avoid a one day gap.

On a ₹1.65 lakh position where the prize is ₹1,330, the swap is worth pricing but rarely worth forcing. On a much larger harvest it becomes considerably more attractive, because gap risk scales with position size while the spread cost does not scale as fast.

And Whatever You Do, Do Not Stagger

While I was sitting on the sell order I asked myself a question that sounds prudent, and is not. What if I buy back gradually, one tenth on each of the next ten sessions?

Working it out properly is the most useful thing I did all day.

Buying one tenth on each of the next ten sessions leaves you, weighted by units, 5.5 full trading days out of the market. Here is what that gap is worth on ₹1.65 lakh, assuming roughly 13 percent annualised volatility and 11 percent long run drift:

Staggering over ten sessions versus the one day minimum, on ₹1.65 lakh
₹1,330
Tax prize being protected
The certainty you already have
±₹1,352
One day gap, unavoidable
The cost of doing it correctly
±₹3,174
Staggered, 5.5 days out
2.3× the unavoidable gap
±₹6,347
2 standard deviations
4.8× the prize
−₹396
Expected cost from drift
Equities drift up while you wait
~45%
Odds the stagger wins
The coin is weighted against you

The noise is more than double the prize, and the coin is weighted against you, because equities drift upward. You would be laying a ±₹3,000 bet on top of a ₹1,330 certainty.

Why This Matters:

The honest version of this argument, and I do not want to strawman it: staggering the rebuy is the correct move if you are genuinely bearish over the following fortnight. Being out of the market during a fall is worth far more than any tax saving. The problem is not the bet. The problem is letting a ₹1,330 tax decision become the unexamined cover story for a ₹1,65,000 directional call you never explicitly made. If you want to reduce exposure, decide that separately, size it deliberately, and do not smuggle it in through the back door of a tax trade.

There is a better answer for anyone tempted by "but what if it drops". Rebuy on schedule at T+1, and if the price then falls, harvest again. A fall creates fresh losses in lots that are currently profitable. That decouples the two decisions completely: the tax play carries nothing beyond its unavoidable one day gap, and a drop becomes an opportunity rather than a regret. You get the option value without paying for it with market exposure.


Doing It Properly: The Corrected Trade

On 24 August 2026 I sold the same 597 units again at ₹277.11, this time with no same day buy back to cancel it out. The units settled out of my demat account on T+1, and that settlement is what makes the loss real. I repurchased on the morning of 25 August at ₹275.71.

DateTypeQtyPriceProduct
24 Aug 2026SELL597₹277.11CNC delivery, settled T+1
25 Aug 2026BUY597₹275.71CNC delivery, one session later

The tax outcome is already fixed, and the rebuy cannot change it. This is worth stating plainly, because it is the cleanest way to understand what harvesting actually is. Your realised loss is decided entirely by the sell leg: the FIFO cost of the units that left, measured against the price they left at. What you pay to buy back sets your future cost basis on the new lot and affects nothing else. Once the sale settles, the deduction is banked whatever happens next.

Sale proceeds, 597 × ₹277.11₹1,65,434.67
FIFO cost of those same 597 units₹1,72,082.60
Realised short term capital loss−₹6,647.93
Tax saved at 20%+₹1,329.59
Repurchase cost, 597 × ₹275.71₹1,64,598.87
Gain across the one day gap+₹835.80
Charges, both legs, from the published rate cardabout ₹54
Why This Matters:

The price moved, and the harvest shrank. On 20 August those same 597 units at ₹276.42 would have booked ₹7,059.86. Four days later at ₹277.11 they booked ₹6,647.93. Identical lots, identical quantity. The only thing that changed was the price the units left at, sixty nine paise higher, multiplied by 597 units, which is ₹412 of deduction that quietly evaporated while I worked out what had gone wrong. Getting the mechanics wrong does not just cost you the round trip. It costs you the harvest you could have had at the old price.

Watch Out:

One thing I should have recomputed and did not. 597 was the FIFO optimum at ₹276.42. At ₹277.11 the optimum is not necessarily 597 any more, because every lot bought between those two prices has quietly flipped from a loss to a gain and dropped out of the harvestable set. By this article's own argument the turning point had moved, and I re-entered 597 out of habit rather than recalculating at Monday's price. Compute the number on the day, at the price you are actually trading at. Every time, including the times you think you already know the answer.

The Gap Landed My Way, Which Proves Nothing

I bought back on the morning of 25 August, one trading day after the sale. That is the minimum gap, and there is no benefit to waiting longer: once the shares have settled out, no later purchase can undo the loss.

NIFTYBEES fell ₹1.40 while I was out of the market, so I re-entered 597 units for ₹835.80 less than I sold them for. That is a pleasant outcome and it is worth being precise about what it is not. It is not skill, and it is not part of the strategy.

The one day gap paid me ₹836. The tax prize was ₹1,330. The side bet was 63 percent the size of the thing I was actually trying to win.

This is the argument made earlier in this article arriving in my own account. I estimated the one day gap at roughly ±₹1,352 of one standard deviation on a ₹1.65 lakh position. The actual move was ₹836, about 0.6 of a standard deviation, comfortably inside the predicted range and very nearly as large as the entire tax saving. It went my way. On any given Tuesday it goes the other way just as easily, and then the write up reads rather differently.

Watch Out:

Think twice before putting a limit price on the rebuy. My instinct was to place the buy at Monday's close of ₹275.87 or better, which feels disciplined and is very close to the mistake this article warns about elsewhere. It filled, because the market happened to open lower. Had it opened higher and never come back, the order would have sat unexecuted and I would have been holding ₹1.65 lakh in cash against a ₹1,330 tax prize, running exactly the directional exposure I never consciously chose to take. A rebuy is risk cancellation, not an entry. If you use a limit at all, set it loose enough to fill, and be willing to cross the spread rather than end the day out of the market.

Total friction on a correctly executed round trip is about ₹54 in charges, or 0.8 percent of the loss harvested. At zero brokerage delivery, the cost of doing this is close to noise. The two largest components are the DP charge, roughly ₹15 per scrip per debit day regardless of size, and stamp duty on the buy leg. Both trivial, and both notably absent from the failed attempt, which is how you can tell the failed attempt failed.

Tip:

Harvesting an ETF is far cheaper than harvesting a stock, and the reason is STT. Equity ETFs pay securities transaction tax of 0.001 percent on the sell side only, and nothing on the buy. Ordinary equity delivery pays 0.1 percent on both legs. The same 1.65 lakh round trip in a single stock would have cost about ₹330 in STT instead of ₹1.65, taking total friction from about ₹54 to roughly ₹382, from under 1 percent of the loss to about 5.7 percent. Still worth doing on a loss this size, but it flips the answer for small harvests. Below roughly ₹2,000 of loss on an individual stock, check the maths before you trade.

Same Shares, One New Deduction

Here is what the completed harvest did to the position:

BeforeAfter the round trip
Units held1,5961,596
Net cash movement+₹836
Cost basis, FIFO average₹276.86₹272.17
Unrealised loss available to harvest−₹6,648₹0
Realised loss available for set off₹0−₹6,648

The unit count is identical and the cash movement is rounding error. Only the bottom three rows move. That is the entire trade.

The proof arrives in two stages, and the first one is the useful one. When the sale settled on 25 August the holding read 999 units at an average of ₹270.06, not 1,596 units at ₹276.86. That drop is the harvest: the expensive lots genuinely left the account, which is the thing that never happened in August's failed attempt. Once the repurchase settles the following session the holding returns to 1,596 units, at a new average of ₹272.17. Two settlement dates, two visible changes. In the failed version the number never budged from ₹276.86 at any point, because nothing ever settled.

And that fourth row is the test. After my failed attempt, the cost basis still read ₹276.86. Everything above the line looked right, the contract note existed, the money had moved and come back, and not one figure below the line had changed. If you take a single operational habit from this article, make it this: after the settlement date, open your holdings and check that the buy average actually moved.

Read the fifth row carefully. It is the harvestable unrealised loss that went to zero, not my portfolio's total unrealised P&L. The 999 units I did not sell were bought during the April dip and are sitting on a gain of roughly ₹7,047. Netted against the harvested lots, the whole position was about ₹399 in profit. The harvest extracted ₹6,648 of deductible loss from a portfolio that was, in aggregate, making money. That is the entire case for thinking in lots rather than averages.

There is a neat way to make the mechanism click, and a wrinkle worth understanding. The average cost fell from ₹276.86 to ₹272.17, a drop of ₹4.69, and across all 1,596 units that is ₹7,483.73. But the loss booked was ₹6,647.93. The ₹835.80 difference is not an error, and it is not a rounding artefact: it is exactly the gap gain, the ₹1.40 per unit by which I repurchased below my selling price. Had I bought back at precisely ₹277.11, the two numbers would match to the paisa, which is the pure form of the mechanism. Buying back lower reduces your basis by more than the harvest alone did, and that surplus is a market outcome rather than a tax one. If no version of this arithmetic shows up in your holdings after settlement, no loss was booked.

The loss did not disappear. It moved out of the unrealised column and onto the tax return, where it is worth 20 percent.

#3 You Can Only Spend This Once

This section barely exists in published writing, and for a repeat harvester it is the most useful thing here.

Harvesting eats your FIFO queue from the loss end. It is not a renewable action.

Note first that the failed 20 August attempt left the queue completely untouched. Nothing was delivered, so no lot was consumed, which is why the same 597 units were still sitting at the front waiting to be sold again on 24 August. A netted intraday trade does not just fail to book a loss, it does not move your position at all.

Once the 597 loss making units have genuinely settled out, the front of my queue moves forward to the lots I bought during the April dip:

Mar '26 @ ~₹269   Apr @ ~₹270   May-Jul @ ~₹272   │   Aug 25 @ ~₹276
└──────── bought CHEAP, now worth ~276 = GAIN ────┘   │   └── the rebuy ──┘
      ▲ front of queue

The 999 surviving older units average ₹270.06, all of them below the market. Any further sale realises gains, not losses:

If I sellFIFO realises at ₹276.42
100 units+₹754 gain
250 units+₹2,643 gain
633 units+₹5,138 gain

The scrip is then exhausted as a harvest source until the price falls below roughly ₹269, about 2.4 percent lower than where it trades today. That is not a problem, but it is a fact you need in your head, because the intuitive assumption after a successful harvest is that you can do it again next month. You cannot.

Your Best Future Loss Is Now Out of Reach

Here is the awkward second order effect, and the one I had not anticipated at all.

The 597 units I repurchased at ₹275.71 went to the back of the queue. If NIFTYBEES falls to ₹265, that block becomes the single largest loss in my portfolio, roughly ₹6,394 of it. But FIFO will not let me touch it until I have sold all 999 units sitting in front.

Your most harvestable lot is the one buried deepest.

Which is why, at lower prices, the optimal harvest stops being a partial sale and becomes all or nothing:

If price falls toBest available harvestUnits that must be sold
₹269−₹5,517all 1,596
₹265−₹11,901all 1,596
₹260−₹19,881all 1,596

The transaction cost of a full round trip is still only about ₹200, so cost is not the obstacle. The real cost is different and easy to miss:

Watch Out:

Liquidating everything resets the 12 month clock on all 999 dip bought units, several of which are already five months into their journey toward long term treatment. You would be trading LTCG progress for STCL. On the units bought in March and April, you would be surrendering a 12.5 percent rate that is nearly earned in order to book a loss at 20 percent. Whether that is worth it depends on the size of the loss and how long you intend to hold. It is a genuine trade off, not a free action.

This is the part that turns tax loss harvesting from a one off trick into something you have to actually think about. Every harvest reshapes the queue for every future harvest. If you plan to do this regularly, keep a note of what your queue looks like after each one.


Is This a Real Saving, or a Tax Bill You Just Postponed?

Lowering my cost basis from ₹276.86 to ₹272.17 means a larger taxable gain whenever I eventually sell for real. I deduct ₹6,648 today and add ₹6,648 to some future gain. On its own, that is a deferral, not a deduction.

It becomes a genuine, permanent saving through rate arbitrage:

Where the Permanent Benefit Actually Comes From

Today: the deduction is taken against short term gains taxed at 20 percent. Worth ₹1,330.

Later: the extra future gain, if I hold the units past 12 months, is taxed at 12.5 percent. Costs ₹831.

Or later, better: if that extra gain falls inside my unused ₹1.25 lakh annual LTCG exemption, it costs nothing at all.

Permanent benefit: roughly ₹499 to ₹1,330, plus a year or more of holding the money rather than the government holding it.

Stated as a principle: you are converting a 20 percent short term gain into a 12.5 percent or zero long term gain, and collecting the cash a year early either way. That is the actual mechanism. The headline loss figure of ₹6,648 is not the benefit, it is just the lever.

Why This Matters:

The corollary matters more than the arithmetic. Harvesting is most valuable when you have short term gains to shelter and you intend to hold the repurchased units long term. Both conditions. If you are going to sell everything again in three months, you have converted a short term gain into a short term gain at the same rate, paid the friction, and achieved nothing but a busier contract note. The strategy rewards patient holders specifically, which is a pleasant thing for a tax trick to do.


Harvesting a Loss You Cannot Use Is Expensive Busywork

Harvesting a loss you cannot use is pointless friction. Before doing any of this, confirm you have something to shelter.

I did. I was carrying more than ₹30,000 of short term capital gains on other holdings this year:

STCG on other stocks₹30,000
Harvested loss from NIFTYBEES−₹6,648
Taxable STCG after set off₹23,352
Tax saved₹1,330
Offset capacity still unused₹23,352

NIFTYBEES supplied only ₹6,648 of shelter, so the remaining ₹23,352 has to come from other scrips. This is the thing to internalise: a complete harvest is a portfolio wide sweep, not a single stock action. Find every holding sitting on an unrealised loss that you would happily re-enter, and round trip each one. Sell them together on one day and buy them all back the next, so the whole portfolio spends the same single session out of the market rather than one gap per scrip. You are only rewriting cost bases.

If you have no gains this year, the loss still carries forward eight tax years, but the benefit is deferred and uncertain while the friction is immediate. That is a much weaker case, and for small losses it is often not worth the trouble.

Tip:

Booking gains and losses has a knock on effect people forget. No TDS is deducted on capital gains from listed shares, so the tax on your net gain is yours to pay on schedule during the year, not at filing time. If your harvest meaningfully changes your net capital gains position, it changes your advance tax instalments too. The advance tax guide covers the four deadlines and what missing one costs, and the advance tax calculator will work the revised schedule out for you.


Nine Checks Before You Place the Order

Before You Place the Order
  1. Confirm you have gains to shelter. No gains this year means a weak case, whatever the loss looks like.

  2. Pull your lot wise holdings, not just the average price. The average tells you nothing about what FIFO will hand you.

  3. Compute the FIFO optimum. Sell up to the last lot priced above the market, and stop. Never a round number, never your gut number.

  4. Check every loss lot's age. Anything approaching 12 months has a private deadline. Act before it, not before March.

  5. Sell with CNC, then wait a day. Never buy the same scrip back in the same session. It nets against your sell, books nothing, and costs you more than doing it correctly. Sell on one trading day, buy back on the next. Avoid the first and last 15 minutes of the session, when ETF spreads widen and prices can drift from iNAV.

  6. Sweep the whole portfolio, not one scrip, until your offset capacity is used up.

  7. Save the contract note, and file your ITR by the due date. Carry forward of unused losses depends on it.

  8. Check your buy average after settlement. This is the step I skipped. If your cost basis has not moved, the harvest did not happen, whatever the contract note says. A missing DP charge on the ledger is the same signal.

  9. Re-examine your queue afterwards. You have changed its shape. What used to be a harvest source may now be a gain generator.


Nine Things Worth Remembering

  • The loss is not monotonic in quantity. Selling more units can book less loss, because FIFO eventually reaches lots priced below the market and starts netting profits against you. At the price I ran the numbers on, selling 597 units rather than 800 was worth ₹1,804 more loss.

  • Sell up to the last lot priced above the market, and not one unit further. That is the optimum, it is almost never a round number, and it moves every time the price does.

  • Your deadline is each lot's first anniversary, not 31 March. Ninety percent of my harvest turns long term in January 2027. Waiting for tax season would have converted a 20 percent deduction into a 12.5 percent one, or into nothing at all.

  • You cannot buy it back the same day, and this is the mistake I made. India has no wash sale rule, so the loss is never disallowed, but a same scrip round trip inside one session nets to an intraday trade, nothing leaves your demat, and no loss is created. Sell on one trading day, buy back on the next, then confirm your buy average moved.

  • The one day gap is not free. On ₹1.65 lakh it is worth about ±₹1,352 of one sigma variance against a ₹1,330 prize. In my case the market fell while I was out and the gap paid me ₹836, which is 63 percent of the tax saving arriving as pure luck. It could as easily have cost me that much. Waiting a second day adds risk and no benefit. Buying a different NIFTY 50 ETF the same day removes the gap entirely, at the cost of a wider spread and a different fund.

  • Do not stagger the rebuy. On ₹1.65 lakh, ten sessions of staggering puts ±₹3,174 of noise against a ₹1,330 prize, with the drift working against you. If you want to be out of the market, decide that separately.

  • The saving is rate arbitrage, not magic. You are deducting at 20 percent today and repaying at 12.5 percent or zero later. Real, permanent, and worth roughly ₹499 to ₹1,330 here, but only if you hold the repurchased units long term.

  • Harvesting is a depleting resource. It eats your queue from the loss end, and the units you rebuy go to the back where FIFO cannot reach them. After a harvest, the same scrip is usually a gain generator, not a loss source.

  • ETFs are much cheaper to harvest than stocks. 0.001 percent STT on the sell side only, against 0.1 percent on both legs for equity delivery. Friction on a correctly executed round trip is about 1.3 percent of the loss booked. Get the timing wrong and the intraday version costs roughly double while booking nothing.


If you want the wider context on why I hold a broad market ETF at all rather than picking individual names, the portfolio diversification guide and how to build a non-correlated portfolio both cover the reasoning. For what NIFTYBEES actually holds, understanding the NIFTY 50 breaks down the index. And if you find the mechanics of ETF trading interesting in their own right, the ETF ki Dukan strategy looks at a very different approach to the same instruments.


This article is general information, not tax or investment advice. The worked example is my own specific situation on one specific day, with one specific lot structure, and the optimal quantity for your holding will be different. Rates, section numbers and charges are as they stood for FY 2026-27 at the time of writing. Confirm the treatment of your own transactions with a qualified chartered accountant before acting.

Disclaimer

Nothing on this site is investment advice. All content is for educational and informational purposes only. Do your own research and consult a registered financial adviser before making any investment decisions.

Finished reading? Mark this article to track your learning progress.

Share:

Ambika Iyer
Ambika Iyer

Software Engineer, Self-Taught Investor

Software engineer who started learning about money in 2016 after a layoff coincided with a new home loan. Went from bank deposits to mutual funds to picking stocks in India and the US, learning through YouTube, screener.in, TradingView, and the hard way. Still learning. This site is her notes made public — for education and sharing only, not financial advice.