Why Your Option Lost Money When You Were Right on Direction
One number in your P&L is four bets added together. You can only take them apart after the trade is closed.
On 27 October 2025, with gold selling off, I bought a GLD December call struck at $500. It cost $0.19. GLD closed at 367 that day, which put the strike 36% out of the money with 53 days left on it, and I told myself I was buying the dip.
Gold then did what I wanted. GLD reached 398.57 by expiry — up 8.6% — and implied volatility rose along with it, from 34% to around 42%. The call expired worthless, having lost 95% of its value inside four weeks.
There are two ways to explain that. The first is "options are a coin flip and I got unlucky," which is wrong here in a way I could have checked before clicking buy. The second is that four separate mechanisms were running inside the position and I never looked at any of them one at a time. The second explanation is the useful one, because it can be checked — but only after the whole thing is over.
Your P&L is a sum with the terms thrown away
When you hold a single option, you are not holding one bet. You're holding four, and your broker shows you their total.
- Delta — the bet on direction. The only one most people are consciously making when they click buy.
- Theta — the bill for waiting. It arrives every day, weekends included, no matter what the stock does.
- Vega — the bet on volatility. You made it whether you meant to or not: buying an option means buying whatever the market currently charges for fear.
- Gamma — the rate at which the first bet changes. It decides whether the position you opened on Monday is still the same position by Thursday.
Your P&L is the sum of all four, and from the sum you cannot tell what happened. Were you right on direction and overpaid for volatility? Wrong about everything, but rescued partway by a rise in implied vol? Both come out as a loss, and they are completely different events — in one number they look identical.
The GLD call is a clean demonstration precisely because it wasn't close. Here is the decomposition from my entry to the point the option was already down to a penny — I cut the final two weeks out, because implied volatility on a one-cent contract is noise rather than information:
- delta: +2.8¢
- gamma: +11.2¢
- vega: +14.5¢
- theta: −47.6¢
- second-order residual: +1.1¢
- net: −18¢, on an option that cost 19¢
Three of the four paid me. Direction paid, convexity paid, rising volatility paid — and none of it mattered. By 21 November, with GLD up 2% from my entry, the option was already down 79%.
Theta: what the waiting actually cost
Theta is the most boring line item and the most consistently underestimated. At entry it registers as "sure, a bit of decay." Over two weeks of holding, that "bit" adds up to a figure nobody priced in dollars beforehand.
It also isn't constant. Decay accelerates as expiry approaches, so a chart of theta over the life of a contract isn't a slope, it's a curve bending down harder and harder. If a trade ran longer than planned — and trades run longer than planned — the bill for the last three days of holding can rival the bill for the first ten.
On the GLD call, theta at entry was −$0.0146 a day against a premium of $0.19 — 7.7% of the position per day, before the underlying did anything at all. That is the number I should have said out loud at entry, and it is why three positive greeks couldn't rescue the trade: the position had roughly a two-week half-life on its own.
The question a theta history answers is: did you expect waiting to cost that much? Not "should you have exited sooner" — nobody knows that. Specifically: did the real price of time match the number you had in your head, or were you never carrying a number at all?
Vega: right on direction, wrong on volatility
On the GLD trade vega was on my side, which is the less common case. The usual version runs the other way, and it's the one people mean when a correct direction still loses money.
The mechanism is simple enough. An option's price contains implied volatility — the market's estimate of how much the underlying is about to move. Ahead of an event with a date on it (earnings, a regulatory decision, a court ruling) that estimate inflates, because the uncertainty is real and gets sold at a premium. The moment the event happens, the uncertainty is gone. IV drops, and it drops fast.
An option bought the day before earnings is an option bought at an inflated price. The next morning the stock can be up three percent while IV is down ten points, and vega's contribution outweighs delta's. You got the direction right. You also bought volatility at a local high.
The only place that's visible is the IV history of that specific contract over the days you held it. It isn't in your P&L, which is already a total. It isn't in your broker's chain either, which shows today's IV rather than the IV you paid.
Gamma: when the position stopped being the one you opened
Gamma is how fast delta changes. Its practical meaning is one thing: how stable the position is under movement.
A near-the-money option with months left changes slowly. The same option two days from expiry changes in jumps: delta travels from 0.3 to 0.8 on a move that would have shifted it a couple of hundredths a week earlier. On paper it's the same position — same ticker, same strike, same expiry. In practice it's a different instrument, and the switch happened on a particular day that shows up plainly on a gamma chart.
This is probably the least obvious part of the whole review. People remember what the position looked like at entry and don't notice that by the end they were holding something with entirely different sensitivity. Looking back, the day it changed is easy to find.
Gamma is also the reason dealers hedge the way they do, which is a different article — dealer gamma exposure, explained covers the aggregate version of the same mechanic.
Delta: you weren't as long as you thought
The last one, and the most down-to-earth. Delta drifts the entire time you hold — with the underlying, with time to expiry, with changes in IV.
You open a call at 0.45 delta and mentally file it as "about half a share's worth of exposure." A week later the stock has been down and back, delta is 0.22, and when the rally you were waiting for finally arrives you capture half of what you'd assumed. The directional bet worked. The size of the bet was something else by then, and nothing notified you.
The GLD call is the pathological version of this. Delta at entry was 0.012 — a one-dollar move in GLD was worth 1.2 cents to me. I wasn't long gold in any useful sense; I was long "gold rises 36% in seven weeks," which is a different proposition entirely. The delta said so in three digits before I bought it. I just wasn't reading it as a statement about what the position needed.
Why your broker won't show you this
Not out of malice. A broker's terminal shows the greeks of a live contract right now, and it does that well. What it almost never does is keep those values. Tomorrow the same screen holds tomorrow's numbers, and yesterday's are gone.
For trading, that's fine. For a review it isn't, because a review consists entirely of "how did this change" questions rather than "what is this now" questions. Which means the only way to have one is to start recording the numbers before you need them. There is no retroactive fix: last Tuesday's chain doesn't exist anywhere for anyone who didn't save it.
The numbers in this article are their own illustration of that. Nothing of mine was recording while the GLD position was open, so producing them meant going back to a data vendor for the contract's daily bars and re-deriving implied volatility and every greek from the closes — the same Black-Scholes inversion, done a year late. Open interest for those days isn't recoverable at all, at any price; that part is simply gone. When you have been collecting, the dashboard draws these series directly. When you haven't, this is the archaeology it takes, and some of it doesn't come back.
What the review looks like in practice
Mine is not a ritual and not a twenty-field trade journal. After closing a position I open the Contract tab for that contract and look at four charts side by side: price, IV, and the greeks by day. It takes about three minutes.
The questions are always the same ones. Did the cost of time match what I assumed at entry? Was IV high on the day I bought relative to where it ended up? Which day did gamma turn this into a different position? How much of the move did I actually capture through delta?
To be clear about what the tool does and doesn't do: GammaGrid now computes this attribution — it did not when this article was first written, and the change is worth stating plainly rather than quietly editing. The Contract view splits the price change into what delta, gamma, vega and theta each did, day by day, and shows the residual alongside them. It does not ask for your entry price or your size, and it never will: the decomposition is a property of the contract, and multiplying by your own position is a line of arithmetic you can do without handing us your trades.
The residual is the part worth insisting on. Implied volatility is inverted from the price, the greeks are derived from that volatility, and everything the model does not contain — the spread, a stale print, a rate move — has nowhere to go but there. Shown next to the four terms, it tells you whether the decomposition explains this contract at all. Hidden, it would make every attribution look equally confident, including the ones that are arithmetic about rounding: on this very GLD contract, at a one-cent price, the model claimed a vega contribution twenty times the option's entire value. The tool now refuses to decompose that stretch and says why.
Where this stops being useful
The section I look for first in write-ups like this, and the one usually missing.
- History mostly can't be obtained after the fact. What I did for the GLD trade — buy daily bars from a vendor and re-derive the greeks — works for one contract you care about, costs money, and doesn't recover open interest. It is not what the dashboard does, and it doesn't scale to a watchlist. In the open-source version collection is a button, not a schedule, so the usefulness starts the day you start collecting, not the day you install it.
- The greeks here are calculated. They come from Black-Scholes applied to implied volatility. That's the standard approach, the same one paid services use, but it is a model rather than a measurement. Read the numbers as magnitude and trend, not as a reading off an instrument.
- These are snapshots, not a tape. The data is free and delayed 15–20 minutes, and a move can fit between two snapshots and leave no trace in the history. Irrelevant for reviewing a hold measured in days; fatal for reviewing an intraday scalp.
- An expired contract drops out of the chain. Once it expires it's no longer in current data, and the selector is built from the latest snapshot — so today the review covers contracts that still exist, which is every position closed before expiry. Browsing expired contracts is on the list; that's the honest state of it right now.
- A review does not make the next trade better by itself. It answers where the money went in the last one. What to do with that is not my part, and not the software's.
Reviewing a closed trade is the one kind of options analysis with no forecast and no advice in it. Everything has already happened. All that's left is working out what.
This isn't investment advice, and reviewing a closed trade doesn't turn into a method. It answers one question: what the result you already got was made of. If the answer is "I paid more for time than I thought" or "I bought volatility at the high", that's a fact about the past, not a signal about the future.
Gamma Exposure Explained: What Dealer GEX Actually Tells You — the same hedging mechanic seen from the dealer's side, and where the number stops being informative.
See this split on your own contracts
The breakdown in this article — delta, gamma, vega, theta and the residual, day by day — is a screen in GammaGrid, and it needs no entry price because it is a property of the contract. The hosted version is open and free while it is in beta.
Open GammaGrid →Would rather run it yourself? It is open source: github.com/gammagrid/gammagrid