WRITING
On the Day It Rallied, I Sold Off Tomorrow's Upside

July payrolls came in at minus 23,000 against an expected plus 80,000. The moment it printed, the path to another hike closed, yields fell, and growth got bid. The Nasdaq rose 1.30% and the S&P closed at a record.
My portfolio rose 1.32%, the index 1.17%. I beat it by 0.15 points.
Best day in four weeks. But I'm writing this one up separately not because it looks good — it's because once you break it apart, it says the opposite of what it looks like.
Three things actually happened today. Two of them barely show up on the P&L.
1. The scoreboard first

Twenty-one sessions from July 9: me +0.76%, the index −0.03%, ahead by 0.79 index points. Yesterday it was 0.63.
How to read it: both lines start at 100 from the July 9 close. Mine is TWR — time-weighted return, with deposits and withdrawals stripped out, otherwise simply wiring money in would bend the curve up. The index line is anchored to QQQ's 723.28 that day.
Looks like I opened up 0.16 today. The next chart says who actually opened it.
2. Where the gain went

The unit is basis points — one ten-thousandth of the prior day's net liquidation value. The day was +132.2 bp, i.e. +1.32%. Broken out:
| Source | Contribution | What it is |
|---|---|---|
| Long stock | +314.6 | price gains on 4,700 QQQ + 1,000 INTC + 100 GOOG |
| Short calls | −286.2 | the calls I'd sold got more expensive; I'm the seller, so more expensive means I pay |
| Long-dated calls | +77.1 | 18 deep-ITM January-2027 calls, delta 0.87, tracking almost one-for-one |
| Early assignment | +0.3 | two deep-ITM calls exercised before the open; 200 shares delivered (whole next section) |
| Same-day spread | +26.4 | one call spread opened and closed within the session |
| Total | +132.2 | = +1.32% |
For every 100 the stock made, 91 went straight to the calls I'd sold against it.
That is not a mistake — it's the definition of this book. What I run is called a covered call: own the shares, then sell someone else the entire upside above a chosen level, in exchange for a premium collected today. Handing that upside back on the way up is the contract, not a surprise.
Which ones were handing it back? The three most expensive today all expire August 21: fifteen contracts at the 665 strike, fourteen at 680, ten at 700. QQQ closed at 723.04 — all three sit below the price, meaning all of them are in the state of "I have already agreed to sell at that level."
But this line has to stand on its own:
Strip out that rightmost bar — the same-day spread — and the day was +1.059%, against the index's +1.174%. The core strategy underperformed by 0.115 points.
Which means "beating the index" today was entirely won by one directional trade. The core strategy underperforming in a rally is design working as intended, not an accident. But design-as-intended underperformance and a one-off directional win are two different things, and you don't get to add them together and call it "I won today."
3. Two hundred shares were bought away from me while I slept
This is the most counterintuitive line of the day. On the table it's only +0.3 basis points, which looks like nothing. Underneath it sit three very large numbers.
First, where this position came from
I held 1,200 shares of INTC, bought in mid-July at 133–134 — near the highs. Twelve calls were written against them: two at the 85 strike (expiring August 7), ten at the 100 strike (expiring August 21).
The two 85s were sold on July 29 at 11:06 ET, for 4.12 per share.
That day INTC traded a range of 81.79 – 88.47 and closed at 81.88 — the low of that whole leg. I sold those calls into the day it was breaking down. That isn't damage control after getting trapped; it's the actual playbook: implied volatility is most expensive in a selloff, which is when a seller gets paid the most.
A strike of 85 was at or near the money at that moment — an option can't trade below intrinsic, so INTC was necessarily at or under 89.12 when it filled. That was deliberate: a deep in-the-money covered call is how you nail down an exit price in advance. Nailed to what? 85 + 4.12 = 89.12 per share.
I paid 133 for those shares and voluntarily fixed the exit at 89. That step was accepting the loss back then — it isn't something that happened today.
⚠ And the cost belongs in the same paragraph: INTC went from 81.88 on July 29 to 101.64 today — up 24% in seven sessions — and those 200 shares only got 89.12. That's 12.52 per share left on the table, 14% of the exit price. Not a mistake, design working as intended — selling the call is precisely the trade of "a certain 4.12" for "an uncertain rally," and not catching the bounce is the other half of that contract. But the entry belongs in the book: in a V-shaped rebound, this strategy does exactly this.
Why it got exercised before expiry
American options can be exercised on any day before expiry. So the expiration date isn't the only delivery date, just the last one. And I don't get to choose, and I don't get advance notice: you open the account in the morning and 200 shares are gone.
Why did the person on the other side decide to exercise last night? The arithmetic makes it obvious. INTC closed August 6 at 99.81:
- Intrinsic value of that 85 call = 99.81 − 85 = 14.81
- The market's mark on it = 15.00
- So its time value was down to 0.19
For whoever held that call, continuing to hold could only harvest another 0.19 per share of time value. And closing the position means selling the call in the market, which costs one crossing of the bid-ask spread — on deep in-the-money contracts that spread is often wider than 0.19.
At that point exercising is cheaper than working an order. So he exercised.
Put differently: a deep in-the-money covered call being exercised early isn't an accident. It's what necessarily happens once the time value is gone. I should have expected it the day I sold it.
What actually hit the account

