Free lesson · Options
A bull call spread caps gains and initial cost
Open interactive lessonPractice calculationsExplore labs
Start with the idea
Selling a higher-strike call offsets part of the purchase price but gives away gains beyond that higher strike.
Symbols, units & horizon
- K₁
- S_T: settlement price at common expiry
- H: net payoff per underlying unit
- d: upfront net debit per unit
- Π: per-unit profit excluding financing and fees
When and why to use this
Compare a directional exposure with a defined expiry payoff across scenarios.
Selling a higher-strike call offsets part of the purchase price but gives away gains beyond that higher strike.
Use the same underlying, expiry, multiplier and exercise/settlement terms for both legs. The terminal payoff increases between the strikes and is capped by their difference. Mixed expiries are not this payoff.
A bounded expiry payoff does not imply a bounded operational cash demand in every account. Early assignment, legging and broker margin policies can matter for American-style or physically delivered positions.
A bull call spread caps gains and initial cost
- Below K₁ both calls expire worthless.
- Between strikes only the purchased call pays S_T−K₁.
- Above K₂ subtract the sold call’s payoff, leaving K₂−K₁; subtract debit in all cases.
Buy strike 100, sell strike 110, pay debit 4. At settlement 107, payoff 7 and profit 3. Maximum profit is 10−4=6; maximum expiry loss is 4.
Apply it in a strategy
- Freeze inputs at the stated decision time and record their units.
- Compare a directional exposure with a defined expiry payoff across scenarios.
- Recompute the example, then change the material assumption and explain the difference.
Research deliverable
A bull call spread caps gains and initial cost: produce the worked calculation, a timestamped input record and a written decision addressing this limitation: The expiry diagram omits pathwise assignment, margin and execution frictions.
These are synthetic mechanics examples, not historical performance or paper replications. Module evidence and research boundaries record the 12 September 2026 review.
Python implementation
Self-contained teaching example. Python 3.10+; dependencies and input conventions are shown in the code and notation. Run in your own Python environment.
# Python 3.10+; standard library and NumPy only.
# Synthetic teaching inputs; conventions and units are defined in the notation above.
def bull_call(settlement,low_strike,high_strike,debit):
if low_strike>=high_strike or debit<0: raise ValueError('Ordered strikes and nonnegative debit required')
payoff=max(settlement-low_strike,0)-max(settlement-high_strike,0)
return payoff,payoff-debit
assert bull_call(107,100,110,4)==(7,3)
print([bull_call(s,100,110,4) for s in [90,100,107,110,120]])Continue learning
Options: Payoffs, Replication & Hedge Accounting — all lessons- Call and put payoffs versus profit
- A bull call spread caps gains and initial cost
- Put–call parity as identical terminal cash flows
- Replicate a one-step option with stock and cash
- Black–Scholes as a conditional benchmark
- Delta and gamma are local sensitivities
- Cash accounting for a discretely hedged option
- Early exercise compares immediate and continuation value
Quantitative finance and development glossary · Python resources and libraries · Research sources and limitations