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.
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.
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.
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 trip | Correct 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.
- 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
- 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
- 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
- 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.
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.
| Item | Treatment | Where it lives now |
|---|---|---|
| Holding period, listed equity and equity ETFs | 12 months separates short term from long term | |
| Short term capital gains, STT paid equity | 20% | Section 196 (was 111A) |
| Long term capital gains | 12.5%, on gains above ₹1.25 lakh a year | Section 198 (was 112A) |
| Carry forward of unused losses | 8 tax years | Section 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:
- 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
- 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
- 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
- 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.
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 sold | Realised 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 |
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.
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 sold | What FIFO was consuming at that point | Realised |
|---|---|---|
| 512 | lots bought above the market price | −₹6,907 |
| 537 | lots bought above the market price | −₹7,047 |
| 587 | a lot bought a few paise below the market | −₹7,033 |
| 597 | the last lot above the market | −₹7,060 ← peak |
| 689 | lots bought below the market price | −₹6,423 |
| 796 | lots 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.
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 term | Loss affected | Share of the harvest |
|---|---|---|
| January 2027 | ₹6,348 | 90% |
| February 2027 | ₹538 | 8% |
| March 2027 | ₹175 | 2% |
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.
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 market | 1 sigma swing | Against a ₹1,330 prize |
|---|---|---|
| 1 trading day, the unavoidable minimum | ±₹1,352 | 1.02× |
| 2 trading days, being extra careful | ±₹1,911 | 1.44× |
| 5.5 days, staggering the rebuy | ±₹3,174 | 2.39× |
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.
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:
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.
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.
| Date | Type | Qty | Price | Product |
|---|---|---|---|---|
| 24 Aug 2026 | SELL | 597 | ₹277.11 | CNC delivery, settled T+1 |
| 25 Aug 2026 | BUY | 597 | ₹275.71 | CNC 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 card | about ₹54 |
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.
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.
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.
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:
| Before | After the round trip | |
|---|---|---|
| Units held | 1,596 | 1,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 sell | FIFO 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 to | Best available harvest | Units that must be sold |
|---|---|---|
| ₹269 | −₹5,517 | all 1,596 |
| ₹265 | −₹11,901 | all 1,596 |
| ₹260 | −₹19,881 | all 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:
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:
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.
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.
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
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.
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.
