Why Vertical Spread Payoffs Are Piecewise
A vertical spread combines options of the same type and expiration but with different strikes. At expiration, each option's payoff changes form when the underlying asset price crosses its strike. A spread's payoff is therefore found by ordering the strikes, dividing the price range into intervals, and adding the option payoffs on each interval.
This tutorial uses \(S_T\) for the underlying asset price at expiration. For a call with strike \(K\), the long position's payoff per unit is \(\max(S_T-K,0)\); for a put, it is \(\max(K-S_T,0)\). A short position has the negative of the corresponding long payoff. These are expiration payoffs only: option premiums, financing, and the resulting profit are not included. No interest-rate or probability assumption is needed to calculate a payoff conditional on \(S_T\), and no mortality model applies.
Order the Strikes Before Writing the Function
Let \(L\) and \(H\) be the lower and higher strikes, with \(L<H\). The possible expiration prices fall into three regions: \(S_T<L\), \(L\le S_T<H\), and \(S_T\ge H\). At a strike, the relevant option payoff is zero, so either adjacent formula gives the same value there.
For a call spread that is long the call at \(L\) and short the call at \(H\), the payoff is \(\max(S_T-L,0)-\max(S_T-H,0)\). Below \(L\), both calls expire with zero payoff. Between the strikes, only the lower-strike call has positive payoff. At or above \(H\), both calls have positive payoff, and the higher-strike call's short payoff offsets part of the lower-strike call's payoff.
Reversing both positions reverses the sign of every payoff. Thus a short call at \(L\) and a long call at \(H\) has the negative of the displayed function. The strike order does not change; the position signs do.
For puts, the relevant payoff region occurs on the other side of the strikes. A long put at \(H\) and a short put at \(L\) has payoff \(\max(H-S_T,0)-\max(L-S_T,0)\). Below \(L\), both puts are in the money; between \(L\) and \(H\), only the higher-strike put is in the money; at or above \(H\), neither has a positive payoff.
The reverse put position—a short put at \(H\) and a long put at \(L\)—again has the negative of the stated function. These piecewise formulas give the payoff shapes for the four standard orientations. They do not, by themselves, determine whether a spread produces a gain or loss after premiums.
A Short Derivation by Evaluating Each Interval
The formula for a long lower-strike call and short higher-strike call follows directly from the two call payoffs. Evaluating the position separately on each interval also provides a reliable way to check the signs.
If \(S_T<L\), then both \(S_T-L\) and \(S_T-H\) are negative. Both call payoffs are zero, so their signed sum is zero.
If \(L\le S_T<H\), the long call pays \(S_T-L\), while the short higher-strike call pays zero. The spread payoff is \(S_T-L\).
If \(S_T\ge H\), the long call pays \(S_T-L\) and the short call contributes \(-(S_T-H)\). Adding gives \((S_T-L)-(S_T-H)=H-L\).
This derivation explains why the payoff becomes constant above the higher strike: both call payoffs rise at the same rate, so their changes cancel. The same interval method applies to puts, but their payoffs are positive below their strikes rather than above them.
Worked Examples
Worked Example: Scaling a Bull Call Spread
A hypothetical investor holds three bull call spreads. Each spread is long one call with strike \(36\) and short one call with strike \(44\). Each option contract represents 50 units of the underlying. Find the total expiration payoff if \(S_T\) is (a) \(32\), (b) \(40\), and (c) \(47\).
Method. Use the long-lower-strike call formula with \(L=36\) and \(H=44\). The per-underlying-unit payoff is zero below \(36\), \(S_T-36\) from \(36\) up to but not including \(44\), and \(44-36=8\) at or above \(44\). There are \(3\times50=150\) underlying units across the three spreads.
(a) Since \(32<36\), the per-unit payoff is \(0\). The total is \(150(0)=\$0\).
(b) Since \(36\le40<44\), the long call pays \(40-36=4\), and the short call pays zero. The per-unit spread payoff is \(4\). The total is \(150(4)=\$600\).
(c) Since \(47\ge44\), the long call pays \(47-36=11\), and the short call pays \(-(47-44)=-3\). The per-unit net payoff is \(11-3=8\). The total is \(150(8)=\$1{,}200\).
Check and trap avoided. The payoff is \(8\) per unit both at \(S_T=44\) and above \(44\), consistent with the formula. A common error is to count only the long call's \(11\) payoff at \(S_T=47\), omitting the short call's \(3\) liability. The spread payoff is \(8\), not \(11\), per unit. No premium is included.
Worked Example: Evaluating a Bull Put Spread Below and Between Its Strikes
A hypothetical fund sells four put spreads, each consisting of a short put with strike \(58\) and a long put with strike \(50\). Each contract represents 100 units. Determine the total expiration payoff when \(S_T=45\), \(S_T=54\), and \(S_T=62\).
Method. This is the reverse of a long higher-strike, short lower-strike put spread. Set \(L=50\) and \(H=58\). Its payoff per unit is \(-8\) below \(50\), \(S_T-58\) from \(50\) to below \(58\), and zero at or above \(58\). There are \(4\times100=400\) units.
At \(S_T=45<50\), both puts are in the money. The short \(58\) put contributes \(-(58-45)=-13\); the long \(50\) put contributes \(+(50-45)=5\). The net is \(-13+5=-8\) per unit, so the total payoff is \(400(-8)=-\$3{,}200\).
At \(S_T=54\), the short \(58\) put contributes \(-(58-54)=-4\), and the long \(50\) put expires out of the money with payoff zero. The total is \(400(-4)=-\$1{,}600\).
At \(S_T=62\ge58\), both puts expire out of the money, so the total payoff is \(400(0)=\$0\).
Check and trap avoided. At \(S_T=45\), the two put payoffs must both be counted before applying the quantity. The lower-strike long put offsets part of the short put's loss; calculating only \(-(58-45)\) would incorrectly give \(-\$5{,}200\). This example reports payoff, not profit after the premiums received or paid.
Worked Example: Writing a Bear Call Payoff Function
A hypothetical trader holds five bear call spreads. Each spread is short a call with strike \(102\) and long a call with strike \(114\). Write the per-unit payoff function and calculate the total payoff at \(S_T=96\), \(S_T=108\), and \(S_T=120\). Each contract represents one unit.
Method. First use the long lower-strike, short higher-strike call formula with \(L=102\), \(H=114\), then reverse the sign because this position is short the lower-strike call and long the higher-strike call. The per-unit payoff is zero for \(S_T<102\), \(-(S_T-102)\) for \(102\le S_T<114\), and \(-(114-102)=-12\) for \(S_T\ge114\).
At \(S_T=96\), both calls expire worthless. The total payoff is \(5(0)=\$0\).
At \(S_T=108\), the short \(102\) call contributes \(-(108-102)=-6\); the long \(114\) call contributes zero. The total payoff is \(5(-6)=-\$30\).
At \(S_T=120\), the short call contributes \(-(120-102)=-18\), while the long call contributes \(120-114=6\). The net is \(-18+6=-12\) per spread, and the total payoff is \(5(-12)=-\$60\).
Check and trap avoided. Above \(114\), the net payoff stays at \(-12\) per spread: each additional unit of call payoff on the long option offsets the additional unit owed on the short option. Reversing the signs would describe the opposite call spread, not this one.
Common Errors and a Reliable Check
A piecewise payoff function is easiest to audit by checking the option positions and the endpoints. The following mistakes commonly lead to an incorrect function:
- Using the strikes in the wrong order. Label the lower strike \(L\) and the higher strike \(H\) before defining intervals. Do not assume the first strike mentioned is the lower one.
- Ignoring whether an option is long or short. A short option contributes a negative payoff. Reversing both positions negates the whole spread function.
- Using the call pattern for puts. Calls become active as \(S_T\) rises above a strike; puts become active as \(S_T\) falls below a strike.
- Forgetting to add both option payoffs. In the region where both options are in the money, evaluate both signed payoffs before simplifying.
- Calling payoff profit. The payoff at expiration does not include initial premiums, transaction costs, or the time value of earlier cash flows.
As a check, substitute the boundary prices \(S_T=L\) and \(S_T=H\) into adjacent formulas. The results should agree at each boundary. For example, the long lower-strike call spread pays \(0\) at \(L\), and both its middle and upper formulas give \(H-L\) at \(H\). A mismatch usually signals an interval or sign error.
Check Your Understanding
For each position, determine the requested expiration payoff. Treat each stated payoff as per underlying unit unless a contract quantity is specified.
- A call spread is long the \(25\)-strike call and short the \(31\)-strike call. Write its payoff function in the regions \(S_T<25\), \(25\le S_T<31\), and \(S_T\ge31\). (Answer: \(0,\ S_T-25,\ 6\), respectively.)
- A put spread is long the \(47\)-strike put and short the \(39\)-strike put. What is its payoff per unit at \(S_T=35\), \(43\), and \(52\)? (Answer: \(8,\ 4,\ 0\), respectively.)
- A bear call spread is short the \(63\)-strike call and long the \(71\)-strike call. Find its per-unit payoff at \(S_T=68\) and \(S_T=76\). (Answer: \(-5\) and \(-8\), respectively.)
- A position is short the \(82\)-strike put and long the \(74\)-strike put. It consists of six spreads with 25 underlying units per contract. Find the total payoff at \(S_T=70\). (Answer: \(-\$1{,}200\).)
- A spread is long the \(96\)-strike put and short the \(88\)-strike put. A candidate reports a payoff of \(96-92=4\) at \(S_T=92\). Identify the error and give the correct per-unit payoff. (Answer: The short \(88\)-strike put is out of the money, so the payoff is \(96-92=\$4\); there is no error.)