{
  "id": "loan-payoff",
  "version": "bf97b4d913b8",
  "status": "published",
  "name": "Loan Payoff Calculator",
  "question": "When will my loan payoff be done?",
  "summary": "Computes how many months a monthly payment takes to pay off a loan balance, and the interest saved by paying extra, or the payment that pays it off in a chosen number of months.",
  "category": "finance",
  "subcategory": "loans",
  "url": "https://www.acalculator.org/finance/loan-payoff-calculator",
  "markdown": "https://www.acalculator.org/finance/loan-payoff-calculator.md",
  "kind": "schedule",
  "method": "Each month, interest = balance × r (r = APR ÷ 12) and the payment minus the interest lowers the balance; the months to pay off are −ln(1 − B·r ÷ P) ÷ ln(1 + r) rounded up, and the payment for n months is B × r ÷ (1 − (1 + r)^−n).",
  "assumptions": [
    "The rate is fixed and interest is charged monthly at APR ÷ 12 on the balance.",
    "The balance is what you owe today; the first payment is at the end of the first month.",
    "Extra payments go straight to the balance. The last payment is whatever is left.",
    "No new charges are added to the balance.",
    "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": {
      "balance": {
        "title": "Loan balance today",
        "description": "The amount you still owe on the loan today.",
        "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
      },
      "goal": {
        "title": "What do you know?",
        "description": "Pick \"My payment\" to find when the loan is paid off, or \"A payoff time\" to find the payment.",
        "type": "string",
        "enum": [
          "payment",
          "months"
        ]
      },
      "payment": {
        "title": "Monthly payment",
        "description": "The amount you pay each month now.",
        "type": "number",
        "x-unit": "USD",
        "exclusiveMinimum": 0,
        "maximum": 10000000
      },
      "extra": {
        "title": "Extra each month",
        "description": "An extra amount paid with every payment. It goes straight to the balance.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 10000000
      },
      "months": {
        "title": "Pay it off in (months)",
        "description": "The number of monthly payments you want the loan paid off in.",
        "type": "integer",
        "minimum": 1,
        "maximum": 600
      },
      "start": {
        "title": "Next payment month",
        "description": "The month of your next payment. It dates the schedule and the payoff month.",
        "type": "string",
        "format": "date"
      }
    }
  },
  "outputs": {
    "months": {
      "label": "Months to pay it off",
      "description": "The number of monthly payments until the balance is 0, extra included.",
      "format": "integer"
    },
    "level": {
      "label": "Monthly payment",
      "description": "The amount paid each month: your payment plus any extra, or the payment that clears the loan in time.",
      "format": "money"
    },
    "time": {
      "label": "Time to pay it off",
      "description": "The number of payments in years and months.",
      "format": "duration"
    },
    "payoff": {
      "label": "Last payment",
      "description": "The month of the last payment, when a month is given.",
      "format": "month-year"
    },
    "interest": {
      "label": "Total interest",
      "description": "All the interest paid until the loan is paid off.",
      "format": "money"
    },
    "paid": {
      "label": "Total of payments",
      "description": "The balance plus all the interest.",
      "format": "money"
    },
    "saved": {
      "label": "Interest saved by paying extra",
      "description": "The interest the extra amount saves, compared with paying only the monthly payment.",
      "format": "money"
    },
    "sooner": {
      "label": "Months saved by paying extra",
      "description": "How many fewer payments the extra amount takes, compared with paying only the monthly payment.",
      "format": "integer"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "balance": 12000,
      "rate": 8,
      "goal": "payment",
      "payment": 350,
      "extra": 100,
      "months": 36,
      "start": "2026-09-29"
    },
    "outputs": {
      "months": 30,
      "level": 450,
      "time": {
        "years": 2,
        "months": 6
      },
      "payoff": "2029-02-28",
      "interest": 1257.1240424792913,
      "paid": 13257.124042479292,
      "saved": 412.63971797898375,
      "sooner": 10
    },
    "text": "Paying $450.00 a month clears $12,000.00 at 8% in 2 years, 6 months, with $1,257.12 of interest."
  },
  "examples": [
    {
      "given": {
        "balance": 15000,
        "rate": 8,
        "goal": "payment",
        "payment": 350,
        "extra": 100
      },
      "expect": {
        "months": 38,
        "interest": 2020.4249673274423,
        "saved": 703.4530753988549,
        "sooner": 13
      },
      "source": "hand calculation in content.mdx; Python 3 in docs/progress/WP-31/python/loan_payoff.py"
    },
    {
      "given": {
        "balance": 15000,
        "rate": 8,
        "goal": "months",
        "months": 36
      },
      "expect": {
        "level": 470.04548192146694,
        "interest": 1921.6373491726395,
        "time": {
          "years": 3,
          "months": 0
        }
      },
      "source": "hand calculation in content.mdx: 15,000 × r ÷ (1 − (1 + r)^−36), r = 0.08 ÷ 12"
    },
    {
      "given": {
        "balance": 2400,
        "rate": 0,
        "goal": "payment",
        "payment": 100,
        "start": "2026-11-01"
      },
      "expect": {
        "months": 24,
        "interest": 0,
        "payoff": "2028-10-01"
      },
      "source": "hand calculation in content.mdx: 2,400 ÷ 100"
    }
  ],
  "sources": [
    "Consumer Financial Protection Bureau, Can I prepay my loan at any time without penalty? https://www.consumerfinance.gov/ask-cfpb/can-i-prepay-my-loan-at-any-time-without-penalty-en-843/",
    "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/",
    "Number of payments and loan payment formulas: S. A. Broverman, Mathematics of Investment and Credit, chapter 3."
  ],
  "related": [
    "amortization",
    "mortgage-payoff",
    "credit-card-interest",
    "personal-loan"
  ],
  "changelog": []
}
