The Bluff Filter is the paste-in version of this. It’s free →
// On this page
The prompt lists I reviewed when I built this post asked an unconnected chatbot to name a strike, supply a premium and work out a yield without giving it the live chain. In my captured options tests, that missing input produced unsupported estimates or stale figures presented with current-looking confidence. (A covered call is just selling someone the right to buy shares you already own at a set price, in return for cash up front.)
These seven prompts do the opposite. Each one sits on a real decision in the trade: is this stock even worth writing calls on, are the premiums rich or cheap right now, which strike fits what I’m trying to do, what could blow up before the contract ends, do I roll the call out or let the shares go. Every one makes me bring the real numbers. The AI doesn’t find the trade. It checks the one I found.
I run these on my own holdings, mostly on BMNR and a few others where I’m running the wheel: buy shares, sell calls against them, and if the shares get sold, sell puts to buy them back, round and round. Some I run every trade. Some only when something changes. None of them replaces the broker; they sit on top of it.
The seven, in plain terms: (1) is this stock worth it, (2) are the premiums rich or cheap, (3) which strike off my shortlist fits, (4) what could blow up before expiry, (5) roll, close, or let the shares go, (6) what did this trade teach me, (7) is the whole thing actually paying.
The discipline
Two rules sit underneath every prompt below.
One. An unconnected chatbot cannot read the prices on your broker screen. Some enabled connections now change the input route: OpenAI says its Alpaca connection can supply live quotes and option chains inside ChatGPT. My unconnected May and June captures also include unsupported estimates and web-sourced figures without a reproducible live-chain snapshot. The rule is therefore about provenance, not a timeless capability ban: use the broker or an enabled market-data source for the figures, verify them against the venue where you will trade, then let the model review the decision. Every prompt below either makes you paste those inputs or tells the model to mark the gap.
Two. Every prompt uses the Prompt Stack: SCOPE, FILTER, RISK, VERDICT. SCOPE fences the model to the numbers you give it and lets it say when it can’t verify something. FILTER makes you bring real numbers and splits fact from guess. RISK is the part most people skip. VERDICT stops the “it depends” non-answer that makes AI useless for a real decision.
Drop either rule and you’re back with the prompt lists that tell you to ask AI for “the best covered call to sell today”.
Should I write covered calls on this stock at all?
Do not write a covered call on shares you are unwilling to sell at the strike.
When to use it: Before you pick any strike, the real first question: is this a stock you should be selling calls on at all? It catches the most common mistake: chasing a bit of income on a stock you actually want to keep, where the cash you collect isn’t worth the upside you cap.
Why it earns its place: The lists I checked tended to jump straight to picking a strike. That’s backwards. If you wouldn’t be happy to lose the shares at a sensible price, you shouldn’t be writing calls. This is the one I reach for first on a stock I haven’t written calls on before.
SCOPE: Work only from what I tell you about this holding below; don’t fill in prices, figures or events from memory, and if something you’d need isn’t here, say so rather than guess. You are checking whether selling covered calls on [COMPANY NAME] makes sense given why I hold it. Do not suggest strikes or premiums. That comes later.
FILTER: Why I hold [COMPANY NAME]: [ONE-SENTENCE REASON]. How long I plan to hold: [HORIZON, e.g. 6 months / years]. How I’d feel if the shares got sold: [HAPPY TO SELL / WOULD BE ANNOYED / WOULD HAVE TO BUY THEM BACK]. Facts I have verified: [SECTOR / RECENT MOVE RANGE / DIVIDEND STATUS, WITH SOURCE AND DATE]. Split those supplied facts from the parts of my reasoning that are just a guess. Mark anything I did not supply as unknown.
RISK: Name the three situations where selling calls on this stock would actively work against me, for example capping a big run, forcing a tax bill by selling the shares, or trapping me in an endless chase as the stock keeps climbing. Be concrete.
VERDICT: One of three answers: “Fine to write calls on”, “Only worth it when the stock is running hot”, or “Don’t write calls on this”. State your confidence (low / medium / high) and the one thing that would change your mind.
What good output looks like: A clear verdict, risks tied to this stock rather than options in general, and the model owning up to which parts it’s guessing on. If it starts naming strike prices, the prompt has failed. Start again.
Where it falls short: The AI doesn’t know your tax position, your other holdings, or what you actually paid for the shares. This checks the stock, not your whole portfolio.
Are the premiums on this name rich or compressed?
Premiums only look rich or cheap against a dated volatility baseline you supply.
When to use it: Are the premiums on this stock dear or cheap against their own history? That’s what decides whether you’re being paid enough to risk having the shares sold out from under you.
Why it earns its place: This is the input most people skip. The price of a call depends on implied volatility, the market’s annualised estimate of future movement. When that’s high, premiums tend to be dearer; when it’s low, they’re thinner.
The prompt lists I checked either ignored this or assumed the model could look it up. This prompt makes you bring the figures and asks the model to interpret them. My own rule is to sell when the expected movement is high and sit out when it’s low, so this read decides whether I open a trade at all.
SCOPE: You cannot see live data. Work only from the numbers I paste below, and don’t fill any gap from memory. If something you’d need isn’t in what I give you, say so rather than estimate it.
FILTER: Here are the volatility figures for [COMPANY NAME], pulled from [SOURCE, e.g. broker / Barchart / Market Chameleon] on [DATE]:
- IV30, the annualised implied volatility for roughly the next 30 days: [VALUE]%
- IV Rank, where that sits versus the past year, 0 to 100: [VALUE]
- IV Percentile, how often the past year was lower than today: [VALUE]
- Realised 30-day vol, how much it actually moved recently: [VALUE]% (if available)
- Next known event: [EARNINGS DATE / DIVIDEND / NONE]
Explain in plain English what this combination tells me about how richly the premiums are priced right now. Rank and Percentile can disagree, so say which one is more telling for this stock and why.
RISK: Give me two reasons the expected swing might be high because the market knows something real (a coming event), rather than just being temporarily overpriced. What would I look at to tell the two apart?
VERDICT: Call the current premiums RICH / NORMAL / CHEAP for selling calls on this stock, with one sentence on whether that changes how close to the current price I should be selling.
What good output looks like: A real difference drawn between rank and percentile (rank reacts more to one wild spike; percentile to how often), a rich-or-cheap label, and a flag if there’s an event coming up inside the month or so the contract would run. If the model makes up a volatility number instead of using the one you pasted, stop and start again.
Where it falls short: Only as good as the numbers you paste. It can’t tell you why the expected swing is where it is. That’s research on the company, not a prompt.
Which strike on my shortlist actually fits my intent?
Make the model rank a verified shortlist against your stated intent; do not let it create the strikes.
When to use it: You’ve narrowed it down to two or three possible strikes off your broker screen. Which one fits what you’re actually trying to do, and where is your gut leading you wrong?
Why it earns its place: This is where people most often chase the bigger premium and end up selling a call so close to the current price that they lose the shares they wanted to keep. Asking AI to invent strikes invites it to make numbers up. Asking it to weigh up options you already pulled off your broker is the opposite: useful, fast, and it makes you commit to your goal before you see its answer. The shortlist I paste comes straight off my broker screen, and the prompt’s job is to stop me talking myself into the richer one.
SCOPE: Work only from the figures I paste below; I pulled these off my broker screen. Don’t invent or adjust any of them from memory, and if something’s missing, say so rather than fill it in. You are not picking strikes. You are checking my shortlist.
FILTER: [COMPANY NAME] last traded at [PRICE]. What I paid for the shares: [BASIS]. What I want: [MOSTLY INCOME / KEEP THE SHARES / HAPPY TO SELL]. Candidate strikes for [EXPIRY DATE], copied from my broker (delta = a rough proxy some traders use for the chance of finishing in the money, not a promise of assignment; OI = how many of these contracts are open, one input into how easy they may be to trade):
- Strike A: [STRIKE], delta [VALUE], premium [PREMIUM], OI [OI]
- Strike B: [STRIKE], delta [VALUE], premium [PREMIUM], OI [OI]
- Strike C: [STRIKE], delta [VALUE], premium [PREMIUM], OI [OI]
For each, work out before tax: (1) what I make if the stock goes nowhere, (2) what I make if the shares get sold at the strike, (3) that second figure scaled to a yearly rate, using the real days left. Include [FEES, or 0] and show the denominator and maths. Don’t fill in anything I left blank. If I haven’t given you something, say so.
RISK: For each strike, name the one way it goes wrong: what stock move makes this the wrong pick looking back? Rank the three by which one hurts what I said I want the least.
VERDICT: Pick one. Say which of my inputs would have to change for your pick to flip to another.
What good output looks like: Visible arithmetic, three different ways it could go wrong, and a pick that matches what you said you want rather than just the biggest premium. If you said “keep the shares” and the model picks the highest-delta candidate for the headline yield, push back.
Where it falls short: Delta measures price sensitivity. Some traders also use it as a rough proxy for the chance of expiring in the money, not for the exact chance or timing of assignment. It changes with price, time and volatility. Use the live figure as context, not as a forecast.
What’s about to blow up inside my contract window?
An event-window check is only as current as the dated sources you supply or connect.
When to use it: Is there a results day, a dividend date, a central-bank meeting, or some other known event inside the life of the contract that you’ve forgotten about? It’s the cheapest mistake to avoid and the one most often missed. Nobody sells a call planning to be caught out by results; they just forget to look.
Why it earns its place: This is a checklist, not analysis, and AI is good at thorough, boring checklists. It also catches a quieter risk: a dividend can make the buyer take your shares early, which people often miss. The version I paste in starts from my real end date and strike, so the model is checking my actual trade, not a made-up one.
SCOPE: Work only from the trade details I give you below; don’t assume dates or events you can’t see, and flag anything you’d need to check rather than guess at it. Your job is to list everything I might have forgotten about the life of this contract, not to say whether the trade is good.
FILTER: Trade: selling [N] [COMPANY NAME] [EXPIRY] [STRIKE] calls. Today: [DATE]. The contract runs [DAYS] days. What I know about the company: [SECTOR, ANY EVENTS YOU KNOW ABOUT].
Walk through this checklist and flag anything I should check before placing the trade:
- Results day inside the window
- A dividend inside the window, and whether it’s big enough that the buyer might take my shares early to collect it
- Known product, legal, or economic events
- Anything unusual clustered around my end date
- My account and tax jurisdiction, if supplied. Flag the official guidance or professional calculation I need; do not infer the treatment
RISK: For anything flagged “check”, tell me exactly what to look up and where, and what would make it bad enough to call off the trade.
VERDICT: CLEAR ON THE SUPPLIED EVENTS / CHECK X, Y / BLOCKED BY [KNOWN EVENT]. One line. Do not call the trade itself good or bad.
What good output looks like: Specific things to check in specific places. For a dividend-paying share, that includes the ex-dividend date, whether the call is in the money, and whether the dividend exceeds the remaining time value. Those conditions can increase early-assignment risk; they do not make assignment certain.
Where it falls short: A model without a dated source or enabled data connection cannot safely supply today’s event calendar. Any specific date it gives you is a thing to verify on the company’s investor page, the exchange or your broker, not a fact to trade from.
Tax is a separate verification. For UK retail positions, HMRC’s traded-options summary treats grant, lapse, closing and exercise differently. The prompt should flag which calculation you need, not pretend to complete it from a holding period alone.
My short call is in the money: roll, close, or let it assign?
A roll decision begins with your updated thesis and executable prices, not with a generic rule to keep rolling.
When to use it: Mid-trade. The stock has run. It’s now above your strike, or close to it, which means the call is on track to cost you the shares. What do you actually do?
Why it earns its place: This is the biggest recurring decision in the strategy. Most prompts treat rolling the call out as a topic to explain, not a decision to make. Done right, this one makes you spell out your updated view before the AI answers, which is the actual discipline. I keep a hard rule that I close or roll by 21 days before the end rather than nurse a trade to the wire, and the prompt is built to hold me to that rather than let me wing it.
SCOPE: Work only from the trade and the figures I give you below; don’t invent a roll price or any number I haven’t supplied, and if something you’d need isn’t here, say so. You will help me choose between three actions: ROLL (move the call out to a later date), CLOSE AT A LOSS (buy the call back now), or LET THE SHARES GO (let them be sold at the strike).
FILTER: Trade: sold [N] [COMPANY NAME] [EXPIRY] [STRIKE] calls. Premium I took: [CREDIT]. What it costs to buy back now: [DEBIT TO CLOSE]. Stock now: [PRICE]. Days left: [DTE]. Why I sold the call in the first place: [REASON]. What’s changed in my view of the stock since: [UPDATED VIEW, or “nothing’s changed, it just ran”]. Tax and cost context: [ACCOUNT / JURISDICTION / KNOWN CONSEQUENCE, or “CHECK OFFICIAL GUIDANCE”]. Treat this as a flag for a real calculation, not tax advice.
For each of the three actions, lay out:
- What it does to my cash today
- What would have to be true for it to be the right call in 30 days
- What it says about where I think the stock goes next
RISK: Show the cumulative debit or credit and added duration after every prior roll. What position-specific cost or condition would make another roll worse than closing or assignment? Do not invent a universal maximum number of rolls.
VERDICT: Recommend one action. State the single new fact that would change your recommendation.
If nothing changed and the trade met the exit terms you set, the prompt should make you explain why you would now pay to avoid that outcome.
What good output looks like: A clean three-way comparison, the cumulative cost and duration of every roll made explicit, and a recommendation that matches the view you typed in. Reject any universal maximum-roll rule that is not derived from the position’s real economics.
Where it falls short: Do not let the model supply a roll price without a named, current data route. It can frame the decision; verify the executable debit or credit with your broker.
Did the process work, separate from the outcome?
Grade the decision process separately from whether this one trade made money.
When to use it: The trade closed: the shares got sold, the call expired worthless, or you bought it back. Did the process work, separately from whether the result was good?
Why it earns its place: This is the prompt nobody writes and everybody needs. This strategy lives or dies on doing the same sensible thing over and over, which means most of the edge comes from keeping an honest record. AI is good at structured reflection if you give it the facts and tell it not to flatter you. I run this after a trade closes, when the temptation is to file a winner as “good call” and move on without checking whether the thinking behind it actually held.
SCOPE: Work only from the closed-trade facts I give you below; don’t fill in numbers I haven’t supplied, and if something’s missing, say so rather than guess. Score the process and the outcome separately. Do not be encouraging. Be useful.
FILTER: Trade closed: sold [N] [COMPANY NAME] [STRIKE] calls, opened [OPEN DATE] for [CREDIT], closed [CLOSE DATE] for [DEBIT or “expired worthless” or “shares sold at the strike”]. Profit or loss on the call: [VALUE]. Profit or loss on the shares over the same time: [VALUE if relevant]. Why I sold this strike at the time: [ORIGINAL REASONING]. What I’d do differently knowing what I now know: [HONEST ANSWER, or “I’m not sure, that’s why I’m asking”].
Walk me through:
- Did the strike I picked match what I said I wanted?
- Was the timing (versus how richly premiums were priced, versus events) defensible at the time, or only with hindsight?
- Did I manage the trade by a rule I’d set, or did I make it up as I went?
- What’s the one repeatable thing, good or bad, to take from this trade?
RISK: Name the thinking trap most likely at play if I treat this one trade as proof my approach works (or doesn’t). For example: too small a sample to tell, judging the decision by the result, or building a tidy story after the fact.
VERDICT: Score the process (1–5) and the result (1–5), separately. One sentence on the gap between them.
What good output looks like: Two scores that don’t match. A good result off a sloppy process is the most useful thing the model can flag. One concrete rule to repeat, not vague advice about “staying disciplined”.
Where it falls short: This is the prompt where AI is most likely to flatter you. The “do not be encouraging” line matters; without it, the model will find a way to call a losing trade a valuable lesson. If you read the output and feel good about everything, run it again and ask what it went easy on.
Is the wheel paying for itself, or just feeling productive?
Compare the all-in covered-call result with simply holding the same shares over the same dates.
When to use it: Every few months, or after the market mood shifts. Is the whole covered-call habit still doing what it was meant to? This is the prompt for anyone who’s been at it for six months and isn’t sure it’s working.
Why it earns its place: This isn’t the per-trade review. It looks at the strategy as a whole. The honest test is simple: would you have made more just holding the shares and doing nothing? Selling calls earns income, but each open call caps some upside if the stock takes off.
A few cycles into running the wheel on BMNR, this is the one I make myself run. By then the individual wins feel like proof, and comparing the all-in result against “just held it” is what tests whether they are.
SCOPE: Work only from the numbers I give you below; don’t fill in any figure from memory, and if something you’d need to judge this isn’t here, say so rather than guess. Compare the covered-call record with simply holding the same shares over the same dates. Start neutral and let the supplied total-return figures decide.
FILTER: I’ve been selling covered calls on [COMPANY NAME] for [PERIOD]. Numbers:
- Total income collected: [VALUE]
- Times the shares were sold off me: [N]
- Times I bought a call back at a loss: [N]
- Profit or loss from shares sold off me: [VALUE]
- Stock price at the start: [PRICE]
- Stock price now: [PRICE]
- Dividends received or missed: [VALUE]
- Total fees and other trading costs: [VALUE]
- What I’d have done with the shares otherwise: [HOLD / SELL EVENTUALLY / SELL SOME NOW]
Work out, with the maths visible:
- What I actually earned from the income, as a yearly rate on the money tied up
- What I’d have made just holding the shares over the same time
- What it cost me when shares were sold off me: the gain I’d have had versus the income I took
RISK: Two ways this comparison is unfair to selling calls, and two ways it’s unfair to just holding. Be even-handed.
VERDICT: One of: “It’s paying for itself”, “You’d have done better just holding, you’re paying for the feeling of income”, or “Too noisy to tell, keep a record for another [N] months”. Name the one thing I should be tracking that I’m not.
What good output looks like: Visible arithmetic, an honest comparison (the prompt should be willing to say you’d have done better just holding, which is the likely answer on a stock that’s been climbing, and the model needs permission to say so), and a specific thing to start tracking.
Where it falls short: Only as good as your records. If you haven’t been noting when shares were sold off you and what you made or lost, the prompt can’t help. The fix is to start a record now and run the prompt in three months.
Where AI prompts for covered calls help, and where to stop
| Stage | AI useful? | When to put the prompt down |
|---|---|---|
| Before the trade, is this stock suitable? | Yes, pressure-tests your reasoning | If it fills a missing portfolio or tax input instead of marking it unknown |
| Before the trade, are premiums rich or cheap? | Partial, reads the figures if you supply them | When a live number has no named, current source |
| Before the trade, picking a strike | Yes, checks a shortlist you built | The moment you ask it to invent strikes |
| Before the trade, events to watch | Yes, organises the checklist | When a specific date lacks a dated primary source |
| In the trade, roll, close, or let the shares go | Yes, talks through the choice against your goal | When you need a real roll price, that’s the broker |
| After the trade, review | Yes, honest reflection | If the model starts flattering you |
| Strategy review, is it working? | Yes, spots patterns in your own record | If your record is patchy; finish it first |
The two hard “no” zones: supplying market-dependent figures without a reproducible broker or connected-data source, and trusting exact options maths without checking it in a broker or dedicated calculator. The model can organise verified inputs. It does not turn an untraceable figure into a tradeable one.
The short version
What worked: Treating AI as a second opinion that holds what you’re trying to do and your real numbers in mind at the same time. The Prompt Stack keeps it from sliding into “supportive coach”.
What didn’t: Asking an unconnected model to supply the broker inputs, trusting unchecked options maths, or asking it to pick a trade from missing data. The captured failures came from letting an unsupported figure enter the decision as if it were current.
Bottom line: Full confidence in the method. Rather less in whether you’ll resist asking for a strike recommendation anyway.
These are the seven I run. They’ll change as the tools change. The discipline is stable: every market figure needs a named, dated route back to the broker or connected source, and every calculation gets checked before it reaches a trade.
These seven cover getting into a trade. What to do after one closes, when the urge to sell another call straight away is loud, is at AI covered calls: when NOT to sell another one.
The made-up numbers I’ve caught running these prompts (what every tool gets wrong on options, and how) are at what AI gets right (and wrong) about options trading.
None of this is really about options. The two rules at the top, bring the real numbers and make it commit, are the same two I use on anything where being wrong costs something. The general version, including the checks you run on the answer afterwards, is at the method.
I built these prompts around the six closed BMNR covered-call trades recorded in my private trade log. Tickers named, sizes never.
Common questions
- Can AI pick covered-call strikes for me?
- Do not ask an unconnected chatbot to build the shortlist. In my captured options tests, models supplied unsupported estimates or stale figures when the live chain was missing. A broker or market-data connection you enable can provide current inputs, but verify them against the venue where you will trade. The prompts here make the model check a shortlist built from those verified inputs.
- My call is about to cost me the shares. Should I roll, close, or let them go?
- That's the biggest recurring decision in this strategy, and it's a judgement call, not a number. The roll prompt makes the model act as an auditor of your decision: it holds the premium you took, what it would cost to buy the call back now, how many days are left, and whether your view of the stock has changed, then makes you pick between three options: roll the call out, buy it back at a loss, or let the shares get sold. The actual roll price stays the broker's job.
- Where does AI help in a covered-call trade, and where should you stop?
- It helps you pressure-test the reason you're holding the stock, sanity-check a shortlist built from verified figures, run a pre-trade event checklist, think through a roll-or-close decision, and review a finished trade. Stop when an input is missing, and verify every market figure and calculation against your broker or a dedicated calculator before acting.
Ben tests how far you can trust the main AI assistants, and publishes exactly where they get things wrong. Every post here is a first-hand test with the receipts, including the times a tool simply wasn’t worth the trust. About Ben →
The site tests how far you can trust the main AI assistants, on real decisions. Start with the Prompt Stack for the four-stage framework, free and ungated, or the Bluff Filter for the paste-ready version with a real before and after.