What is a Bull Put Spread?

A Bull Put Spread is an options income strategy where you sell a put at a higher strike and simultaneously buy a put at a lower strike — both with the same expiration date. You collect net premium upfront and profit if the stock stays above your sell strike at expiration.

MAX PROFIT
Net Premium × 100
Stock closes above sell strike
MAX LOSS
(Width − Premium) × 100
Stock closes below buy strike
BREAKEVEN
Sell Strike − Premium
Loss starts below this price
When to Use This Strategy
✓ Ideal Conditions
  • 📈 Bullish or neutral market outlook
  • ⚡ High IV Rank (50%+) — premium is expensive
  • 📅 DTE 35–60 days — optimal theta decay
  • 🏦 Strong company with clear support levels
  • 📊 VIX below 30 — stable macro environment
✗ Avoid When
  • 📉 Clearly bearish trend — stock breaking down
  • 📢 Earnings within the period — binary event risk
  • ⚠️ VIX above 35 — too much systemic risk
  • 📉 Low IV Rank (below 30%) — premium too cheap
  • 💸 Margin > 5% of portfolio — concentration risk
How to Select Quality Companies

The single biggest risk reduction comes from stock selection. Only sell puts on companies you would genuinely want to own. This is the core principle of the Wheel strategy.

FUNDAMENTAL QUALITY
• ROE > 20% — strong returns on equity
• FCF Margin > 15% — generates real cash
• Debt/Equity < 0.5 — low leverage risk
• Gross Margin > 30% — pricing power
• Piotroski F-Score ≥ 6 — financial health
• Revenue growth consistent 3+ years
MARKET POSITION
• Large/Mega cap — NYSE or NASDAQ only
• Market leader in its sector (moat)
• Analyst consensus: Buy or Strong Buy
• Short Float < 10% — low short pressure
• Beta 0.7–2.0 — manageable volatility
• Sector ETF above SMA50 — sector health
TECHNICAL SETUP
• Stock price above SMA50 and SMA200
• Clear horizontal support at or near strike
• RSI not extremely overbought (>80)
• No major resistance directly above entry
• Volume confirming direction
• Place sell strike at or below support
QUALITY EXAMPLES
✓ MSFT, AAPL, GOOGL — mega cap tech
✓ ASML, AMAT, LRCX — semis equipment
✓ NVDA (when IV high) — with tight spread
✓ AMZN, ANET, VEEV — cloud/software moat
✗ Meme stocks, biotech, micro caps
✗ Stocks near earnings announcement
Risk Management Rules
💰
Position sizing
Never exceed 5% of portfolio margin per position. Maximum 40% of total margin in one sector.
🛑
Stop-loss rule
Close the position if loss reaches 100% of premium collected. Example: collected $300 → close if spread costs $600 to buy back.
🎯
Profit taking
Close at 50% of maximum profit. If you collected $300, close when spread is worth $150 to buy back. Frees margin, reduces time in trade.
📅
DTE management
Enter at 35–60 DTE. Close or roll at 21 DTE to avoid gamma risk. Never hold through earnings unless using Wheel with full assignment readiness.
🔄
Rolling losing positions
If stock approaches your sell strike, roll down and out — move to lower strike at further expiry for net credit. Only roll if thesis is intact.
Example Trade — LRCX

Lam Research trading at $260. IV Rank 66%. Selling a Bull Put Spread:

