{"id":67166,"date":"2026-10-20T09:51:50","date_gmt":"2026-10-20T06:51:50","guid":{"rendered":"https:\/\/wpcalc.com\/en\/?p=67166"},"modified":"2026-10-20T09:51:50","modified_gmt":"2026-10-20T06:51:50","slug":"options-profit-calculator","status":"publish","type":"post","link":"https:\/\/wpcalc.com\/en\/finance\/options-profit-calculator\/","title":{"rendered":"Options Profit Calculator"},"content":{"rendered":"<section class=\"not-prose calculator-box\" aria-labelledby=\"calculator-title\"><div class=\"flex items-baseline sm:items-center justify-between gap-2 sm:gap-3\"><div class=\"flex flex-col sm:flex-row sm:items-center gap-2\"><span class=\"icon icon-calculator text-primary-700! text-base! dark:text-primary-300!\" aria-hidden=\"true\"><\/span><h2 id=\"calculator-title\" class=\"text-lg font-display font-bold\">Calculate a Stock Option\u2019s Profit at Expiration<\/h2><\/div><div class=\"calcdash-favorite group\">\n  <button type=\"button\" class=\"favorite\" id=\"favorite\" data-favorite-id=\"67166\" data-favorite-title=\"Options Profit\" data-favorite-url=\"https:\/\/wpcalc.com\/en\/finance\/options-profit-calculator\/\" data-favorite-excerpt=\"Calculate a call or put option\u2019s profit or loss at expiration. Enter the position, strike price, premium, number of contracts, expiration stock price, and total commissions.\" aria-label=\"Add to Favorites\" data-favorite-icon=\"icon icon-investment\">\n    <span class=\"icon icon-shape-star-empty\" aria-hidden=\"true\"><\/span>\n  <\/button>\n  <div class=\"calcdash-favorite__tip\" aria-hidden=\"true\">\n   <span class=\"favorite-tooltip\" id=\"favorite-tooltip\"><\/span>\n  <\/div>\n  <span class=\"sr-only\" role=\"status\" id=\"favorite-status\"><\/span>\n<\/div><\/div><form action=\"https:\/\/wpcalc.com\/en\/finance\/options-profit-calculator\/\" method=\"POST\" class=\"calculator\" id=\"calculator-67166\" data-post=\"67166\"><fieldset class=\"fieldset-input is-2\"><legend class=\"sr-only\">Input Fields<\/legend><div class=\"field\" id=\"input-1\"><label for=\"field-1\">Option type<\/label><div class=\"grid grid-cols-1\"><select id=\"field-1\" name=\"option_type\"><option value=\"call\" selected>Call<\/option><option value=\"put\">Put<\/option><\/select><svg class=\"pointer-events-none col-start-1 row-start-1 mr-2 size-5 self-center justify-self-end text-gray-500 sm:size-4\" viewBox=\"0 0 16 16\" fill=\"currentColor\" aria-hidden=\"true\" data-slot=\"icon\">\n              <path fill-rule=\"evenodd\" d=\"M4.22 6.22a.75.75 0 0 1 1.06 0L8 8.94l2.72-2.72a.75.75 0 1 1 1.06 1.06l-3.25 3.25a.75.75 0 0 1-1.06 0L4.22 7.28a.75.75 0 0 1 0-1.06Z\" clip-rule=\"evenodd\" \/>\n            <\/svg><\/div><\/div><div class=\"field\" id=\"input-2\"><label for=\"field-2\">Position<\/label><div class=\"grid grid-cols-1\"><select id=\"field-2\" name=\"position\"><option value=\"long\" selected>Buy (long)<\/option><option value=\"short\">Sell (short)<\/option><\/select><svg class=\"pointer-events-none col-start-1 row-start-1 mr-2 size-5 self-center justify-self-end text-gray-500 sm:size-4\" viewBox=\"0 0 16 16\" fill=\"currentColor\" aria-hidden=\"true\" data-slot=\"icon\">\n              <path fill-rule=\"evenodd\" d=\"M4.22 6.22a.75.75 0 0 1 1.06 0L8 8.94l2.72-2.72a.75.75 0 1 1 1.06 1.06l-3.25 3.25a.75.75 0 0 1-1.06 0L4.22 7.28a.75.75 0 0 1 0-1.06Z\" clip-rule=\"evenodd\" \/>\n            <\/svg><\/div><\/div><div class=\"field\" id=\"input-3\"><label for=\"field-3\">Strike price<\/label><input type=\"text\" name=\"strike_price\" id=\"field-3\" aria-describedby=\"calc-unit-3\" data-number inputmode=\"decimal\" autocomplete=\"off\" spellcheck=\"false\" min=\"0.01\" value=\"100\"\/><div class=\"unit\" id=\"calc-unit-3\">$ per share<\/div><\/div><div class=\"field\" id=\"input-4\"><label for=\"field-4\">Premium<\/label><input type=\"text\" name=\"premium\" id=\"field-4\" aria-describedby=\"calc-unit-4\" data-number inputmode=\"decimal\" autocomplete=\"off\" spellcheck=\"false\" min=\"0\" value=\"5\"\/><div class=\"unit\" id=\"calc-unit-4\">$ per share<\/div><\/div><div class=\"field\" id=\"input-5\"><label for=\"field-5\">Number of contracts<\/label><input type=\"text\" name=\"number_of_contracts\" id=\"field-5\" aria-describedby=\"calc-info-5\" data-number inputmode=\"decimal\" autocomplete=\"off\" spellcheck=\"false\" min=\"1\" value=\"1\"\/><small id=\"calc-info-5\">Each contract represents 100 shares.<\/small><\/div><div class=\"field\" id=\"input-6\"><label for=\"field-6\">Stock price at expiration<\/label><input type=\"text\" name=\"stock_price_at_expiration\" id=\"field-6\" aria-describedby=\"calc-unit-6\" data-number inputmode=\"decimal\" autocomplete=\"off\" spellcheck=\"false\" min=\"0\" value=\"100\"\/><div class=\"unit\" id=\"calc-unit-6\">$ per share<\/div><\/div><div class=\"field\" id=\"input-7\"><label for=\"field-7\">Total commissions<\/label><input type=\"text\" name=\"total_commissions\" id=\"field-7\" aria-describedby=\"calc-unit-7 calc-info-7\" data-number inputmode=\"decimal\" autocomplete=\"off\" spellcheck=\"false\" min=\"0\" value=\"0\"\/><div class=\"unit\" id=\"calc-unit-7\">$<\/div><small id=\"calc-info-7\">Enter the total fees for this position, not a per-contract fee.<\/small><\/div><\/fieldset><div class=\"buttons\"><button type=\"submit\" data-text=\"Re-Calculate\" id=\"calculate-button\" data-post=\"67166\">Calculate<\/button><button type=\"reset\">Reset<\/button><\/div><div class=\"field is-checkbox hidden!\" id=\"field-auto-calc\"><input type=\"checkbox\" id=\"auto-calc\"><label for=\"auto-calc\">Calculate automatically<\/label><small>If enabled, the result will update automatically when you change any value.<\/small><\/div><div class=\"fieldset-result is-hidden\" aria-labelledby=\"result-title\" aria-live=\"polite\" role=\"region\"> <h3 class=\"result-title bg-gradient-to-r from-primary-50 to-gray-50 dark:from-primary-900 dark:to-gray-800\" id=\"result-title\"><span class=\"icon icon-s-pulse\" aria-hidden=\"true\"><\/span> Your Results<\/h3><div class=\"result-box\"><div class=\"field-result\" id=\"output-1\"><span class=\"field-title\"><span>Profit or loss at expiration<\/span><\/span><span class=\"field-value\" id=\"result-1\"><\/span><button type=\"button\" class=\"copy-result\" data-tooltip=\"Copy Result\" aria-label=\"Copy Result\"><span class=\"copy-icon icon icon-document-copy\" aria-hidden=\"true\"><\/span><\/button><\/div><div class=\"field-result\" id=\"output-2\"><span class=\"field-title\"><span>Profit or loss as % of premium<\/span><\/span><span class=\"field-value\" id=\"result-2\"><\/span><button type=\"button\" class=\"copy-result\" data-tooltip=\"Copy Result\" aria-label=\"Copy Result\"><span class=\"copy-icon icon icon-document-copy\" aria-hidden=\"true\"><\/span><\/button><\/div><div class=\"field-result\" id=\"output-3\"><span class=\"field-title\"><span>Break-even stock price<\/span><\/span><span class=\"field-value\" id=\"result-3\"><\/span><button type=\"button\" class=\"copy-result\" data-tooltip=\"Copy Result\" aria-label=\"Copy Result\"><span class=\"copy-icon icon icon-document-copy\" aria-hidden=\"true\"><\/span><\/button><\/div><div class=\"field-result\" id=\"output-4\"><span class=\"field-title\"><span>Maximum profit<\/span><\/span><span class=\"field-value\" id=\"result-4\"><\/span><button type=\"button\" class=\"copy-result\" data-tooltip=\"Copy Result\" aria-label=\"Copy Result\"><span class=\"copy-icon icon icon-document-copy\" aria-hidden=\"true\"><\/span><\/button><\/div><div class=\"field-result\" id=\"output-5\"><span class=\"field-title\"><span>Maximum loss<\/span><\/span><span class=\"field-value\" id=\"result-5\"><\/span><button type=\"button\" class=\"copy-result\" data-tooltip=\"Copy Result\" aria-label=\"Copy Result\"><span class=\"copy-icon icon icon-document-copy\" aria-hidden=\"true\"><\/span><\/button><\/div><div class=\"field-result is-column\" id=\"output-6\"><span class=\"field-title\"><span>Payoff table: 50% to 150% of strike<\/span><\/span><span class=\"field-value\" id=\"result-6\"><\/span><button type=\"button\" class=\"copy-result\" data-tooltip=\"Copy Result\" aria-label=\"Copy Result\"><span class=\"copy-icon icon icon-document-copy\" aria-hidden=\"true\"><\/span><\/button><\/div><div class=\"field-result is-column\" id=\"output-7\"><span class=\"field-title\"><span>Payoff chart: 50% to 150% of strike<\/span><\/span><span class=\"field-value\" id=\"result-7\"><\/span><button type=\"button\" class=\"copy-result\" data-tooltip=\"Copy Result\" aria-label=\"Copy Result\"><span class=\"copy-icon icon icon-document-copy\" aria-hidden=\"true\"><\/span><\/button><\/div><\/div><div class=\"result-actions\"><button type=\"button\" class=\"copy-link\"><svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M12.232 4.232a2.5 2.5 0 0 1 3.536 3.536l-1.225 1.224a.75.75 0 0 0 1.061 1.06l1.224-1.224a4 4 0 0 0-5.656-5.656l-3 3a4 4 0 0 0 .225 5.865.75.75 0 0 0 .977-1.138 2.5 2.5 0 0 1-.142-3.667l3-3Z\"\/><path d=\"M11.603 7.963a.75.75 0 0 0-.977 1.138 2.5 2.5 0 0 1 .142 3.667l-3 3a2.5 2.5 0 0 1-3.536-3.536l1.225-1.224a.75.75 0 0 0-1.061-1.06l-1.224 1.224a4 4 0 1 0 5.656 5.656l3-3a4 4 0 0 0-.225-5.865Z\"\/><\/svg><span class=\"copy-link__text\">Copy link to this calculation<\/span><\/button><span class=\"sr-only\" role=\"status\" id=\"copy-link-status\"><\/span><\/div><\/div><a href=\"#respond\" class=\"hidden transition-opacity duration-300 opacity-0 w-50 text-sm justify-center items-center gap-2 px-4 py-2 rounded bg-gray-200 text-gray-700 hover:bg-gray-300\" id=\"leave-comment\"><span class=\"icon icon-comments\" aria-hidden=\"true\"><\/span>Leave a Comment<\/a><\/form><\/section><section id=\"calc-reactions\" class=\"not-prose hidden my-12 bg-gradient-to-r from-primary-50 to-gray-50 border border-indigo-100 rounded-xl px-6 py-4 shadow-sm\" data-post=\"67166\" aria-live=\"polite\" aria-labelledby=\"calc-reactions-title\"><p id=\"calc-reactions-title\" class=\"text-sm text-gray-500 text-center mb-2\">How did this result make you feel?<\/p><div role=\"group\" aria-labelledby=\"calc-reactions-title\" class=\"grid grid-cols-3 sm:flex sm:flex-row sm:justify-around gap-4 sm:items-center sm:flex-wrap\"><button type=\"button\" aria-pressed=\"false\" class=\"reaction-btn flex flex-col items-center gap-1 text-sm text-gray-700 hover:text-primary-600 cursor-pointer transition-transform hover:scale-105\" data-reaction=\"like\"><span class=\"reaction-count\" data-reaction-count=\"like\">0<\/span><span class=\"reaction text-3xl\" aria-hidden=\"true\">\ud83d\ude00 <\/span><span class=\"reaction-description font-medium\">Like <\/span><\/button><button type=\"button\" aria-pressed=\"false\" class=\"reaction-btn flex flex-col items-center gap-1 text-sm text-gray-700 hover:text-primary-600 cursor-pointer transition-transform hover:scale-105\" data-reaction=\"helpful\"><span class=\"reaction-count\" data-reaction-count=\"helpful\">0<\/span><span class=\"reaction text-3xl\" aria-hidden=\"true\">\ud83d\udca1 <\/span><span class=\"reaction-description font-medium\">Helpful <\/span><\/button><button type=\"button\" aria-pressed=\"false\" class=\"reaction-btn flex flex-col items-center gap-1 text-sm text-gray-700 hover:text-primary-600 cursor-pointer transition-transform hover:scale-105\" data-reaction=\"confused\"><span class=\"reaction-count\" data-reaction-count=\"confused\">0<\/span><span class=\"reaction text-3xl\" aria-hidden=\"true\">\ud83d\ude15 <\/span><span class=\"reaction-description font-medium\">Confused <\/span><\/button><button type=\"button\" aria-pressed=\"false\" class=\"reaction-btn flex flex-col items-center gap-1 text-sm text-gray-700 hover:text-primary-600 cursor-pointer transition-transform hover:scale-105\" data-reaction=\"disappointed\"><span class=\"reaction-count\" data-reaction-count=\"disappointed\">0<\/span><span class=\"reaction text-3xl\" aria-hidden=\"true\">\ud83d\ude1e <\/span><span class=\"reaction-description font-medium\">Disappointed <\/span><\/button><button type=\"button\" aria-pressed=\"false\" class=\"reaction-btn flex flex-col items-center gap-1 text-sm text-gray-700 hover:text-primary-600 cursor-pointer transition-transform hover:scale-105\" data-reaction=\"inaccurate\"><span class=\"reaction-count\" data-reaction-count=\"inaccurate\">0<\/span><span class=\"reaction text-3xl\" aria-hidden=\"true\">\u274c <\/span><span class=\"reaction-description font-medium\">Inaccurate <\/span><\/button><\/div><div id=\"reaction-message\" class=\"hidden mt-8 rounded-md border border-primary-100 bg-white\/50 backdrop-blur-sm px-4 py-2 text-sm text-center shadow-sm\"><\/div><\/section><div class=\"calcdash-ad not-prose calcdash-ad--calc_result calcdash-ad--in-article\"><ins class=\"adsbygoogle\" style=\"display:block\" data-ad-client=\"ca-pub-1721569815777345\" data-ad-slot=\"6317458308\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\"><\/ins><script>(adsbygoogle = window.adsbygoogle || []).push({});<\/script><\/div>\n<style id=\"wpcoderpro-inline-1\">.formula-box {\r\n\tborder-bottom: none !important;\r\n}<\/style><section class=\"formula-box\" aria-labelledby=\"formula-title\">\r\n\t<div id=\"formula-title\" class=\"not-prose font-display mb-4\"><span class=\"icon icon-formula\" aria-hidden=\"true\"><\/span><h2>Options Profit Formula<\/h2><\/div>\r\n\t<figure class=\"not-prose formula\">\r\n\t\t<figcaption class=\"formula-title\">Formula<\/figcaption>\r\n\t\t<div class=\"text-base text-gray-800\" id=\"formula\">\n\\[\\text{Profit or loss}=\\bigl(q\\max(I,0)-qP\\bigr)(100N)-F,\\qquad I=\\begin{cases}S-K&amp;\\text{call}\\\\K-S&amp;\\text{put}\\end{cases},\\qquad q=\\begin{cases}1&amp;\\text{buy (long)}\\\\-1&amp;\\text{sell (short)}\\end{cases}\\]\n<\/div>\r\n\t<\/figure>\r\n\t<\/p>\n<p><strong>Where:<\/strong><\/p>\n<ul>\n<li>\\(S\\) \u2014 stock price at expiration, in dollars per share<\/li>\n<li>\\(K\\) \u2014 strike price, in dollars per share<\/li>\n<li>\\(P\\) \u2014 premium, in dollars per share<\/li>\n<li>\\(N\\) \u2014 number of contracts; each represents 100 shares<\/li>\n<li>\\(F\\) \u2014 total commissions, in dollars<\/li>\n<li>\\(I\\) \u2014 the option\u2019s value at expiration before the zero-value floor<\/li>\n<li>\\(q\\) \u2014 1 for a bought option or \u22121 for a sold option<\/li>\n<\/ul>\n<p>The formula subtracts the premium paid for a long position or adds the premium received for a short position, then subtracts commissions. It assumes the position is held to expiration.<\/p>\n<p>\r\n<\/section>\n<style id=\"wpcoderpro-inline-459\">.calculation-box {\r\n\tborder-bottom: none !important;\r\n}<\/style><section id=\"calculation\" class=\"calculation-box\" aria-labelledby=\"calculation-title\">\r\n\t<div id=\"calculation-title\" class=\"not-prose font-display\"><span class=\"icon icon-unordered-list\" aria-hidden=\"true\"><\/span><h2>Options Profit \u2013 Calculation Example<\/h2><\/div>\r\n\r\n<\/p>\n<p><strong>Example:<\/strong> Buy one call with a $100 strike for a $5-per-share premium. The stock closes at $100 at expiration, and total commissions are $0.<\/p>\n<p>\\[\\text{Intrinsic value}=\\max(100-100,0)=0\\text{ per share}\\]<\/p>\n<p>\\[\\text{Profit or loss}=(0-5)\\times(1\\times100)-0=-\\$500\\]<\/p>\n<p>\\[\\text{Profit or loss as \\% of premium}=\\frac{-500}{5\\times100}\\times100=-100\\%\\]<\/p>\n<p><strong>Result:<\/strong> a $500 loss, equal to 100% of the premium paid. The call\u2019s break-even stock price is $105 per share; its maximum loss is $500, while its potential profit is unlimited.<\/p>\n<p>\n\r\n<\/section>\n<h2>How to use the calculator<\/h2>\n<ol>\n<li>Choose <strong>Option type<\/strong>: Call if the option benefits from a higher stock price, or Put if it benefits from a lower one.<\/li>\n<li>Choose <strong>Position<\/strong>: Buy (long) if you paid for the option, or Sell (short) if you received the premium.<\/li>\n<li>Enter the <strong>Strike price<\/strong> and <strong>Premium<\/strong>, both in dollars per share. Use the premium for one share, not the total paid or received.<\/li>\n<li>Enter the <strong>Number of contracts<\/strong>. The calculator uses 100 shares per contract.<\/li>\n<li>Enter your expected <strong>Stock price at expiration<\/strong> in dollars per share.<\/li>\n<li>Enter <strong>Total commissions<\/strong> for the entire position in dollars, not per contract. Read the profit or loss, percentage, break-even, risk limits, payoff table, and chart.<\/li>\n<\/ol>\n<h2>What option profit at expiration means<\/h2>\n<p>A call has value at expiration only when the stock price exceeds its strike; a put has value only when the stock price falls below its strike. This value, called intrinsic value, is not the same as profit. A buyer must recover the premium and commissions before making a net profit. A seller keeps the premium but owes any intrinsic value and still pays commissions.<\/p>\n<p><strong>Profit or loss at expiration<\/strong> is the position\u2019s dollar outcome at the stock price you entered. <strong>Profit or loss as % of premium<\/strong> divides that outcome by the gross premium amount across all contracts. It is not an annualized return or a return on the capital required to secure a short option. If the premium is zero, the calculator reports this percentage as unavailable.<\/p>\n<p>The <strong>Break-even stock price<\/strong> is intended to show where profit or loss reaches zero. For a long call, it is the strike plus the premium and commissions per share; for a long put, it is the strike minus those amounts. A break-even point below $0 cannot be reached by a nonnegative stock price. See the sold-call limitation below before relying on its displayed break-even result.<\/p>\n<p>The <strong>Maximum profit<\/strong> and <strong>Maximum loss<\/strong> describe the theoretical limits of the position at expiration. A long call has unlimited potential profit and a loss limited to its premium plus commissions. A short call has limited potential profit but unlimited potential loss. Put outcomes are bounded because the stock price cannot fall below zero. The calculator\u2019s payoff table and chart show 11 stock prices from 50% to 150% of the strike; they do not show every possible outcome.<\/p>\n<h2>Assumptions and practical limitations<\/h2>\n<p><strong>Sold-call break-even warning:<\/strong> the calculator\u2019s displayed break-even price for a short call can say \u201cNone at a nonnegative stock price\u201d even when a break-even price exists. Calculate it as the strike price plus the premium minus total commissions divided by the number of shares: \\(K+P-F\/(100N)\\), provided that price is at or above the strike. If commissions exceed the total premium received, the short call cannot break even at expiration. The profit or loss calculation uses the short-call payoff formula independently of this displayed break-even result.<\/p>\n<p>These are expiration outcomes, not estimates of an option\u2019s resale value before expiration. Time value, volatility, changes in option prices, margin requirements, taxes, interest, dividends, and the consequences of early assignment are not modeled. Enter commissions as one total covering the trades you want included. Actual contract specifications can vary, especially after corporate actions; check that your contract represents 100 shares before using these results.<\/p>\n<p>The chart uses a fixed range around the strike. If your expected stock price lies outside it, rely on the main profit or loss result for that scenario rather than extrapolating from the chart. For a separate way to explore possible stock-price levels, see the <a href=\"https:\/\/wpcalc.com\/en\/finance\/fibonacci-retracement\/\">Fibonacci Retracement calculator<\/a>. To compare a multi-year investment\u2019s growth rate with other investments, use the <a href=\"https:\/\/wpcalc.com\/en\/finance\/compound-annual-growth-rate\/\">Compound Annual Growth Rate calculator<\/a>; its annualized measure is different from this calculator\u2019s percentage of option premium.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Calculate a call or put option\u2019s profit or loss at expiration. Enter the position, strike price, premium, number of contracts, expiration stock price, and total commissions.<\/p>\n","protected":false},"author":3168,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5],"tags":[27],"class_list":["post-67166","post","type-post","status-publish","format-standard","hentry","category-finance","tag-investment"],"acf":[],"_links":{"self":[{"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/posts\/67166","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/users\/3168"}],"replies":[{"embeddable":true,"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/comments?post=67166"}],"version-history":[{"count":1,"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/posts\/67166\/revisions"}],"predecessor-version":[{"id":67207,"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/posts\/67166\/revisions\/67207"}],"wp:attachment":[{"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/media?parent=67166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/categories?post=67166"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/tags?post=67166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}