FIFO Round-Trips: How Your Fills Become Trades

Why your broker's P&L and your journal disagree: FIFO pairing, partial fills, and what a round-trip trade really is.

Fills are not trades

Open your order book after a busy intraday session and you'll see twenty, thirty, maybe fifty rows. Each row is a fill — a single execution at a single price and time. None of those rows is a trade. A trade is a decision: you entered a position, managed it, and exited it. One decision might take four fills to enter and three to exit.

Your broker's app reports fills and day-wise net numbers, because that's what a broker is for — settling your account. Your review needs decisions. The bridge between the two is the round trip: entry fills and exit fills on the same instrument, paired quantity-for-quantity, first-in-first-out. Get this pairing wrong and every statistic downstream — win rate, average loss, expectancy — is quietly wrong too.

A worked example: the loss dressed as a win

Say you buy 130 of the NIFTY 24000 PE at ₹15.30 at 9:34 AM IST. The premium bleeds, and at 10:05 you average down: another 130 at ₹13.35. A bounce comes, and at 10:41 you sell 130 at ₹14.55, keeping the rest.

The average-price view — the one most broker screens lean on — says your average cost is ₹14.325, you sold at ₹14.55, so the exit shows green: about +₹29.25. Feels like a win.

FIFO says otherwise. First in, first out: the 130 you sold pairs with the first buy at ₹15.30, not the cheaper second one. That round trip is ₹15.30 − ₹14.55 = ₹0.75 against you, times 130 — a ₹97.50 loss. The ₹13.35 lot is a separate, still-open position whose result isn't known yet.

Both arithmetics are internally correct. But only FIFO grades the decision you actually made at 9:34. Your first entry was early and it lost; averaging down was a second decision that hasn't been scored yet. The average-price view blends the two and lets the second decision flatter the first — which is exactly how bad entries stay invisible for months.

Partial exits split one entry across round trips

The pairing runs both ways. Buy 260 of a NIFTY 24200 CE at ₹41.00 in one fill, then scale out: 130 sold at ₹52.00, 130 sold later at ₹36.50. FIFO splits the single entry into two round trips — one worth +₹1,430 (₹11.00 × 130) and one worth −₹585 (₹4.50 × 130). Same logic in reverse: one large exit fill can close out several earlier entries at once, split across them in order.

The rule underneath is simple: every unit of quantity gets matched exactly once, oldest entry first. A good journal then groups round trips that share an entry so you review them as one decision with two exits — but the P&L attribution underneath stays FIFO, so the numbers never lie about which entry earned what.

Why your journal and your broker disagree

Traders regularly compare their journal's total to the broker app and find a gap. In almost every case, both numbers are right — they're answering different questions.

  • Day-wise vs decision-wise. A position carried overnight shows up in the broker's P&L on two different days — futures get marked to market daily whether you touched the position or not. The journal books the whole result once, on the day the round trip closes, because that's when the decision finished.
  • Charges land on their own schedule. Brokerage, STT, exchange charges, GST and stamp duty arrive via the contract note and hit day-wise totals. A journal's per-round-trip number is typically gross, with charges tracked separately — so a day of many small trades can look flat in the journal and red at the broker.
  • Average price vs FIFO. As the 24000 PE example shows, the same fills can produce +₹29.25 on one method and −₹97.50 on the other. Neither is a bug.

The broker answers what happened to my account today. The journal answers how good was each decision. You need both; you should never expect them to match to the rupee.

Round trips are the unit of every statistic

This is the part that actually matters. Win rate over fills is meaningless — a sell fill isn't a “win” or a “loss” by itself, it's half of one. Sixty fills in a week might collapse into twenty-two round trips, and your win rate, average win, average loss and expectancy are only defined over those twenty-two. Compute them over raw fills, or over average-price blends, and you'll confidently optimise a process that doesn't exist.

The weekly-expiry trap

One gotcha catches nearly every hand-built spreadsheet: the NIFTY 24000 PE expiring this Thursday and the NIFTY 24000 PE expiring next Thursday are different instruments. Same index, same strike, same type — but a buy in one must never FIFO-pair with a sell in the other. Pairing has to match symbol, strike, option type and expiry. On roll days, when you close this week's position and open next week's within minutes, a sheet that pairs on symbol and strike alone will happily invent round trips that never happened.

This is precisely the kind of bookkeeping that shouldn't consume a trader's evening. PnL Book does the pairing automatically: fills come in from a broker screenshot or manual entry, get matched FIFO per instrument — expiry included — and land in your review queue as round trips, not rows. You spend your review on the decisions, and the arithmetic underneath is the same every single day.