{
  "slug": "bond-yield-to-maturity",
  "title": "Bond Yield Calculator",
  "heading": "Bond Yield Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/bond-yield-to-maturity",
  "summary": "Current yield, yield to maturity, and total coupon income.",
  "description": "A bond bought below par yields more than its coupon; bought above par it yields less. Yield to maturity blends the coupon stream with that price difference.",
  "formula": "Current yield = Annual coupon ÷ Price; YTM approximated by the standard analytic formula.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=bond-yield-to-maturity",
  "inputs": [
    {
      "id": "face",
      "label": "Face value",
      "kind": "number",
      "hint": null,
      "default": 1000,
      "unit": "$",
      "min": 1,
      "max": null
    },
    {
      "id": "price",
      "label": "Purchase price",
      "kind": "number",
      "hint": null,
      "default": 920,
      "unit": "$",
      "min": 1,
      "max": null
    },
    {
      "id": "coupon",
      "label": "Coupon rate",
      "kind": "number",
      "hint": null,
      "default": 4.5,
      "unit": "%",
      "min": 0,
      "max": 25
    },
    {
      "id": "years",
      "label": "Years to maturity",
      "kind": "number",
      "hint": null,
      "default": 8,
      "unit": null,
      "min": 0.5,
      "max": 40
    },
    {
      "id": "qty",
      "label": "Number of bonds",
      "kind": "number",
      "hint": null,
      "default": 10,
      "unit": null,
      "min": 1,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "ytm",
      "label": "Yield to maturity (approx.)",
      "format": "percent",
      "hint": null,
      "primary": true
    },
    {
      "id": "currentYield",
      "label": "Current yield",
      "format": "percent",
      "hint": null,
      "primary": false
    },
    {
      "id": "annual",
      "label": "Annual coupon income",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "totalCoupons",
      "label": "Total coupons to maturity",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "gain",
      "label": "Gain at maturity vs price paid",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "totalReturn",
      "label": "Total return to maturity",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Face value: 1000 $",
      "Purchase price: 920 $",
      "Coupon rate: 4.5 %",
      "Years to maturity: 8",
      "Number of bonds: 10"
    ],
    "outputs": [
      "Yield to maturity (approx.): 5.729%",
      "Current yield: 4.891%",
      "Annual coupon income: $450.00",
      "Total coupons to maturity: $3,600.00",
      "Gain at maturity vs price paid: $800.00",
      "Total return to maturity: $4,400.00"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter face value ($).",
      "Enter purchase price ($).",
      "Enter coupon rate (%).",
      "Enter years to maturity.",
      "Enter number of bonds.",
      "Read your yield to maturity (approx.) on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "face": 600,
        "price": 550,
        "coupon": 2.6999999999999997,
        "years": 4.8,
        "qty": 6
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "face": 1000,
        "price": 920,
        "coupon": 4.5,
        "years": 8,
        "qty": 10
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "face": 1600,
        "price": 1470,
        "coupon": 7.2,
        "years": 12.8,
        "qty": 16
      }
    }
  ],
  "limitations": [
    "Results are estimates before tax, fees, and inflation unless an input explicitly covers them.",
    "Rates are treated as fixed for the whole period — variable-rate products will drift from this projection.",
    "This is educational maths, not financial advice. Check anything contractual with the lender or your accountant."
  ],
  "faq": [
    {
      "q": "How does the bond yield calculator work?",
      "a": "A bond bought below par yields more than its coupon; bought above par it yields less. Yield to maturity blends the coupon stream with that price difference. The underlying maths is: Current yield = Annual coupon ÷ Price; YTM approximated by the standard analytic formula."
    },
    {
      "q": "What do I need to enter?",
      "a": "5 values: face value, purchase price, coupon rate, years to maturity, and number of bonds. Each field starts with a sensible default, so you can change one number at a time and watch the result move."
    },
    {
      "q": "What does the yield to maturity (approx.) result mean?",
      "a": "It is returned as a percentage and updates live as you edit the inputs, so you can compare two or three versions of a scenario in a few seconds."
    },
    {
      "q": "Is this calculator free, and do I need an account?",
      "a": "Yes, it's free, and no account is required. Nothing you type is stored on our servers — the maths runs entirely in your browser."
    },
    {
      "q": "How accurate is the result?",
      "a": "It applies the standard formula exactly, so the arithmetic is precise. Results are estimates before tax, fees, and inflation unless an input explicitly covers them."
    },
    {
      "q": "Who is this tool for?",
      "a": "It's built for anyone comparing money scenarios before committing — budgeting a payment, sanity-checking a quote, or seeing what a change in rate or term actually costs."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/cd-ladder",
    "https://www.revenuelab.fyi/toolbox/treasury-bill-yield"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Bond Yield Calculator (https://www.revenuelab.fyi/toolbox/bond-yield-to-maturity)"
}