{
  "id": "rate-of-return",
  "version": "be66f6110471",
  "status": "published",
  "name": "Rate of Return Calculator",
  "question": "What is my rate of return?",
  "summary": "Computes the yearly rate of return (the annualized return) that grows an initial investment, plus optional regular additions, into a final value, and the total return.",
  "category": "finance",
  "subcategory": "investing",
  "url": "https://www.acalculator.org/finance/rate-of-return-calculator",
  "markdown": "https://www.acalculator.org/finance/rate-of-return-calculator.md",
  "kind": "function",
  "method": "Final value = investment × (1 + i)^N + addition × (1 + i × t) × ((1 + i)^N − 1) ÷ i, solved for the return per period i by search; with 1 period a year and no additions, rate = (final ÷ investment)^(1 ÷ N) − 1.",
  "assumptions": [
    "The interest rate is the same in every period, and every payment is the same size.",
    "The yearly rate is nominal, compounded as many times a year as set; payments are made as many times a year as set.",
    "The initial investment and the additions are money paid in; the final value is money received.",
    "No fees or taxes are included. This is an estimate for planning, not financial advice."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "solve": {
        "title": "Find the",
        "description": "Which value to work out; type the others.",
        "type": "string",
        "enum": [
          "n",
          "rate",
          "pv",
          "pmt",
          "fv"
        ]
      },
      "n": {
        "title": "Number of periods",
        "description": "How long the money was invested, in periods: years when the periods a year is 1.",
        "type": "number",
        "exclusiveMinimum": 0,
        "maximum": 12000
      },
      "rate": {
        "title": "Rate of return (yearly)",
        "description": "The yearly return in percent, compounded C/Y times a year. With 1 period a year it is the annualized return.",
        "type": "number",
        "x-unit": "percent",
        "exclusiveMinimum": -100,
        "maximum": 1000
      },
      "pv": {
        "title": "Initial investment",
        "description": "The amount invested at the start.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 1000000000000
      },
      "pmt": {
        "title": "Added each period",
        "description": "A level amount added every period. 0 when nothing was added.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 1000000000000
      },
      "fv": {
        "title": "Final value",
        "description": "What the investment is worth at the end.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 1000000000000
      },
      "py": {
        "title": "Periods a year",
        "description": "How many periods (and additions) there are in a year: 1 for yearly, 12 for monthly.",
        "type": "integer",
        "minimum": 1,
        "maximum": 365
      },
      "cy": {
        "title": "Compounding a year",
        "description": "How many times a year the return compounds. Usually the same as the periods a year.",
        "type": "integer",
        "minimum": 1,
        "maximum": 365
      },
      "due": {
        "title": "Additions at the",
        "description": "The end of each period or the start of each period.",
        "type": "string",
        "enum": [
          "end",
          "begin"
        ]
      }
    }
  },
  "outputs": {
    "n": {
      "label": "Number of periods",
      "description": "How long the money was invested, in periods: years when the periods a year is 1.",
      "format": "number"
    },
    "rate": {
      "label": "Rate of return (yearly)",
      "description": "The yearly return in percent, compounded C/Y times a year. With 1 period a year it is the annualized return.",
      "format": "percent"
    },
    "pv": {
      "label": "Initial investment",
      "description": "The amount invested at the start.",
      "format": "money"
    },
    "pmt": {
      "label": "Added each period",
      "description": "A level amount added every period. 0 when nothing was added.",
      "format": "money"
    },
    "fv": {
      "label": "Final value",
      "description": "What the investment is worth at the end.",
      "format": "money"
    },
    "periodRate": {
      "label": "Rate per period",
      "description": "The interest rate for one payment period, i = (1 + I/Y ÷ C/Y)^(C/Y ÷ P/Y) − 1.",
      "format": "percent"
    },
    "ear": {
      "label": "Effective yearly rate",
      "description": "The rate over a whole year once interest compounds: (1 + i)^(P/Y) − 1.",
      "format": "percent"
    },
    "totalPmt": {
      "label": "Total added",
      "description": "The number of periods × the amount added each period.",
      "format": "money"
    },
    "interest": {
      "label": "Total gain",
      "description": "The final value minus the initial investment and all the additions.",
      "format": "money"
    },
    "totalReturn": {
      "label": "Total return",
      "description": "The total gain as a percent of all the money put in (the initial investment plus the additions).",
      "format": "percent"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "solve": "rate",
      "py": 1,
      "cy": 1,
      "due": "end",
      "rate": 8.45,
      "n": 5,
      "pv": 10000,
      "pmt": 0,
      "fv": 15000
    },
    "outputs": {
      "rate": 8.447177119769862,
      "periodRate": 8.447177119769862,
      "ear": 8.447177119769862,
      "totalPmt": 0,
      "interest": 5000,
      "totalReturn": 50
    },
    "text": "Growing $10,000.00 into $15,000.00 over 5 periods is a rate of return of 8.4472% a year."
  },
  "examples": [
    {
      "given": {
        "solve": "rate",
        "n": 5,
        "pv": 10000,
        "pmt": 0,
        "fv": 15000,
        "py": 1,
        "cy": 1,
        "due": "end"
      },
      "expect": {
        "rate": 8.447177119769865,
        "interest": 5000,
        "totalReturn": 50
      },
      "source": "the compound interest formula A = P(1 + r)^n solved for r (SEC Investor.gov, https://www.investor.gov/financial-tools-calculators/calculators/compound-interest-calculator); hand calculation in content.mdx; Python 3 cross-check",
      "tolerance": 1e-8
    },
    {
      "given": {
        "solve": "rate",
        "n": 12,
        "pv": 1000,
        "pmt": 100,
        "fv": 2301.4018303409403,
        "py": 12,
        "cy": 12,
        "due": "begin"
      },
      "expect": {
        "rate": 6
      },
      "source": "Microsoft Excel FV function, example 4: 6% a year gives $2,301.40 (https://support.microsoft.com/en-us/office/fv-function-2eef9f44-a084-4c61-bdd8-4fe4bb1b71b3), solved back for the rate",
      "tolerance": 1e-8
    },
    {
      "given": {
        "solve": "rate",
        "n": 10,
        "pv": 1000,
        "pmt": 100,
        "fv": 3000,
        "py": 1,
        "cy": 1,
        "due": "end"
      },
      "expect": {
        "rate": 5.519428850933473,
        "totalPmt": 1000,
        "interest": 1000,
        "totalReturn": 50
      },
      "source": "the future value of a sum and an annuity, Broverman (2017), Mathematics of Investment and Credit, chapter 2, solved for the rate; Python 3 cross-check",
      "tolerance": 1e-8
    }
  ],
  "sources": [
    "U.S. Securities and Exchange Commission, Investor.gov compound interest calculator and formula. https://www.investor.gov/financial-tools-calculators/calculators/compound-interest-calculator",
    "Microsoft, Excel FV function, with worked examples. https://support.microsoft.com/en-us/office/fv-function-2eef9f44-a084-4c61-bdd8-4fe4bb1b71b3",
    "S. A. Broverman (2017), Mathematics of Investment and Credit, 7th edition, chapters 1 and 2: rates of return and annuities."
  ],
  "related": [
    "cagr",
    "roi",
    "irr",
    "investment",
    "financial"
  ],
  "changelog": []
}
