Option Strategies and Payoff Combinations › Vertical Spreads

Michael BrenndoerferNovember 13, 202510 min read
Quantitative FinanceAll chapters
Part 3 of 15Forwards, Futures, and Options
Chapter 19Option Strategies and Payoff Combinations › Vertical Spreads
Reading section 4 of 11 · Vertical Spreads · 10 minSection 4 of 11 · 10 min

Book contents

Section 4 of 11 · 10 min read

Option Strategies and Payoff Combinations › Vertical SpreadsOne section · Sections in this chapter4 / 11 ↓
Reading tools Definitions & inline links

Choose your expertise level to adjust how many terms are explained. Beginners see more tooltips, experts see fewer to maintain reading flow. Hover over underlined terms for instant definitions.

Article links

Make inline references clickable

Vertical spreads involve buying and selling options of the same type (both calls or both puts) with the same expiration but different strike prices. The "vertical" terminology comes from how options are traditionally displayed, with strikes listed vertically.

Spreads reduce both the cost and the profit potential compared to single options. They're useful when you have a directional view but want to limit your capital outlay or when you believe the underlying will move to a certain level but not beyond it.

Bull Call Spread

A bull call spread profits from a moderate rise in the underlying price. You construct it by:

  1. Buying a call at a lower strike price K1K_1
  2. Selling a call at a higher strike price K2K_2 (where K2>K1K_2 > K_1)

Both options have the same expiration. The premium received from selling the higher-strike call partially offsets the cost of buying the lower-strike call, reducing your net investment.

The combined payoff is:

Bull_Call_Spread=max⁡(ST−K1,0)−max⁡(ST−K2,0)−(C1−C2)\text{Bull\_Call\_Spread} = \max(S_T - K_1, 0) - \max(S_T - K_2, 0) - (C_1 - C_2)

where:

  • STS_T: stock price at expiration
  • K1K_1: lower strike price (long call)
  • K2K_2: higher strike price (short call), where K2>K1K_2 > K_1
  • C1C_1: premium paid for the K1K_1 call
  • C2C_2: premium received for the K2K_2 call
  • (C1−C2)(C_1 - C_2): net debit paid to establish the spread
  • max⁡(ST−K1,0)\max(S_T - K_1, 0): payoff from the long call
  • −max⁡(ST−K2,0)-\max(S_T - K_2, 0): obligation from the short call

The spread works by buying upside exposure at K1K_1 and selling away upside above K2K_2. The short call partially finances the long call, reducing the net cost. When the stock rises above K2K_2, both options are in-the-money and their intrinsic values offset each other, capping the spread's profit at the difference between strikes minus the net cost. This capping mechanism is essential to understand: above K2K_2, every additional dollar the stock rises adds one dollar to your long call's value but also adds one dollar to your short call's obligation, netting to zero additional profit.

Analyzing the payoff structure at different price levels shows three regions with different outcomes.

Below K1K_1 (ST≤K1S_T \leq K_1): Both calls are out-of-the-money and expire worthless. The loss is the net debit paid. This represents the worst-case scenario where your bullish view was entirely wrong. The consolation is that your loss is limited to what you paid to enter the position.

Between K1K_1 and K2K_2 (K1<ST<K2K_1 < S_T < K_2): The long call at K1K_1 is in-the-money with value ST−K1S_T - K_1, while the short call at K2K_2 remains worthless. Profit increases linearly. This is the range where your directional bet is paying off. Each dollar increase in the stock price adds a dollar to your profit.

Above K2K_2 (ST≥K2S_T \geq K_2): Both calls are in-the-money. The long call gains (ST−K1)(S_T - K_1) but the short call loses (ST−K2)(S_T - K_2), netting to a constant (K2−K1)(K_2 - K_1). You have reached maximum profit. Further stock appreciation doesn't help you because you sold away that upside when you established the short call.

This creates three distinct regions:

