Catalog/loan-snowball-vs-avalanche

Calculators

Snowball vs avalanche payoff calculator API

Simulates debt payoff month-by-month under the snowball (smallest-balance-first) and avalanche (highest-rate-first) strategies with a shared budget and recommends the cheaper one. Answers 'Should I use the snowball or avalanche method?','Which payoff order saves the most interest?'.

Price$0.01per request
MethodPOST
Route/v1/calc/loan-snowball-vs-avalanche
StatusLive
MIME typeapplication/json
Rate limit120/minute
CacheNo cache
loandebtsnowballavalanchepayoffstrategycalculator
API URLhttps://x402.hexl.dev/v1/calc/loan-snowball-vs-avalanche
Integration docs
Example request
{
  "debts": [
    {
      "name": "card-a",
      "balance": 3000,
      "annualRatePct": 24,
      "minPayment": 90
    },
    {
      "name": "card-b",
      "balance": 8000,
      "annualRatePct": 15,
      "minPayment": 200
    }
  ],
  "monthlyBudget": 600
}
Example response
{
  "snowball": {
    "months": 22,
    "totalInterest": 1705.19,
    "payoffOrder": [
      "card-a",
      "card-b"
    ]
  },
  "avalanche": {
    "months": 22,
    "totalInterest": 1705.19,
    "payoffOrder": [
      "card-a",
      "card-b"
    ]
  },
  "interestSavedByAvalanche": 0,
  "recommended": "avalanche",
  "rationale": "Avalanche (highest-rate first) minimizes total interest paid.",
  "breakdown": {
    "numDebts": 2,
    "monthlyBudget": 600,
    "sumOfMinimums": 290
  }
}
Input schema
{
  "type": "object",
  "required": [
    "debts",
    "monthlyBudget"
  ],
  "properties": {
    "debts": {
      "type": "array",
      "description": "Debts with balance, rate, and minimum payment.",
      "items": {
        "type": "object",
        "required": [
          "balance",
          "annualRatePct",
          "minPayment"
        ],
        "properties": {
          "name": {
            "type": "string",
            "examples": [
              "card-a"
            ]
          },
          "balance": {
            "type": "number",
            "examples": [
              3000
            ]
          },
          "annualRatePct": {
            "type": "number",
            "examples": [
              24
            ]
          },
          "minPayment": {
            "type": "number",
            "examples": [
              90
            ]
          }
        }
      },
      "examples": [
        [
          {
            "name": "card-a",
            "balance": 3000,
            "annualRatePct": 24,
            "minPayment": 90
          },
          {
            "name": "card-b",
            "balance": 8000,
            "annualRatePct": 15,
            "minPayment": 200
          }
        ]
      ]
    },
    "monthlyBudget": {
      "type": "number",
      "description": "Total monthly amount available across all debts.",
      "examples": [
        600
      ]
    }
  }
}
Output schema
{
  "type": "object",
  "additionalProperties": true
}