Sell 1x LRCX $260 Put @ $21.34 mid
Buy 1x LRCX $250 Put @ $16.55 mid
─────────────────────────────
Net Premium: $4.79 × 100 = $479 received
Max Loss: ($10 − $4.79) × 100 = $521
Breakeven: $260 − $4.79 = $255.21
Buffer: (260 − 255.21) / 260 = 1.8%
R:P: 521 / 479 = 1.09:1 ← Excellent
Ann. yield on margin: ~197% / year
⚠️ Educational example only. Not financial advice. Past results do not guarantee future performance.
1
Stock Parameters
2
Spread Parameters
3
Wheel Filter (ready to hold shares)
Piotroski F-Score ≥ 6
Analyst Recom.: Buy+
Current Ratio ≥ 1.5
Short Float ≤ 5%
Price above SMA50
Strike at support
Thesis Killers noted
Cash available for shares
4
Portfolio Control
Spread you already hold
Signed in, the tab loads your open put spreads from the daily broker snapshot (portfolio connected to IBKR) and the prices by itself. "Already realized" is the result of earlier legs of the same trade (a spread you bought back and rolled into this one) — it is not in the snapshot, enter it once; it is remembered per spread in this browser.
This spread now
—
Whole trade now
—
Worst … best at expiry
—
Spread breakeven
—
Whole-trade breakeven
—
How likely — the same question, four ways
Options market: what option prices imply today (lognormal at implied vol, risk-neutral drift). Large US stocks in the same state: what actually happened next to large US stocks that were as far below their 1-year high and moved as much over the last month, at a similar volatility — the way desks run event studies. This stock: its own past, in the same state or on any day. History rows are volatility-normalised and rescaled to this stock's current volatility. Past large stocks that no longer exist are missing, which flatters the history rows a little.
Three paths, compared — expected result for the whole trade
Each cell: the average end result over that model's range of outcomes, how often the path ends better than closing today, and the result in the worst 10% of outcomes. The options-market model prices every path about equally by construction (option prices are fair); a real difference between paths only appears when you believe a history model more than the market. Roll uses the strikes and expiry from the roll planner below.
P&L by stock price
Price needed to reach the goal, over time
Green line: the lowest stock price on each day at which closing the spread meets the goal. Blue bands: where the stock is likely to be — inner band 25th–75th percentile, outer band 10th–90th, thin line the median (current IV, no growth beyond the dividend).
Price needed by month-end
"Chance above on that date": the stock is at or above the needed price on that exact day. "Chance reached by then": at least once before that day it touched the level where you could close at the goal (3,000 simulated paths). Lognormal at current IV, no growth beyond paying the dividend.
Roll planner — until when a roll still helps
Each row: close the current spread on that date and open the new one, both at model mid minus slippage, with the stock at the price above. "Chance" columns are seen from today: the stock at or above the goal price at the respective expiry. Holding cost per week: how much the current spread loses in a week if the price does not move.
If the stock is at this price — from when am I at the goal?
Total P&L by price and date
Framed row: closest to the current price. Values include the already-realized amount. Exit at model mid minus slippage; real fills follow the bid/ask. Black-Scholes, European exercise, constant IV. Not investment advice.
Weekly put spread, half a sigma below the price
Live quote needs TWS and the bridge (ibkr_bridge.py) running on this computer; it reads the nearest Friday's two puts.
Today
—
Spread
—
Credit needed
—
Credit in TWS now
—
Realised vol
—
Chart: every week's strikes and result
Checks
Adding (one add, tested 2015–26)
History: first session's open → last session's close
IBKR Options Metrics Reference
MetricIdealAcceptableStop
52W IV Rank50–80%40–50%< 40%
Implied Vol %50–100%+35–50%< 30%
IV / Hist Vol110–150%100–110%< 100%
Put/Call Interest0.5–0.90.9–1.2> 1.5
Opt Volume10K+2K–10K< 500
Open Interest (at strike)500+100–500< 50
Bid/Ask option spread< 5% mid5–10%> 15%
Delta (sell leg)0.25–0.350.35–0.45> 0.50
DTE45–60 d30–75 d< 21 d
R:P Ratio Reference Table
R:PRatingWhen it occursAction
1:1 – 2:1ExcellentATM strikes, IV Rank 60%+, tight spreadOpen immediately
2:1 – 5:1GoodOTM delta 0.25–0.35, IV Rank 50%+Open
5:1 – 10:1AcceptableDeep OTM, IV Rank 40–50%Top stocks only (MSFT, AAPL)
10:1 – 20:1PoorFar OTM strikes, low IVDo not open
> 20:1StopNaked put, IV very lowUse a spread
Formulas
NET PREMIUM = (Sell Bid + Sell Ask)/2 − (Buy Bid + Buy Ask)/2
BREAKEVEN = Sell Strike − Net Premium
BUFFER = (Price − Breakeven) / Price × 100%
MAX LOSS = (Width − Net Premium) × 100
R:P = Max Loss / (Net Premium × 100)
YIELD on margin (ann.) = (Net Premium × 100) / Margin × (365 / DTE) × 100%
Pre-Trade Checklist (35 points)
Block A — Initial Screening (Finviz)
Block B — Options Environment (IBKR)
Block C — Spread Quality
Block D — Portfolio Risk