{
  "id": "credit-card-payoff",
  "version": "2902d652a53a",
  "status": "published",
  "name": "Credit Card Payoff Calculator",
  "question": "When is my credit card payoff date?",
  "summary": "Computes the debt-free date, total interest, and payoff order for up to five credit cards paid by the avalanche method (highest APR first), and the interest an extra monthly payment saves.",
  "category": "finance",
  "subcategory": "loans",
  "url": "https://www.acalculator.org/finance/credit-card-payoff-calculator",
  "markdown": "https://www.acalculator.org/finance/credit-card-payoff-calculator.md",
  "kind": "schedule",
  "method": "Each month, every card is charged balance × APR ÷ 12, then paid its minimum; the rest of the monthly total (all minimums plus the extra) goes to the card with the highest APR, then the next, until every balance is zero.",
  "assumptions": [
    "Interest is charged monthly at APR ÷ 12 on the balance at the start of the month; card issuers charge daily, so a statement can differ a little.",
    "Each minimum payment stays the same every month. When a card is paid off, its minimum goes to the next card, so the monthly total stays the same.",
    "The extra goes to the card with the highest APR (the avalanche method); equal APRs are paid in the order entered.",
    "No new purchases, fees, or promotional rates.",
    "The page follows the cards for up to 50 years (600 months).",
    "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": {
      "name1": {
        "title": "Card name",
        "description": "A name for card 1, to tell the cards apart.",
        "type": "string",
        "maxLength": 40
      },
      "balance1": {
        "title": "Current balance",
        "description": "What you owe on card 1 today.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 10000000
      },
      "apr1": {
        "title": "APR",
        "description": "The yearly interest rate of card 1. The monthly rate is this divided by 12.",
        "type": "number",
        "x-unit": "percent",
        "minimum": 0,
        "maximum": 100
      },
      "minPayment1": {
        "title": "Minimum payment",
        "description": "The minimum monthly payment of card 1, from your statement. It stays the same every month.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 10000000
      },
      "name2": {
        "title": "Card name",
        "description": "A name for card 2, to tell the cards apart.",
        "type": "string",
        "maxLength": 40
      },
      "balance2": {
        "title": "Current balance",
        "description": "What you owe on card 2 today.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 10000000
      },
      "apr2": {
        "title": "APR",
        "description": "The yearly interest rate of card 2. The monthly rate is this divided by 12.",
        "type": "number",
        "x-unit": "percent",
        "minimum": 0,
        "maximum": 100
      },
      "minPayment2": {
        "title": "Minimum payment",
        "description": "The minimum monthly payment of card 2, from your statement. It stays the same every month.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 10000000
      },
      "name3": {
        "title": "Card name",
        "description": "A name for card 3, to tell the cards apart.",
        "type": "string",
        "maxLength": 40
      },
      "balance3": {
        "title": "Current balance",
        "description": "What you owe on card 3 today.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 10000000
      },
      "apr3": {
        "title": "APR",
        "description": "The yearly interest rate of card 3. The monthly rate is this divided by 12.",
        "type": "number",
        "x-unit": "percent",
        "minimum": 0,
        "maximum": 100
      },
      "minPayment3": {
        "title": "Minimum payment",
        "description": "The minimum monthly payment of card 3, from your statement. It stays the same every month.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 10000000
      },
      "name4": {
        "title": "Card name",
        "description": "A name for card 4, to tell the cards apart.",
        "type": "string",
        "maxLength": 40
      },
      "balance4": {
        "title": "Current balance",
        "description": "What you owe on card 4 today.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 10000000
      },
      "apr4": {
        "title": "APR",
        "description": "The yearly interest rate of card 4. The monthly rate is this divided by 12.",
        "type": "number",
        "x-unit": "percent",
        "minimum": 0,
        "maximum": 100
      },
      "minPayment4": {
        "title": "Minimum payment",
        "description": "The minimum monthly payment of card 4, from your statement. It stays the same every month.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 10000000
      },
      "name5": {
        "title": "Card name",
        "description": "A name for card 5, to tell the cards apart.",
        "type": "string",
        "maxLength": 40
      },
      "balance5": {
        "title": "Current balance",
        "description": "What you owe on card 5 today.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 10000000
      },
      "apr5": {
        "title": "APR",
        "description": "The yearly interest rate of card 5. The monthly rate is this divided by 12.",
        "type": "number",
        "x-unit": "percent",
        "minimum": 0,
        "maximum": 100
      },
      "minPayment5": {
        "title": "Minimum payment",
        "description": "The minimum monthly payment of card 5, from your statement. It stays the same every month.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 10000000
      },
      "extra": {
        "title": "Extra each month",
        "description": "An amount paid each month on top of all the minimums. It goes to the card with the highest APR.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 10000000
      },
      "start": {
        "title": "Today’s date",
        "description": "The day the balances are from. The next payment is one month later. Leave it empty to count months without dates.",
        "type": "string",
        "format": "date"
      }
    }
  },
  "outputs": {
    "months": {
      "label": "Months until debt-free",
      "description": "The number of monthly payments until every card is paid off.",
      "format": "integer"
    },
    "time": {
      "label": "Time to be debt-free",
      "description": "The months until every card is paid off, in years and months.",
      "format": "duration"
    },
    "payoff": {
      "label": "Debt-free in",
      "description": "The month of the last payment, when today’s date is given.",
      "format": "month-year"
    },
    "interest": {
      "label": "Total interest",
      "description": "All the interest paid on all cards until they are paid off.",
      "format": "money"
    },
    "paid": {
      "label": "Total payments",
      "description": "The balances plus all the interest.",
      "format": "money"
    },
    "monthly": {
      "label": "Paid each month",
      "description": "All the minimum payments plus the extra. It stays the same until the last month.",
      "format": "money"
    },
    "baseInterest": {
      "label": "Interest with minimums only",
      "description": "The total interest when you pay only the minimums (still rolled into the next card).",
      "format": "money"
    },
    "saved": {
      "label": "Interest you save",
      "description": "The interest the extra monthly payment saves, compared with paying only the minimums.",
      "format": "money"
    },
    "sooner": {
      "label": "Months saved",
      "description": "How many months sooner the cards are paid off with the extra payment.",
      "format": "integer"
    },
    "months1": {
      "label": "Months to pay off card 1",
      "description": "The number of monthly payments until card 1 is paid off.",
      "format": "integer"
    },
    "months2": {
      "label": "Months to pay off card 2",
      "description": "The number of monthly payments until card 2 is paid off.",
      "format": "integer"
    },
    "months3": {
      "label": "Months to pay off card 3",
      "description": "The number of monthly payments until card 3 is paid off.",
      "format": "integer"
    },
    "months4": {
      "label": "Months to pay off card 4",
      "description": "The number of monthly payments until card 4 is paid off.",
      "format": "integer"
    },
    "months5": {
      "label": "Months to pay off card 5",
      "description": "The number of monthly payments until card 5 is paid off.",
      "format": "integer"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "name1": "Credit Card 1",
      "balance1": 5000,
      "apr1": 18.99,
      "minPayment1": 150,
      "extra": 100,
      "start": "2026-10-05"
    },
    "outputs": {
      "months": 25,
      "time": {
        "years": 2,
        "months": 1
      },
      "payoff": "2028-11-05",
      "interest": 1059.3063950051248,
      "paid": 6059.306395005125,
      "monthly": 250,
      "baseInterest": 2162.6298550897613,
      "saved": 1103.3234600846365,
      "sooner": 23,
      "months1": 25
    },
    "text": "Paying $250.00 a month clears every card in 25 months, with $1,059.31 of interest in total."
  },
  "examples": [
    {
      "given": {
        "name1": "A",
        "balance1": 3000,
        "apr1": 24.99,
        "minPayment1": 90,
        "name2": "B",
        "balance2": 1500,
        "apr2": 15.99,
        "minPayment2": 45,
        "extra": 100
      },
      "expect": {
        "months": 24,
        "months1": 20,
        "months2": 24,
        "interest": 1031.8802977660926,
        "saved": 1583.39172723594
      },
      "source": "hand calculation in content.mdx, checked month by month in Python (docs/progress/WP-21/python/credit_card.py); Consumer Financial Protection Bureau, How to reduce your debt (the highest interest rate method and the snowball method). https://www.consumerfinance.gov/about-us/blog/how-reduce-your-debt/"
    },
    {
      "given": {
        "balance1": 5000,
        "apr1": 18.99,
        "minPayment1": 150,
        "extra": 100,
        "start": "2026-10-01"
      },
      "expect": {
        "months": 25,
        "interest": 1059.306395005126,
        "paid": 6059.3063950051255,
        "saved": 1103.3234600846408,
        "sooner": 23,
        "payoff": "2028-11-01"
      },
      "source": "hand calculation in content.mdx, checked month by month in Python (docs/progress/WP-21/python/credit_card.py); Consumer Financial Protection Bureau, How to reduce your debt (the highest interest rate method and the snowball method). https://www.consumerfinance.gov/about-us/blog/how-reduce-your-debt/"
    },
    {
      "given": {
        "balance1": 5000,
        "apr1": 0,
        "minPayment1": 100,
        "extra": 0
      },
      "expect": {
        "months": 50,
        "interest": 0,
        "paid": 5000
      },
      "source": "hand calculation in content.mdx: at 0% APR, 5,000 ÷ 100 = 50 months; Consumer Financial Protection Bureau, How to reduce your debt (the highest interest rate method and the snowball method). https://www.consumerfinance.gov/about-us/blog/how-reduce-your-debt/"
    }
  ],
  "sources": [
    "Consumer Financial Protection Bureau, What is a credit card interest rate? What does APR mean? https://www.consumerfinance.gov/ask-cfpb/what-is-a-credit-card-interest-rate-what-does-apr-mean-en-44/",
    "Consumer Financial Protection Bureau, How to reduce your debt (the highest interest rate method and the snowball method). https://www.consumerfinance.gov/about-us/blog/how-reduce-your-debt/",
    "Consumer Financial Protection Bureau, What is a balance transfer fee? https://www.consumerfinance.gov/ask-cfpb/what-is-a-balance-transfer-fee-en-42/"
  ],
  "related": [
    "car-loan-payoff",
    "compound-interest"
  ],
  "changelog": [
    {
      "date": "2026-09-29",
      "note": "The month counts say months in their labels, so the headline has a unit (user test 2026-09-29)."
    },
    {
      "date": "2026-09-29",
      "note": "Worked examples name a published reference for their rule."
    }
  ]
}
