{"id":248,"date":"2025-05-09T15:42:59","date_gmt":"2025-05-09T12:42:59","guid":{"rendered":"http:\/\/wpcalc.com\/?p=248"},"modified":"2026-09-30T20:11:58","modified_gmt":"2026-09-30T17:11:58","slug":"yield-to-maturity","status":"publish","type":"post","link":"https:\/\/wpcalc.com\/en\/finance\/yield-to-maturity\/","title":{"rendered":"Yield to Maturity (YTM) 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 Yield to Maturity (YTM) of Your Bond<\/h2><\/div><div class=\"calcdash-favorite group\">\n  <button type=\"button\" class=\"favorite\" id=\"favorite\" data-favorite-id=\"248\" data-favorite-title=\"Yield to Maturity (YTM)\" data-favorite-url=\"https:\/\/wpcalc.com\/en\/finance\/yield-to-maturity\/\" data-favorite-excerpt=\"Calculate the Yield to Maturity (YTM) of a bond from its current price, annual coupon payment, face value, and years to maturity. YTM is the total annualized return you would earn by holding the bond until it matures.\" aria-label=\"Add to Favorites\" data-favorite-icon=\"icon icon-rate-up\">\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\/yield-to-maturity\/\" method=\"POST\" class=\"calculator\" id=\"calculator-248\" data-post=\"248\"><fieldset class=\"fieldset-input\"><legend class=\"sr-only\">Input Fields<\/legend><div class=\"field has-term\" id=\"input-1\"><label for=\"field-1\">Current Price of Bond<\/label><div class=\"term\">P<\/div>  <div class=\"absolute bottom-0 left-16 top-8 w-2 h-0.5 bg-blue-500\"><\/div><input type=\"text\" name=\"current_price_of_bond\" id=\"field-1\" aria-describedby=\"calc-unit-1 calc-info-1\" data-number inputmode=\"decimal\" autocomplete=\"off\" spellcheck=\"false\" min=\"0\" value=\"950\"\/><div class=\"unit\" id=\"calc-unit-1\">$<\/div><small id=\"calc-info-1\">Enter the current price of the bond<\/small><\/div><div class=\"field has-term\" id=\"input-2\"><label for=\"field-2\">Coupon Payment (Annual)<\/label><div class=\"term\">C<\/div>  <div class=\"absolute bottom-0 left-16 top-8 w-2 h-0.5 bg-blue-500\"><\/div><input type=\"text\" name=\"coupon_payment_annual\" id=\"field-2\" aria-describedby=\"calc-unit-2 calc-info-2\" data-number inputmode=\"decimal\" autocomplete=\"off\" spellcheck=\"false\" min=\"0\" value=\"50\"\/><div class=\"unit\" id=\"calc-unit-2\">$<\/div><small id=\"calc-info-2\">Enter the annual coupon payment<\/small><\/div><div class=\"field has-term\" id=\"input-3\"><label for=\"field-3\">Face Value of Bond<\/label><div class=\"term\">F<\/div>  <div class=\"absolute bottom-0 left-16 top-8 w-2 h-0.5 bg-blue-500\"><\/div><input type=\"text\" name=\"face_value_of_bond\" id=\"field-3\" aria-describedby=\"calc-unit-3 calc-info-3\" data-number inputmode=\"decimal\" autocomplete=\"off\" spellcheck=\"false\" min=\"0\" value=\"1000\"\/><div class=\"unit\" id=\"calc-unit-3\">$<\/div><small id=\"calc-info-3\">Enter the face value of the bond (usually $1000)<\/small><\/div><div class=\"field has-term\" id=\"input-4\"><label for=\"field-4\">Years to Maturity<\/label><div class=\"term\">n<\/div>  <div class=\"absolute bottom-0 left-16 top-8 w-2 h-0.5 bg-blue-500\"><\/div><input type=\"text\" name=\"years_to_maturity\" id=\"field-4\" aria-describedby=\"calc-info-4\" data-number inputmode=\"decimal\" autocomplete=\"off\" spellcheck=\"false\" min=\"1\" value=\"10\"\/><small id=\"calc-info-4\">Enter the number of years to maturity<\/small><\/div><\/fieldset><div class=\"buttons\"><button type=\"submit\" data-text=\"Re-Calculate\" id=\"calculate-button\" data-post=\"248\">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>Yield to Maturity (YTM)<\/span><\/span><span class=\"field-value\" id=\"result-1\" data-unit=\"%\"><\/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=\"248\" 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>Yield to Maturity (YTM) 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\\[ P = \\sum_{t=1}^{n} \\frac{C}{(1 + r)^t} + \\frac{F}{(1 + r)^n} \\]\n\\[ \\text{YTM} = r \\quad \\text{where the equation above holds} \\]\n<\/div>\r\n\t<\/figure>\r\n\t<\/p>\n<p><strong>Where:<\/strong><\/p>\n<ul>\n<li>\\(P\\) \u2014 current market price of the bond ($)<\/li>\n<li>\\(C\\) \u2014 annual coupon payment ($)<\/li>\n<li>\\(F\\) \u2014 face value (par value) of the bond ($)<\/li>\n<li>\\(n\\) \u2014 number of years until maturity<\/li>\n<li>\\(r\\) \u2014 yield to maturity (as a decimal)<\/li>\n<\/ul>\n<p>This equation states that the bond's price equals the present value of all future cash flows: every coupon payment discounted to today, plus the face value repaid at maturity. Because \\(r\\) appears in the exponents, it cannot be isolated algebraically \u2014 it is found by numerical iteration, which is exactly what this calculator does.<\/p>\n<p>For a quick hand estimate, the approximate YTM formula is often used:<\/p>\n<p>\\[ YTM \\approx \\frac{C + \\frac{F - P}{n}}{\\frac{F + P}{2}} \\]<\/p>\n<p>It spreads the gain or loss at maturity evenly over the holding period and averages the invested capital. It is reasonably accurate for bonds with long maturities trading near par, but the calculator always returns the exact, iteratively solved rate.<\/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>Yield to Maturity (YTM) \u2013 Calculation Example<\/h2><\/div>\r\n\r\n<\/p>\n<p><strong>Example:<\/strong> a bond trades at $950, pays a $50 annual coupon, has a face value of $1,000, and matures in 10 years.<\/p>\n<p>\\[ 950 = \\sum_{t=1}^{10} \\frac{50}{(1 + r)^t} + \\frac{1000}{(1 + r)^{10}} \\]<\/p>\n<p>Solving this equation iteratively for \\(r\\):<\/p>\n<p>\\[ r \\approx 0.0567 \\]<\/p>\n<p><strong>Result:<\/strong> the yield to maturity is approximately <strong>5.67%<\/strong> per year.<\/p>\n<p>For comparison, the approximation formula gives \\(\\frac{50 + (1000 - 950)\/10}{(1000 + 950)\/2} = 5.64\\%\\), close to the exact answer but slightly lower.<\/p>\n<p>\n\r\n<\/section>\n<h2>How to Use the Calculator<\/h2>\n<ol>\n<li>Enter the <strong>Current Price of Bond<\/strong> \u2014 the price you would actually pay for the bond in the market today (e.g. 950).<\/li>\n<li>Enter the <strong>Coupon Payment (Annual)<\/strong> \u2014 the total dollar amount of interest the bond pays per year (e.g. 50 for a 5% coupon on a $1,000 bond).<\/li>\n<li>Enter the <strong>Face Value of Bond<\/strong> \u2014 the amount repaid at maturity, usually $1,000 for corporate bonds.<\/li>\n<li>Enter the <strong>Years to Maturity<\/strong> \u2014 the number of full years remaining until the bond matures.<\/li>\n<li>Read the <strong>Yield to Maturity (YTM)<\/strong> result, expressed as an annual percentage rate.<\/li>\n<\/ol>\n<p>All inputs must be positive; if any value is zero or negative, the calculator returns an error. Use the annual coupon total, not the coupon rate \u2014 a 5% coupon on $1,000 face value means entering 50, not 5.<\/p>\n<h2>What Is Yield to Maturity?<\/h2>\n<p>Yield to maturity is the single discount rate that makes the present value of all a bond's future cash flows equal to its current price. In plain terms, it is the annualized total return you would earn if you bought the bond today, held it until maturity, and reinvested every coupon payment at the same rate. Because it captures all three sources of bond return \u2014 coupon income, the gain or loss when the face value is repaid, and the time value of money \u2014 YTM is the standard yardstick for comparing bonds with different prices, coupons, and maturities.<\/p>\n<p>YTM moves inversely to price. A bond trading below face value (at a discount) has a YTM higher than its coupon rate, because you also pocket the difference between the $1,000 you receive at maturity and the lower price you paid. A bond trading above face value (at a premium) has a YTM below its coupon rate. In the example above, the $950 discount bond with a 5% coupon yields 5.67% \u2014 the extra return comes from the $50 capital gain spread over ten years.<\/p>\n<p>YTM assumes coupons are reinvested at the same rate and that the issuer does not default or call the bond early. It is therefore a promised yield, not a guaranteed one. When comparing investments, YTM plays the same role for bonds that <a href=\"https:\/\/wpcalc.com\/en\/finance\/compound-annual-growth-rate\/\">compound annual growth rate (CAGR)<\/a> plays for stocks and <a href=\"https:\/\/wpcalc.com\/en\/finance\/annual-percentage-yield\/\">annual percentage yield (APY)<\/a> plays for savings accounts: an annualized figure that makes unlike instruments comparable.<\/p>\n<h2>Relationship Between Price and YTM<\/h2>\n<table>\n<thead>\n<tr>\n<th>Bond price<\/th>\n<th>Position vs. face value<\/th>\n<th>YTM vs. coupon rate<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Price &lt; Face value<\/td>\n<td>Discount<\/td>\n<td>YTM &gt; coupon rate<\/td>\n<\/tr>\n<tr>\n<td>Price = Face value<\/td>\n<td>At par<\/td>\n<td>YTM = coupon rate<\/td>\n<\/tr>\n<tr>\n<td>Price &gt; Face value<\/td>\n<td>Premium<\/td>\n<td>YTM &lt; coupon rate<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>This inverse relationship is the foundation of bond investing: when market interest rates rise, existing bond prices fall (their YTM rises to match the market), and vice versa.<\/p>\n<h2>Assumptions and Limitations<\/h2>\n<ul>\n<li><strong>Held to maturity:<\/strong> YTM assumes you hold the bond until it matures. If you sell earlier, your actual return depends on the market price at that time and can differ significantly.<\/li>\n<li><strong>Coupon reinvestment:<\/strong> all coupons are assumed to be reinvested at the YTM itself. If reinvestment rates are lower, your realized return will be lower.<\/li>\n<li><strong>Annual coupons:<\/strong> the calculator assumes one coupon payment per year. Many bonds pay semi-annually; for those, divide the coupon and double the number of periods to get a comparable semi-annual yield, then double it for a rough annual figure.<\/li>\n<li><strong>No default or call:<\/strong> the calculation ignores credit risk and call provisions. A callable bond can be redeemed early, cutting short the assumed cash flows. For yield on the worst-case early redemption, use yield to call instead.<\/li>\n<li><strong>Before taxes and fees:<\/strong> YTM is a pre-tax, gross figure; transaction costs and income tax on coupons reduce the actual return.<\/li>\n<\/ul>\n<p>If you want to work in the other direction \u2014 finding what a bond is worth at a given required yield \u2014 use the <a href=\"https:\/\/wpcalc.com\/en\/finance\/bond-value\/\">Bond Present Value calculator<\/a>. The same discounting logic behind YTM underlies the <a href=\"https:\/\/wpcalc.com\/en\/finance\/net-present-value\/\">Net Present Value (NPV)<\/a> method used for general investment appraisal.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Calculate the Yield to Maturity (YTM) of a bond from its current price, annual coupon payment, face value, and years to maturity. YTM is the total annualized return you would earn by holding the bond until it matures.<\/p>\n","protected":false},"author":70,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5],"tags":[25],"class_list":["post-248","post","type-post","status-publish","format-standard","hentry","category-finance","tag-interest"],"acf":[],"_links":{"self":[{"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/posts\/248","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\/70"}],"replies":[{"embeddable":true,"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/comments?post=248"}],"version-history":[{"count":2,"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/posts\/248\/revisions"}],"predecessor-version":[{"id":66191,"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/posts\/248\/revisions\/66191"}],"wp:attachment":[{"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/media?parent=248"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/categories?post=248"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpcalc.com\/en\/wp-json\/wp\/v2\/tags?post=248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}