Stock option profit calculator searches usually come from someone holding one contract and one question. The question looks like "what will this make", but the useful version of it is larger: given a view on a stock, which of the several ways to express that view actually pays, and at what cost. A calculator that prices only the contract you already picked cannot answer that. This guide builds one that prices four different single-leg positions on the same stock and the same expiry, then puts their breakevens, payoffs, worst cases and odds in one table, so the choice between them is made on arithmetic instead of habit.
Every figure below comes from one live chain, priced on 2026-08-15.
Stock option profit calculator: four positions on one stock
The underlying is MSFT at $495.40. The expiry is 2026-09-18, which is 34 days out. Each position is one contract. Buyers pay the ask and sellers receive the bid, because that is what a taker actually gets filled at.
| Measure | Long Call | Long Put | Cash-Secured Put | Covered Call |
|---|---|---|---|---|
| Strike | $500.00 | $490.00 | $480.00 | $520.00 |
| Premium per share | $13.70 ask | $12.55 ask | $8.10 bid | $6.10 bid |
| Net cash at entry | -$1,370.65 | -$1,255.65 | +$809.35 | -$48,930.65 |
| Capital committed | $1,370.65 | $1,255.65 | $47,190.65 | $48,930.65 |
| Breakeven at expiry | $513.71 | $477.44 | $471.91 | $489.31 |
| Move to breakeven | +3.70% | -3.62% | -4.74% | -1.23% |
| Maximum profit | No ceiling | $47,744.35 | $809.35 | $3,069.35 |
| Maximum loss | $1,370.65 | $1,255.65 | $47,190.65 | $48,930.65 |
| Probability of profit | 31.8% | 32.4% | 73.4% | 56.7% |
| Position delta (shares) | 48.15 | -41.60 | 31.43 | 72.02 |
| Daily theta | -$24.14 | -$20.93 | +$18.62 | +$19.14 |
Read the capital row and the probability row together, because that pairing is where most option comparisons go wrong. The cash-secured put wins 73.4% of the time and ties up $47,190.65 to make at most $809.35. The long call wins 31.8% of the time, ties up $1,370.65, and has no defined ceiling on what it can make. Those are not better and worse versions of the same trade. They are different trades that happen to share a direction.
What a stock option profit calculator actually has to compute
Five numbers describe any single-leg option position completely, and most free calculators produce two of them.
- Capital committed. Not the premium. A long call ties up the premium, but a cash-secured put ties up the strike minus the credit, and a covered call ties up the price of 100 shares. Comparing returns without comparing this denominator produces nonsense.
- Breakeven. The price at which the position stops losing money, including commissions. For a long call it is the strike plus every cost per share. For a covered call it is the share cost basis minus the premium collected.
- Payoff at expiration. Profit and loss across a ladder of underlying prices on the final day.
- Value before expiration. What the position is worth on day 7, 14, 21 and 28, which is where positions are usually closed.
- Probability. The chance the underlying finishes past the breakeven, derived from the same volatility that prices the contract.
The workbook computes all five for all four position types. The rest of this article walks through what the numbers say.
The four positions, and what each one is buying
Long call, $500 strike, $13.70 paid. This position controls $49,540 of stock notional for $1,370.65, which is 36.14 times leverage. It needs MSFT to rise 3.70% inside 34 days before it returns anything. Its delta is 0.4815 per share, so the whole contract moves like 48 shares to start with.
Long put, $490 strike, $12.55 paid. The mirror trade. It needs a 3.62% fall to break even. Its maximum profit of $47,744.35 assumes the share price reaches zero, which is the arithmetic floor rather than a forecast, and it is worth stating that way rather than quoting it as a realistic target.
Cash-secured put, $480 strike, $8.10 received. The seller collects $809.35 after commission and agrees to buy 100 shares at $480.00 if assigned. The breakeven is $471.91, which is 4.74% below the current price. The position wins if MSFT rises, stays flat, or falls by less than 4.74%.
Covered call, $520 strike, $6.10 received. This assumes you buy or already hold 100 shares. The premium lowers the effective cost basis to $489.31. Maximum profit of $3,069.35 arrives at any price of $520.00 or above, and every dollar of gain past that goes to the call buyer.
Two of these positions pay time decay and two collect it. That single sign flip drives most of the difference between them. The long call bleeds $24.14 a day and the long put $20.93. The cash-secured put earns $18.62 a day and the covered call $19.14, assuming nothing else changes.
Payoff at expiry across the whole price range
This is the table that makes the four structures comparable. Each column is the profit or loss on one contract at that closing price.
| MSFT at expiry | Move | Long Call | Long Put | Cash-Secured Put | Covered Call |
|---|---|---|---|---|---|
| $435.95 | -12.00% | -$1,370.65 | +$4,149.35 | -$3,595.65 | -$5,335.65 |
| $455.77 | -8.00% | -$1,370.65 | +$2,167.35 | -$1,613.65 | -$3,353.65 |
| $475.58 | -4.00% | -$1,370.65 | +$186.35 | +$367.35 | -$1,372.65 |
| $485.49 | -2.00% | -$1,370.65 | -$804.65 | +$809.35 | -$381.65 |
| $495.40 | 0.00% | -$1,370.65 | -$1,255.65 | +$809.35 | +$609.35 |
| $505.31 | +2.00% | -$839.65 | -$1,255.65 | +$809.35 | +$1,600.35 |
| $515.22 | +4.00% | +$151.35 | -$1,255.65 | +$809.35 | +$2,591.35 |
| $525.12 | +6.00% | +$1,141.35 | -$1,255.65 | +$809.35 | +$3,069.35 |
| $535.03 | +8.00% | +$2,132.35 | -$1,255.65 | +$809.35 | +$3,069.35 |
| $554.85 | +12.00% | +$4,114.35 | -$1,255.65 | +$809.35 | +$3,069.35 |
Three things fall out of this table that a single-position calculator hides.
The unchanged row is the most instructive one. If MSFT closes exactly where it started, both buyers lose their entire premium and both sellers keep theirs. Nothing happened to the stock, and yet more than $2,600 changed hands between the two sides of the table.
The covered call stops improving at $525.12 and never moves again. The long call is worth $1,141.35 at that same price and $4,114.35 at $554.85. Selling the upside for $6.10 per share is a real trade with a real cost, and the cost only becomes visible in the rows above the strike.
Both short positions are already at maximum profit by $485.49, which is below today's price. Neither needs the stock to do anything at all.
Probability, and why a high win rate is not an edge
The workbook derives probability from the same lognormal model that prices the contracts, using each contract's own implied volatility.
| Position | Probability of profit | Probability the option expires worthless | Assignment risk |
|---|---|---|---|
| Long Call | 31.8% | 54.9% | None |
| Long Put | 32.4% | 55.2% | None |
| Cash-Secured Put | 73.4% | 65.8% | 34.2% |
| Covered Call | 56.7% | 74.4% | 25.6% |
The cash-secured put looks dominant in this table and is not. It wins 73.4% of the time to collect $809.35, and the 26.6% of outcomes where it loses include the tail that takes $3,595.65 at a 12% drop and considerably more below that. Multiply the probability by the payoff before comparing structures, and the apparent gap narrows sharply.
This is a pricing statistic, not a forecast. Under the risk-neutral distribution that produced these numbers, every fairly priced position has an expected value near zero before costs. That is the point of the model, not a flaw in it. The probability column tells you the shape of the bet. It does not tell you whether the bet is worth taking.
Value before expiry, which is where positions actually close
The expiry payoff is the least favourable snapshot of a long option's life, because it is the one moment when time value is exactly zero. This grid prices the $500 call at four earlier points, holding implied volatility constant at the 25.23% solved from the traded premium.
| MSFT price | Day 7 | Day 14 | Day 21 | Day 28 | At expiry |
|---|---|---|---|---|---|
| $445.86 | -$1,301.98 | -$1,340.88 | -$1,364.25 | -$1,370.57 | -$1,370.65 |
| $470.63 | -$1,005.38 | -$1,131.12 | -$1,253.69 | -$1,351.24 | -$1,370.65 |
| $495.40 | -$178.51 | -$379.12 | -$615.64 | -$923.01 | -$1,370.65 |
| $510.26 | +$650.80 | +$452.39 | +$222.29 | -$63.65 | -$344.65 |
| $525.12 | +$1,712.84 | +$1,549.43 | +$1,377.40 | +$1,210.72 | +$1,141.35 |
| $544.94 | +$3,398.09 | +$3,296.14 | +$3,207.86 | +$3,149.13 | +$3,123.35 |
The $510.26 row is the one worth studying. That price is above the $500.00 strike and below the $513.71 breakeven. On day 7 the position is up $650.80. Held to expiry at that same price it is down $344.65. The forecast was correct in both cases. Only the exit date differed.
The unchanged row shows the other half of the story. At $495.40 the position loses $178.51 in the first week and $1,370.65 by expiry. Time decay is not linear. On an unchanged share price the contract still holds $7.92 of its $13.70 premium with a fortnight to run, so 57.8% of what the buyer paid disappears in those last fourteen days.
Volatility context this expiry, read honestly
Strike selection is a volatility decision, and the volatility numbers on this name currently need a caveat.
| Measure | Value |
|---|---|
| 30-day implied volatility | 25.86% |
| 30-day realized volatility | 49.16% |
| 30-day realized, largest single move removed | 27.84% |
| 1-year realized volatility | 31.85% |
| Next earnings date | 2026-10-28 |
Realized volatility of 49.16% against implied volatility of 25.86% looks like a screaming mismatch, and it is mostly one day. MSFT gapped 14.42% on 2026-07-30 on earnings. Strip that single move out of the same 30-day window and realized volatility falls to 27.84%, which sits close to the implied figure rather than at twice it.
That distinction matters for this specific expiry, because the next earnings date of 2026-10-28 falls after the 2026-09-18 expiration. The contracts priced in this article contain no earnings event. Comparing them against a realized volatility window that does contain one overstates how cheap they look. This is the sort of thing that a calculator showing a single number cannot flag, and it is the reason the workbook shows implied and realized volatility side by side rather than one on its own.
Building it with live MarketXLS formulas
Every quote in the template workbook is a live function call. The chain-level work starts by building the contract symbol, because every contract-level function needs it.
=OptionSymbol("MSFT",DATE(2026,9,18),"Call",500)
=Option_Bid(symbol)
=Option_Ask(symbol)
=Option_Last_Price(symbol)
=Option_OpenInterest(symbol)
=Option_Volume(symbol)
=Option_StrikePrice(symbol)
=Option_ExpirationDate(symbol)
The Greeks take the spot price, the traded option price, the expiry, the option type and the strike.
=opt_Delta(spot, price, expiry, "Call", strike)
=opt_Gamma(spot, price, expiry, "Call", strike)
=opt_Theta(spot, price, expiry, "Call", strike)
=opt_Vega(spot, price, expiry, "Call", strike)
=opt_Rho(spot, price, expiry, "Call", strike)
=opt_ImpliedVolatility(spot, price, expiry, "Call", strike)
Switching the fourth argument from "Call" to "Put" is the only change needed to price the other side, which is what lets one dashboard serve all four position types.
The underlying and volatility context comes from the stock-level functions.
=QM_Last("MSFT")
=ImpliedVolatility30d("MSFT")
=ImpliedVolatilityRank1y("MSFT")
=ImpliedVolatilityPct1y("MSFT")
=StockVolatilityThirtyDays("MSFT")
=StockVolatilityOneYear("MSFT")
=opt_PutCallOIRatio("MSFT")
=opt_PutCallVolRatio("MSFT")
=earnings_date("MSFT")
=Strikes("MSFT")
=ExpirationNext("MSFT",0)
=Beta("MSFT")
=Sector("MSFT")
=MarketCapitalization("MSFT")
=AverageDailyVolume("MSFT")
One deliberate omission is worth explaining. TreasuryRate10y() exists and returns the 10-year rate, and the workbook does not use it. A 34-day option should be discounted at a rate near the 34-day bill, not the 10-year note, so the risk-free input stays a yellow manual cell set to 3.697%. Using the wrong tenor there is a small error on a short-dated contract and a large one on a LEAP.
The Greeks across the strike ladder
The workbook prices the whole near-the-money ladder so that strike selection has data behind it. Implied volatility here is solved back out of each ask price rather than lifted from the chain feed, which keeps the model value and the fill in agreement.
| Call strike | Ask | Solved IV | Delta | Gamma | Theta | Vega |
|---|---|---|---|---|---|---|
| $490.00 | $19.00 | 25.72% | 0.5844 | 0.0100 | -0.2444 | 0.5891 |
| $495.00 | $15.95 | 25.02% | 0.5335 | 0.0105 | -0.2409 | 0.6006 |
| $500.00 | $13.70 | 25.23% | 0.4815 | 0.0104 | -0.2414 | 0.6022 |
| $505.00 | $11.30 | 24.76% | 0.4284 | 0.0105 | -0.2321 | 0.5931 |
| $510.00 | $9.45 | 24.79% | 0.3782 | 0.0101 | -0.2237 | 0.5746 |
| $515.00 | $7.95 | 25.02% | 0.3320 | 0.0096 | -0.2145 | 0.5487 |
| $520.00 | $6.35 | 24.65% | 0.2842 | 0.0091 | -0.1966 | 0.5125 |
Vega peaks at the money and falls away in both directions, which is why a near-the-money position is the one most exposed to a volatility change rather than a price change. Gamma behaves the same way. A trader who wants direction and not volatility exposure is reading these two columns, not the delta column.
What is in the workbook
Both files carry eight sheets.
- How To Use. A tutorial for each sheet, plus the four position types and their maximum profit and loss definitions.
- Main Dashboard. A dropdown that switches between the four position types, yellow input cells for ticker, strike, expiry, premium and contract count, and every derived figure in this article.
- Four Positions. The side-by-side comparison table, including capital committed, return on capital and probability of profit.
- Payoff Ladder. Profit and loss at expiry for all four positions across the price ladder, with breakevens listed underneath.
- Scenario Analysis. The price-by-time grid for the selected position, in contract value and in position profit and loss.
- Probability and Sizing. Probability of profit, assignment risk, and contract counts derived from your own portfolio value and risk budget.
- Greeks Lab. Delta, gamma, theta, vega and rho across the call and put ladders.
- Strike Ladder. Live bid, ask, spread, open interest, volume and implied volatility around the money.
Download the templates:
- Static Version (with MarketXLS formula reference) - Pre-filled with the 2026-08-15 data used throughout this article
- MarketXLS Formula Version - Live formulas that update on every recalculation
Position sizing, and the answer people do not expect
The sizing sheet takes a portfolio value and a risk budget and returns whole contracts. On a $100,000 account risking 2%, the budget is $2,000.
| Position | Maximum loss per contract | Contracts at budget | Whole contracts |
|---|---|---|---|
| Long Call | $1,370.65 | 1.46 | 1 |
| Long Put | $1,255.65 | 1.59 | 1 |
| Cash-Secured Put | $47,190.65 | 0.04 | 0 |
| Covered Call | $48,930.65 | 0.04 | 0 |
A 2% risk budget buys one long call or one long put here, and it does not reach a single cash-secured put or covered call on a $495 stock. That is the sizing answer rather than a rounding problem. Selling premium on an expensive underlying requires a balance sheet, and the arithmetic says so plainly once maximum loss is measured against the zero-price floor instead of against the credit collected.
Five mistakes this calculator prevents
Comparing returns on different capital bases. A 6% move to $525.12 returns 83.3% on the long call's $1,370.65, while the cash-secured put's best possible outcome returns 1.72% on $47,190.65. Those percentages are not comparable until the denominators are on the table.
Treating the strike as the breakeven. The strike is where intrinsic value starts. Here the $500 call breaks even at $513.71, which is $13.71 higher.
Pricing off the mid. No one is filled at the mid. Model the ask when buying and the bid when selling, or every number in the workbook flatters you by half the spread.
Reading only the at-expiry line. The $510.26 row is up $650.80 on day 7 and down $344.65 at expiry. A calculator that cannot show the intermediate columns cannot help you manage a position.
Quoting a high probability of profit as an edge. A 73.4% win rate on a payoff that risks $47,190.65 to make $809.35 is a description of the payoff shape, not evidence of a good trade.
Frequently asked questions
How do you calculate profit on a stock option? At expiration, profit equals the intrinsic value at that price minus the total cost paid, multiplied by 100 shares per contract. For the MSFT $500 call bought at $13.70, a close at $525.12 gives $25.12 of intrinsic value per share, which is $2,512.00, less the $1,370.65 paid, giving $1,141.35. Before expiration the arithmetic is different, because the contract still carries time value and needs an option pricing model rather than simple subtraction.
What is the breakeven on a covered call? The breakeven is the share cost basis minus the premium received, plus commissions. Buying 100 MSFT at $495.40 and selling the $520.00 call for $6.10 gives a breakeven of $489.31. The shares can fall 1.23% before the combined position loses money, which is exactly what the premium bought.
Which position has the highest probability of profit? In this worked example the cash-secured put does, at 73.4%, followed by the covered call at 56.7%, the long put at 32.4% and the long call at 31.8%. High probability comes packaged with small maximum profit and large maximum loss on the short side, so probability alone does not rank the four. The Four Positions sheet shows probability next to maximum profit and capital committed for exactly this reason.
Can you lose more than the premium on a stock option? A bought option carries a right and no obligation, so the maximum loss is the premium plus commissions. A sold option is different. The cash-secured put here risks $47,190.65 against a credit of $809.35 if the shares go to zero, and an uncovered short call has no equivalent arithmetic ceiling at all. That asymmetry is the reason the workbook sizes short positions against the zero-price floor.
Why does my option lose money when the stock moves my way? Three effects do this. Time decay removes value daily and accelerates near expiry, running at $24.14 a day on this long call. A fall in implied volatility lowers the premium independently of price, and vega of $0.6022 per share means a five point volatility drop is worth about $301 on one contract. Third, a small favourable move can simply be smaller than the decay over the same period, which is what the $495.40 and $505.31 rows of the scenario grid show.
Does the workbook handle spreads and multi-leg positions? The workbook models the four single-leg positions, which keeps the payoff logic and the sizing arithmetic exact. Multi-leg structures need the legs netted before any of these figures make sense. The OptionXLS strategy library covers those separately, including the bull call spread, the iron condor and the covered call in its own right. For a single-side deep dive, the call option profit calculator and the put option calculator go further on one structure each.
How often does the template update? The formula version re-prices on every Excel recalculation, because each quote, Greek and volatility reading is a live MarketXLS function rather than a stored number. The sample version holds the 2026-08-15 values so the workbook can be reviewed offline.
The bottom line
A stock option profit calculator is most useful before a position exists, when the choice is still open. The four structures in this article all express a view on one stock over 34 days, and they resolve very differently. The long call risks $1,370.65 for uncapped upside and wins less than a third of the time. The cash-secured put wins 73.4% of the time, ties up $47,190.65, and caps its gain at $809.35. The covered call trades everything above $520.00 for $6.10 a share. The long put is the only one of the four that pays in a sharp fall.
None of that makes any of them good or bad. It makes them measurable, which is the only honest thing a spreadsheet can offer. Everything here is educational analysis of how single-leg option positions behave, not a recommendation to trade any contract, and options carry risks including the total loss of the premium paid.
Build it once against live data and the same workbook prices any ticker, any strike and any expiry you point it at.
- Explore the full function library at MarketXLS
- See it running on your own positions: book a demo
- Browse plans on the MarketXLS pricing page
- Work through the strategy library at OptionXLS
