Rolling is the most over-discussed and under-specified part of covered call strategy. Every educational article tells you "consider rolling when..." and then offers vague guidance like "if the call is in the money" or "if there's still time to extract more premium."
That's not a framework. That's a mood.
After hundreds of covered call positions, I've converged on a specific decision tree with actual numbers. This post is that tree. You don't have to use my exact thresholds — but you should have your own, written down, and applied consistently. Discretionary "vibes-based" rolling is how you give back your year's premium in three bad months.
The Three Decision Variables
Every roll decision comes down to three things:
- Percent of max profit captured. How much of the original premium is already locked in?
- DTE remaining. How much time is left on the original contract?
- Where the underlying is relative to your strike. OTM, ATM, or ITM, and by how much.
That's it. Earnings, dividends, and IV regime are inputs that adjust the thresholds, but the core decision is always these three numbers.
My Decision Tree
Here's the actual flowchart I run on every position weekly. Each decision is conditioned on the three variables above.
Case 1: Call is OTM, you've captured >80% of max profit, >7 DTE remaining
Action: Close the call (buy to close), don't roll yet.
This is the classic "take profits early" rule and it's the right call. You captured most of the premium, you have time, and the marginal premium left in the contract is being earned at a terrible risk-adjusted rate. The remaining 20% of premium represents 100% of the remaining downside risk.
Once closed, wait for an opportunity to write a new contract — usually after a small bounce or a couple days of theta decay on the new chain. Don't immediately re-write at a worse strike just because you closed the old one.
Case 2: Call is OTM, <50% max profit, <7 DTE
Action: Let it ride.
Theta is your friend now. The remaining premium will decay rapidly into expiration. As long as the underlying isn't threatening your strike, just let the contract expire worthless. Avoid the temptation to roll out for "more premium" — the credit on a roll this close to expiration is mostly the new contract's premium, not a meaningful improvement.
Case 3: Call is ATM or slightly ITM, <5 DTE
Action: Decide if you want to keep the stock. If yes, roll. If no, let it get assigned.
This is the moment of truth. The contract is going to either settle ITM (assignment) or you're going to roll it. Rolling at this stage is essentially a decision to keep owning the stock and continue selling premium against it.
Practical rule: roll only if the roll generates a credit (premium received on the new contract exceeds debit paid to close the old one). Rolling for a debit is paying to keep your shares — that's no longer an income strategy, that's just defending a position.
If the roll generates only a tiny credit (~$5-15 per contract), the math says you're better off letting assignment happen and re-deploying the cash. The credit is too small to be worth the additional duration risk.
Case 4: Call is deep ITM (>5% above strike), any DTE
Action: Almost always let it get assigned. Rarely roll.
If your strike is $200 and the stock is $215, the underlying has run away from you. The intrinsic value of the call is $1,500 per contract. Rolling out and up to a higher strike will require either paying a debit or rolling so far out in time that you're locking in a sub-optimal contract.
This is one of those cases where amateur traders try to "save" the position by rolling out 90+ days to a strike $5-10 higher. The math almost never works. You're trading a known $1,500 loss for an unknown future, and you're tied up in a 90-DTE contract on a stock that's clearly trending against your short call.
Take the assignment. Realize the gain on the stock (it ran above your strike — that's a winning outcome). Redeploy.
The exception: if there's a tax reason to defer the sale (you're 11 months into a 12-month long-term hold, for example), rolling far enough out to defer realization may be worth the cost. That's a tax decision, not an income decision.
Case 5: Call is ITM by exactly the dividend amount, ex-div is tomorrow
Action: Buy to close before the close. Always.
Early assignment risk on the day before ex-dividend is the most predictable risk in covered call writing. If the extrinsic value (time value) on the call is less than the dividend, a rational option holder will exercise the night before to capture the dividend. You can lose the dividend you were counting on, plus the premium you intended to keep.
Just close the call. Take the small loss on the option. Keep the dividend. Re-write after ex-div.
The Numbers Behind the 80% Rule
Why 80%? Here's the math.
The original premium represents the time value at the moment you sold the call. As the underlying moves and time passes, the option's value decays toward intrinsic. If you've captured 80% of the premium, the remaining 20% is the residual time value still floating in the contract.
Closing at 80% locks in $0.80 per dollar of original premium. Holding to expiration in hopes of capturing the last $0.20 carries the same theoretical risk as the entire original trade — you're now exposed to a full underlying move with only $0.20 of cushion.
Tom Sosnoff and the tastytrade research team have published versions of this study many times. Across thousands of trades, closing at 50-80% of max profit produces better risk-adjusted returns than holding to expiration. The exact threshold matters less than having one and applying it consistently.
I use 80% because I want to give the position room to capture most of the premium. More aggressive traders use 50%. The more aggressive you are about closing early, the more you need a tight re-entry process or you'll find yourself out of the market most of the time.
Common Mistakes
A few patterns I see other CC sellers fall into:
Rolling for the sake of rolling. Every Friday, mechanically rolling every short call out a week. This generates churn, transaction costs, and inconsistent strikes. Roll because the math says to, not because it's Friday.
Rolling up and out to "save" a losing position. Stock ran 8% above your strike. You roll out 60 days and up $5 in strike. Now you're holding a 60-DTE position where the stock has already proven it can run on you. The expected outcome is paying another debit in 60 days.
Refusing to ever take assignment. If you set a strike, you've predetermined the price you'd be willing to sell at. When the stock hits it, assignment is the success case, not a failure. Reframe: assignment means your position made money exactly as planned.
Rolling through earnings without re-evaluating. Your original contract avoided earnings. The roll extends past the next earnings date. Now you have a fundamentally different trade with different risk. Re-do the analysis as if you're opening a fresh position.
Tooling
The decision math itself is simple. The hard part is keeping track across 10-15 positions: how much premium has each captured, how many DTE remain, where the underlying is relative to strike. That's what made me build Myron's roll-forward feature — when an active call hits >80% max profit or goes ITM, I see candidate rolls with the credit/debit math already calculated. No manual chain diving for each position.
You don't need a tool to follow this framework. A spreadsheet works. The point is having the framework written down and applied consistently — not the tooling.
For related strategy, see What Delta Should You Use for Covered Calls? and Covered Calls and Earnings: The Biggest Trap.