Three things happened at once:
- Cash in: 200 shares × 85, a large credit — +130.6 basis points.
- Shares out: those 200 shares valued at yesterday's close of 99.81 — −153.4 basis points.
- A liability erased: as the seller of that call I carried its 15.00 mark as a liability yesterday; after exercise it's gone — +23.1 basis points.
Add the three: 130.6 − 153.4 + 23.1 = +0.3 basis points.
And that 0.3, per share, is exactly 85 − 99.81 + 15.00 = 0.19.
Not a coincidence — an identity. Write it out: the strike received K, plus the call liability C you no longer owe, minus the shares handed over at price S, equals K + C − S. And for a deep-ITM call, C = (S − K) + time value. Substitute back and K + C − S is identically the time value.
So: any deep in-the-money covered call assigned early is worth, in P&L terms, exactly the sliver of time value it had left. The large numbers always cancel. Once you know this, "I got assigned early" stops being alarming — the question to ask isn't "how much did I lose," it's "is the price I agreed to sell at still the price I wanted?"
Three things that must be kept apart
One: that cash is not a gain. It's shares converted to cash at a price fixed weeks ago. Reading a large cash credit as profit is the single easiest way to misread this strategy.
Two: the real accounting is ugly, but it isn't today's loss. Those 200 shares exited at an effective 89.12:
- against their own purchase cost of 133.25 → that lot is down 33%;
- against the broker's blended average of 108.76 → down 18%.
Two numbers answering two different questions (a single lot versus the blended book), both unpleasant. But that loss was locked in the day I bought high in mid-July; the deep-ITM call merely fixed the exit at 89.12 in advance and collected 4.12 up front along the way. It didn't happen today. Today was just settlement day.
Three: it helps the cushion, but you have to price it differently. The P&L line values the delivered shares at yesterday's close of 99.81, because it answers "am I up or down versus yesterday's close." The cushion asks a different question — "what if I were still holding those 200 shares today" — so you value their collateral contribution at today's close of 101.64. The answer is +0.133 percentage points. That number shows up again two sections down.
One more thing: coverage was not broken. Before assignment it was 12 calls against 1,200 shares; after, 10 against 1,000 — still 100% covered, not a single naked call created.
⚠ Last note, and it's for me: no automated check flagged any of this. The broker's expiration feed only covers "what settles tonight" — it can't see an assignment that already happened before the open. I worked it out by hand from three things that didn't add up: share count going 1,200 → 1,000, a lot missing from the tax-lot table, and a day-over-day cash change with exactly the right size sitting in it. Three independent pieces of evidence pointing at the same event is the bar for calling it.
4. I sold off more than half of what upside was left
This is the third thing that actually happened today, and it too is invisible on the P&L.

