{
  "id": "amortization",
  "version": "162719887247",
  "status": "published",
  "name": "Amortization Calculator",
  "question": "What is my amortization schedule?",
  "summary": "Computes the monthly payment and the payment-by-payment amortization schedule of a fixed-rate loan, with optional extra monthly, yearly, and one-time payments.",
  "category": "finance",
  "subcategory": "loans",
  "url": "https://www.acalculator.org/finance/amortization-calculator",
  "markdown": "https://www.acalculator.org/finance/amortization-calculator.md",
  "kind": "schedule",
  "method": "payment = L × r ÷ (1 − (1 + r)^−n), with L the loan amount, r the APR ÷ 12, and n the number of months; each month, interest = balance × r, and the payment plus any extra, minus the interest, lowers the balance.",
  "assumptions": [
    "The rate is fixed and interest is charged monthly at APR ÷ 12 on the balance.",
    "Payments are made at the end of each month, starting one month after the start date.",
    "Extra payments go straight to the balance; the yearly extra is paid with payments 12, 24, 36, and so on.",
    "The last payment is whatever is left, so the principal parts add up to the loan amount.",
    "Values are not rounded to the cent between months; only the display is rounded."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "amount": {
        "title": "Loan amount",
        "description": "The amount borrowed.",
        "type": "number",
        "x-unit": "USD",
        "exclusiveMinimum": 0,
        "maximum": 100000000
      },
      "rate": {
        "title": "Interest rate (APR)",
        "description": "The yearly interest rate. The monthly rate is this divided by 12.",
        "type": "number",
        "x-unit": "percent",
        "minimum": 0,
        "maximum": 50
      },
      "years": {
        "title": "Loan term (years)",
        "description": "The length of the loan in whole years.",
        "type": "integer",
        "minimum": 0,
        "maximum": 50
      },
      "months": {
        "title": "Plus months",
        "description": "Months added to the years, from 0 to 11.",
        "type": "integer",
        "minimum": 0,
        "maximum": 11
      },
      "start": {
        "title": "Loan start date",
        "description": "The day the loan starts. The first payment is one month later.",
        "type": "string",
        "format": "date"
      },
      "extra": {
        "title": "Extra each month",
        "description": "An extra amount paid with every monthly payment. It goes straight to the balance.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 10000000
      },
      "yearly": {
        "title": "Extra each year",
        "description": "An extra amount paid once a year, with every 12th payment.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 10000000
      },
      "once": {
        "title": "One-time extra payment",
        "description": "A single extra amount paid with the payment number below.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 100000000
      },
      "onceat": {
        "title": "With payment number",
        "description": "The payment the one-time extra amount is paid with, counting from 1.",
        "type": "integer",
        "minimum": 1,
        "maximum": 611
      }
    }
  },
  "outputs": {
    "payment": {
      "label": "Monthly payment",
      "description": "The level monthly payment that repays the loan over its term, without extra payments.",
      "format": "money"
    },
    "amount": {
      "label": "Loan amount",
      "description": "The amount borrowed.",
      "format": "money"
    },
    "interest": {
      "label": "Total interest",
      "description": "All the interest paid, with any extra payments.",
      "format": "money"
    },
    "paid": {
      "label": "Total of payments",
      "description": "The loan amount plus all the interest.",
      "format": "money"
    },
    "payments": {
      "label": "Number of payments",
      "description": "How many monthly payments it takes to repay the loan, with any extra payments.",
      "format": "integer"
    },
    "payoff": {
      "label": "Paid off in",
      "description": "The month of the last payment, when a start date is given.",
      "format": "month-year"
    },
    "saved": {
      "label": "Interest saved by paying extra",
      "description": "The interest the extra payments save, compared with the schedule without them.",
      "format": "money"
    },
    "sooner": {
      "label": "Months saved by paying extra",
      "description": "How many fewer monthly payments the extra payments take.",
      "format": "integer"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "amount": 250000,
      "rate": 6.5,
      "years": 30,
      "months": 0,
      "start": "2026-09-29",
      "extra": 0,
      "yearly": 0,
      "once": 0,
      "onceat": 12
    },
    "outputs": {
      "payment": 1580.1700587324096,
      "amount": 250000,
      "interest": 318861.22114366747,
      "paid": 568861.2211436675,
      "payments": 360,
      "payoff": "2056-09-29"
    },
    "text": "A $250,000.00 loan at 6.5% is repaid with $1,580.17 a month; with the payments shown it takes 360 payments and $318,861.22 of interest."
  },
  "examples": [
    {
      "given": {
        "amount": 200000,
        "rate": 6,
        "years": 30
      },
      "expect": {
        "payment": 1199.1010503055138,
        "interest": 231676.37810997647,
        "payments": 360
      },
      "source": "hand calculation in content.mdx; Python 3 cross-check in docs/progress/WP-31/python/amortization.py"
    },
    {
      "given": {
        "amount": 10000,
        "rate": 0,
        "years": 1,
        "months": 6,
        "start": "2026-10-15"
      },
      "expect": {
        "payment": 555.5555555555555,
        "interest": 0,
        "payments": 18,
        "payoff": "2028-04-15"
      },
      "source": "hand calculation in content.mdx: 10,000 ÷ 18"
    },
    {
      "given": {
        "amount": 200000,
        "rate": 6,
        "years": 30,
        "extra": 200
      },
      "expect": {
        "payments": 252,
        "interest": 151875.871645619,
        "saved": 79800.50646436599,
        "sooner": 108
      },
      "source": "hand calculation in content.mdx, month by month in Python (docs/progress/WP-31/python/amortization.py)"
    },
    {
      "given": {
        "amount": 100000,
        "rate": 5,
        "years": 15,
        "yearly": 1000,
        "once": 10000,
        "onceat": 24
      },
      "expect": {
        "payment": 790.7936267415464,
        "payments": 138,
        "interest": 29822.430373945022
      },
      "source": "month by month in Python (docs/progress/WP-31/python/amortization.py), rule in content.mdx"
    }
  ],
  "sources": [
    "Consumer Financial Protection Bureau, What is amortization and how could it affect my auto loan? https://www.consumerfinance.gov/ask-cfpb/what-is-amortization-and-how-could-it-affect-my-auto-loan-en-771/",
    "Consumer Financial Protection Bureau, How does paying down a mortgage work? https://www.consumerfinance.gov/ask-cfpb/how-does-paying-down-a-mortgage-work-en-1943/",
    "Consumer Financial Protection Bureau, What is a prepayment penalty? https://www.consumerfinance.gov/ask-cfpb/what-is-a-prepayment-penalty-en-1957/",
    "Amortized loan payment (annuity) formula: S. A. Broverman, Mathematics of Investment and Credit, chapter 3 (loan payment and amortization schedule)."
  ],
  "related": [
    "loan",
    "mortgage",
    "mortgage-payoff",
    "loan-payoff"
  ],
  "changelog": []
}
