Expiration payoff for any combination of legs. Maximum profit, maximum loss, every breakeven, and the payoff across a price range. Every input is encoded in the URL, so a completed position is a link.
Load a worked example, then edit any field. Each of these reproduces a row of the verified reference table at the foot of this page.
| Side | Type | Quantity | Strike | Premium | |
|---|---|---|---|---|---|
| Enable JavaScript to edit the position. The formulas, the payoff algebra, and the verified reference table below are static text and do not require it. | |||||
The solid line is the position payoff at expiry. The horizontal rule is zero. Dotted verticals mark each breakeven; the dashed vertical marks spot. Shading above the zero line is profit and below it is loss.
Every figure on this page is the sum of the legs. Each leg contributes its intrinsic value at expiry less the premium paid or received, signed for direction, multiplied by quantity and the contract multiplier. Formulas are stated per share in the reference tables and scaled by the multiplier here.
The net premium across the option legs only. A stock leg's cost basis is not premium and is excluded, so a covered call built from stock at 98 and a short 105 call at 2.10 shows a 2.10 credit.
Above the highest strike every option leg is either fully in the money or worthless, so the payoff is linear with a constant slope. The sign of that slope decides whether either extreme is unbounded. Below the lowest strike the payoff is also linear, but the underlying cannot fall below zero, so the downside extreme is finite and occurs at S = 0.
A short call has a positive-quantity short call leg, so the slope is negative and the loss is unbounded. A box spread has offsetting call legs, so the slope is zero, the payoff is a constant, and there is no breakeven at all.
The payoff is piecewise linear and bends only at a strike, so every extreme sits at a strike, at zero, or at infinity. Evaluating the payoff at zero and at each strike is therefore sufficient once the unbounded cases are excluded.
Found by scanning the payoff function for sign changes rather than from a closed form, so an arbitrary combination of legs is handled without a per-strategy rule. Because the payoff is linear between consecutive kinks, walking the kinks in order finds every crossing and the crossing itself is exact by interpolation. A crossing above the highest strike is read off the constant upper slope.
The scan finds one breakeven for a ratio spread, two for a butterfly, two for an iron condor, and none for a box spread, from the same code and with no knowledge of what the position is called.
Expiry payoff only. No time value before expiry, no financing or carry, no dividends, no early exercise or assignment, no exercise and assignment fees, no commissions, no bid-offer spread, no margin or collateral cost, and no adjustment for a corporate action changing the deliverable. Legs are assumed to share one expiry, so a calendar or diagonal spread cannot be represented by an expiry payoff at all.
Every input is encoded in the query string, so a completed position is a link. Everything is computed in the browser and nothing is sent anywhere.
| Parameter | Meaning | Example |
|---|---|---|
legs | Comma-separated position. Each leg is [+|-]qty[c|p|s]strike@price, with c call, p put, s stock. Ratios are expressed by quantity, so [email protected] is two short 105 calls at 1.90. A stock leg takes no strike and is entered at its @price. | [email protected],[email protected] |
from | Lowest underlying price in the payoff table. Defaults to the lowest strike less 20 percent. | 80 |
to | Highest underlying price in the payoff table. Defaults to the highest strike plus 20 percent. | 120 |
step | Price increment for the payoff table. Defaults to a step that yields about 40 rows. | 1 |
mult | Contract multiplier. Defaults to 100. | 100 |
spot | Underlying price marked on the diagram. Does not affect any computed figure. | 100 |
A 95/100/105 call butterfly:
https://options.wiki/calc/payoff/[email protected],[email protected],[email protected]
A 90/95/105/110 iron condor:
https://options.wiki/calc/payoff/[email protected],[email protected],[email protected],[email protected]
A 100/110 box spread, whose payoff is a constant and which therefore has no breakeven:
https://options.wiki/calc/payoff/[email protected],[email protected],[email protected],[email protected]
Reference values at a 100 contract multiplier. Every row is reproduced by the calculator above; the buttons at the top of the page load each one. Payoffs are at expiry.
| Structure | Inputs | Net D/C | Max profit | Max loss | Breakeven(s) |
|---|---|---|---|---|---|
| Long call | K 100 at 3.20 | D 3.20 | Unbounded | 320.00 | 103.20 |
| Long put | K 100 at 2.80 | D 2.80 | 9,720.00 at S=0 | 280.00 | 97.20 |
| Short put | K 100 at 2.80 | C 2.80 | 280.00 | 9,720.00 at S=0 | 97.20 |
| Covered call | S0 98, K 105 at 2.10 | C 2.10 | 910.00 | 9,590.00 | 95.90 |
| Cash-secured put | K 95 at 2.40 | C 2.40 | 240.00 | 9,260.00 | 92.60 |
| Bull call spread | 100 at 3.20 / 110 at 1.10 | D 2.10 | 790.00 | 210.00 | 102.10 |
| Bear call spread | 100 at 3.20 / 110 at 1.10 | C 2.10 | 210.00 | 790.00 | 102.10 |
| Bull put spread | 95 at 2.05 / 90 at 0.90 | C 1.15 | 115.00 | 385.00 | 93.85 |
| Bear put spread | 95 at 4.75 / 90 at 0.90 | D 3.85 | 115.00 | 385.00 | 91.15 |
| Long straddle | K 100, 3.20 + 2.80 | D 6.00 | Unbounded | 600.00 | 94.00 and 106.00 |
| Long strangle | 95p 1.40 / 105c 1.60 | D 3.00 | Unbounded | 300.00 | 92.00 and 108.00 |
| Long call butterfly | 95 at 6.40 / 2x100 at 3.40 / 105 at 1.60 | D 1.20 | 380.00 | 120.00 | 96.20 and 103.80 |
| Long put butterfly | 105 at 6.40 / 2x100 at 3.40 / 95 at 1.60 | D 1.20 | 380.00 | 120.00 | 96.20 and 103.80 |
| Iron condor | 90/95/105/110 at 0.55/1.30/1.45/0.60 | C 1.60 | 160.00 | 340.00 | 93.40 and 106.60 |
| Iron butterfly | 95/100/100/105 at 1.30/2.80/3.20/1.60 | C 3.10 | 310.00 | 190.00 | 96.90 and 103.10 |
| Long call condor | 90/95/105/110 at 9.75/6.40/1.85/0.40 | D 1.90 | 310.00 | 190.00 | 91.90 and 108.10 |
| Call ratio 1x2 | 100 at 3.20 / 2x105 at 1.90 | C 0.60 | 560.00 | Unbounded | 110.60 |
| Put ratio 1x2 | 100 at 2.80 / 2x95 at 1.60 | C 0.40 | 540.00 | 8,960.00 at S=0 | 89.60 |
| Collar | S0 98, 95p 1.50, 105c 2.10 | C 0.60 | 760.00 | 240.00 | 97.40 |
| Synthetic long | 100c 3.20 / 100p 2.80 | D 0.40 | Unbounded | 10,040.00 at S=0 | 100.40 |
| Box spread 100/110 | 3.20 / 1.10 / 10.50 / 2.80 | D 9.80 | 20.00 fixed | None | No breakeven; payoff constant |
| Jade lizard | 90p 2.20, 105c 1.90, 107.5c 1.10 | C 3.00 | 300.00 | 8,700.00 at S=0 | 87.00 |