Profit={−(C1−C2)if ST≤K1ST−K1−(C1−C2)if K1<ST<K2(K2−K1)−(C1−C2)if ST≥K2\text{Profit} = \begin{cases} -(C_1 - C_2) & \text{if } S_T \leq K_1 \\ S_T - K_1 - (C_1 - C_2) & \text{if } K_1 < S_T < K_2 \\ (K_2 - K_1) - (C_1 - C_2) & \text{if } S_T \geq K_2 \end{cases}

where:

  • −(C1−C2)-(C_1 - C_2): net debit paid (maximum loss when both calls expire worthless)
  • ST−K1−(C1−C2)S_T - K_1 - (C_1 - C_2): long call intrinsic value minus net cost (linear profit zone)
  • (K2−K1)−(C1−C2)(K_2 - K_1) - (C_1 - C_2): maximum profit when both calls are in-the-money

Each region represents a different outcome. The first region represents complete failure of your bullish thesis. The second region shows partial success where your view was directionally correct. The third region represents full success where the stock moved enough to maximize your profit.

In[13]:
Code
# Bull call spread
K1 = 95  # Lower strike (buy call)
K2 = 105  # Higher strike (sell call)
C1 = 8  # Premium paid for lower-strike call
C2 = 3  # Premium received for higher-strike call
net_debit = C1 - C2  # Net cost of the spread

S = np.linspace(70, 130, 200)

# Component payoffs
long_call_K1 = call_payoff(S, K1, C1, "long")
short_call_K2 = call_payoff(S, K2, C2, "short")

# Combined spread
bull_call_spread = long_call_K1 + short_call_K2

# Calculate key metrics
max_profit_bull = (K2 - K1) - net_debit
max_loss_bull = net_debit
breakeven_bull = K1 + net_debit
Out[14]:
Visualization
Bull call spread profit and loss diagram with a flat loss region below the lower strike, a rising profit zone between strikes, and a flat profit ceiling above the upper strike, annotated with max profit and max loss labels.
Bull call spread payoff profile constructed from a long lower-strike call and a short higher-strike call. This vertical spread limits both the maximum loss (net debit paid) and maximum profit (difference between strikes minus debit). The strategy captures value from moderate price increases while mitigating the cost of a standalone call option.
Out[15]:
Console
Maximum Profit: $5.00
Maximum Loss: $5.00
Breakeven: $100.00

The bull call spread caps maximum profit, sacrificing unlimited upside in exchange for reduced capital outlay. This net cost also represents the maximum loss, creating a defined-risk profile that simplifies position sizing. The breakeven point falls between the two strikes, requiring a moderate move to achieve profitability. This structure trades unlimited profit potential for lower cost and defined risk parameters.

Bear Put Spread

A bear put spread is the bearish counterpart to the bull call spread. You construct it by:

  1. Buying a put at a higher strike price K2K_2
  2. Selling a put at a lower strike price K1K_1 (where K1<K2K_1 < K_2)

The strategy profits when the underlying price falls moderately. The construction mirrors the bull call spread but uses puts instead of calls and profits from downward price movement rather than upward movement. The put you buy at the higher strike gains value as the stock falls, while the put you sell at the lower strike limits your profit potential but reduces the cost of the position.

In[16]:
Code
# Bear put spread
K1_bear = 95  # Lower strike (sell put)
K2_bear = 105  # Higher strike (buy put)
P1 = 3  # Premium received for lower-strike put
P2 = 8  # Premium paid for higher-strike put
net_debit_bear = P2 - P1

S = np.linspace(70, 130, 200)

# Component payoffs
long_put_K2 = put_payoff(S, K2_bear, P2, "long")
short_put_K1 = put_payoff(S, K1_bear, P1, "short")

# Combined spread
bear_put_spread = long_put_K2 + short_put_K1

# Calculate key metrics
max_profit_bear = (K2_bear - K1_bear) - net_debit_bear
max_loss_bear = net_debit_bear
Out[17]:
Visualization
Bear put spread profit and loss diagram with a flat loss region above the higher strike, a rising profit zone between strikes, and a flat profit ceiling below the lower strike, annotated with max profit and max loss labels.
Bear put spread payoff profile composed of a long higher-strike put and a short lower-strike put. The strategy profits from moderate price declines with risk limited to the net debit paid and profit capped at the spread width minus the cost. This defined-risk structure provides a cost-effective way to express a bearish market view.

Spread Economics

Why use spreads instead of single options? The key tradeoff is cost versus profit potential.

Suppose we are bullish and want to buy a call option. A single at-the-money call might cost $8. If we are right and the stock rises $15 above the strike, our profit is $7. If wrong, our loss is $8. With a bull call spread, we might pay $5 net after selling the higher-strike call. If we are right and the stock rises beyond the upper strike, our profit is capped at perhaps $5 (the spread width minus the net cost). But if wrong, our loss is only $5 instead of $8.

The spread has a better risk/reward ratio in the sense that both the maximum loss and maximum gain are reduced, but the breakeven point is also lower.

Spreads are particularly attractive when implied volatility is high, making single options expensive. By selling an option as part of the spread, you partially offset the inflated premium you're paying.

Out[18]:
Visualization
Profit and loss comparison chart overlaying a single long call and a bull call spread, with shaded regions highlighting where each strategy outperforms the other and a vertical line marking the crossover price.
Performance comparison between a single long call and a bull call spread. The spread reduces the upfront capital requirement and maximum risk compared to the single call, but caps the potential profit. The crossover point marks the price level where the uncapped single call begins to outperform the capped spread strategy.