The full 100% bar is my entire long exposure — shares plus long-dated calls. Dark is the part already sold to someone else; light is the part that still lands in my pocket if it rallies.
- Yesterday's close: 84.1% sold, 15.9% kept.
- Today's close: 93.45% sold, 6.55% kept.
In one day, the upside I can capture was cut by 59%.
The mechanism
It comes down to delta — how much an option moves for a one-dollar move in the underlying. For the calls I'm short, delta is the share of the rally I've already given away.
When the underlying rises, delta on a deep-ITM call runs toward 1. By today's close the 600 and 610 strikes I'm short carry a delta of 0.9999 — for every dollar QQQ gains, those two hand 0.9999 of it to the other side.
A short call at delta 1 is mathematically already "shares sold at the strike," just not delivered yet.
The same fact has a second reading: the probability these calls get carried to full payout rose from 87.06% to 95.98%. The return is now essentially locked to "the coupon if held to expiry," no longer floating with the market.
Put another way: I got today's 1.17%. If it rises from here, I barely participate.
But that isn't safety
⚠ There's an asymmetry here that has to be written down: this number explodes in the other direction on the way down.
In a real selloff those deltas collapse — the calls stop being equivalent to sold shares, and my exposure comes back. On July 29, at the low, the same measure hit 2.01x, meaning I was carrying twice my net value in market exposure.
So "I've sold 93% of my beta" absolutely does not mean "I'm safe now." What it precisely means is:
The upside is dead. The downside is still there.
5. The trade that made money is the one my own rule said not to take
Now the spread that contributed those 26.4 basis points.
The trade itself
Two minutes after the open — payrolls having just printed — I bought 20 same-day-expiry call spreads at a 4.71 debit. The structure is worth at most 7.00, so the most it can make is 2.29.
I started closing at 15:45. Offered 6.65, no fill. A minute later I actually raised to 6.75, still no fill. Finally 6.43 filled at 15:47, in four prints, thirteen minutes before expiry.
Net 36.5% on the debit, capturing 75.1% of theoretical max, held 6 hours 15 minutes.
Direction right — and I didn't hold to the bell gambling on where it pinned, which is exactly what last week taught me.
⚠ But the order sequence deserves its own note: I ended up conceding 0.32 from the highest offer to get out, which is 14% of the theoretical maximum. Same-day-expiry contracts are thin in the last fifteen minutes, and "resting at the middle and waiting" is a habit that charges you money in that window. Next time either start conceding earlier, or just take mid minus half the spread.
But the trade shouldn't have been opened
I wrote myself a rule: when the cushion is below 40%, permitted size is zero.
The cushion is the share of net value left after the broker's maintenance requirement. At entry it was 37.29%, already a second day under the line.
And buying a spread is cash out the door. The broker's arithmetic contains an identity: cushion = 0.75 × stock market value + cash — the net market value of options cancels exactly between the maintenance requirement and net value. So buying a spread means the cushion falls by precisely the debit, with no offset at all. The instant that order filled, the cushion was pressed to roughly 36.6%.
The rule said zero. I did twenty.
Making money doesn't change that verdict. A rule that only counts on days when something goes wrong isn't a rule — it's hindsight dressed up as one.
There are exactly two honest paths from here: either admit the gate doesn't hold in practice and rewrite it into something I will actually follow, or genuinely wait for 40% next time. "Written one way, done another" is the worst of the three, because it destroys the ledger's ability to predict anything.
And the result
By the close the cushion was back to 39.55% — still 0.45 points short of the line. Which is to say: a full day of +1.17% just about earned back the size I'd taken over the line, and hasn't turned positive yet.
Those 2.26 points of repair came from two places: the market, and the early assignment in the last section. Not from any risk action I took. The same source can take it straight back tomorrow.
6. Incidentally, a ruler got tested forward
Yesterday I built a "move in the underlying → cushion" ruler, to answer "how far does it have to rise before I can get aggressive." Today handed it a genuine forward test — not a fit after the fact; it was drawn at yesterday's close, and only today produced the answer.

The arithmetic is the identity from the last section:
cushion = (0.75 × stock market value + cash) ÷ net value
For a 1% move, the numerator tracks 0.75 × stock market value and the denominator tracks net delta exposure — both linear, so the ratio bends slightly upward. Feeding today's move into yesterday's close:
- Predicted: underlying +1.174% → cushion 39.41%
- Measured: 39.55%, a gap of 0.14 percentage points
That 0.14 has a name: the model didn't know 200 shares had been bought away before the open. That delivery added 0.133 points to the cushion (computed at the end of section 3).
Add it back and the residual is 0.01 percentage points.
This ruler had one genuine error in it — its denominator quietly assumed no hedge at all, which overstated "how far it can still fall" by nearly a factor of two. That got fixed yesterday. Today was the first forward test after the fix, and it wasn't falsified.
7. What I didn't do
The seven short calls expiring next Friday all went in-the-money today. Six at the 715 strike, one at 720, against a QQQ close of 723.04. Deltas of 0.686 and 0.584, seven days to expiry.
I touched none of them.
Seven days to expiry means high gamma — delta accelerates toward 1, which means this batch's upside gets given away fast too. Three paths, each with a cost:
| Choice | Cost |
|---|---|
| Let them settle and deliver 700 shares | Sell at 715/720; then I have to rebuild the position |
| Roll up and out | Buy back the old legs and sell new ones — two crossings of the spread, and the buyback happens after they've gotten expensive |
| Just buy them back | Least friction, but hands back part of the premium already collected |
This is Monday's first job, not something that can wait another week.
Closing
Here's how I'd rather book this day:
- Made: +1.32%, ahead of the index by 0.15 points, and the first real reduction in margin debt.
- How it was won: one trade my own rule said not to take.
- What actually happened: 200 shares were called away before the open (worth exactly the 0.19 of time value, in P&L terms); and capturable upside fell from 15.9% to 6.55% — the next two weeks of market are basically no longer mine.
- What I didn't do: the seven short calls expiring next Friday all went in-the-money, and I touched none of them.
Winning and being right are two different things. Today I won, and I wasn't right.
RELATED
FOLLOW
New posts land here first. Subscribe via RSS: /feed.xml
AUTHOR
Tianli Zeng
Hydraulic engineer. I write about AI methodology, daily investment reviews, and engineering practice.