Free calculators
Cash runway calculator: how long will money last? documentation
Inputs, formulas, assumptions and API/MCP examples for the cash runway calculator: how long will money last?. Reproduce a calculation and cite its sources.
Content updated . Assumptions reviewed .
Formula and assumptions
Burn = max(expenses × expense factor + obligations ÷ 12 − income × income factor, 0). Runway = min(savings ÷ burn, 999).
- Current keeps income and spending unchanged. Trim Spending reduces spending by 10%; Raise Income increases income by 15%; Stress reduces income by 15% and raises spending by 10%.
- Separate obligations are spread over 12 months and are never multiplied. Do not include the same amount in recurring expenses.
- Runway follows the app: two-decimal half-up rounding and a 999-month cap. Zero burn is shown as 999, with no depletion under the stated assumptions.
- Drawdown uses independent monthly income and expense shocks; it includes no investment returns. A simulated probability depends on the assumptions and is not a prediction.
- Drawdown and sabbatical funding spread entered due obligations over the first 12 months only. Later months exclude that finite obligation bucket.
- Dashboard states follow displayed runway: Secured at 12 months or more, Building at 6 to under 12, On watch at 3 to under 6, Critical below 3. Drawdown applies these labels to its horizon-capped simulated median duration.
Assumptions reviewed:
Sources
- KlarFort shared business rules and RunwayMath. KlarFort terms; free to use with credit; vintage Shared rules 1, simulation 2.
Parameters
| Name | Description | Type | Default | Minimum | Maximum |
|---|---|---|---|---|---|
| currency | All entered amounts use this currency. No automatic currency conversion. | string | "USD" | ||
| mode | Mode | string | "scenarios" | ||
| scenario | Scenario | string | "current" | ||
| liquidAssets | Liquid savings | number | 12000 | 0 | 1,000,000,000,000 |
| monthlyIncome | Recurring monthly income | number | 2000 | 0 | 1,000,000,000,000 |
| monthlyExpenses | Recurring monthly expenses | number | 3000 | 0 | 1,000,000,000,000 |
| obligationsDue12Months | Separate obligations due over 12 months | number | 0 | 0 | 1,000,000,000,000 |
| leaveMonths | Sabbatical length in months | integer | 6 | 1 | 120 |
| incomeDuringLeave | Monthly income during leave | number | 0 | 0 | 1,000,000,000,000 |
| horizonMonths | Simulation horizon in months | integer | 120 | 1 | 600 |
| variancePercent | Monthly income and expense variation (%) | number | 10 | 0 | 100 |
| paths | Simulation paths | integer | 1000 | 100 | 1,000 |
| seed | Simulation seed | string | "" |
JSON API
GET accepts one input parameter containing URL-encoded JSON. POST sends the JSON input object. Prefer POST for personal figures. Inputs are limited to 16 KiB. POST results are not stored; GET results may be cached for up to 24 hours.
curl -X POST https://klarfort.com/tools/api/v1/runway-calculator -H "Content-Type: application/json" --data '{"currency":"USD","mode":"scenarios","scenario":"current","liquidAssets":12000,"monthlyIncome":2000,"monthlyExpenses":3000,"obligationsDue12Months":0,"leaveMonths":6,"incomeDuringLeave":0,"horizonMonths":120,"variancePercent":10,"paths":1000,"seed":"6d43b8fa7170a06d"}'fetch("https://klarfort.com/tools/api/v1/runway-calculator", {method:"POST", headers:{"Content-Type":"application/json"}, body:JSON.stringify({"currency":"USD","mode":"scenarios","scenario":"current","liquidAssets":12000,"monthlyIncome":2000,"monthlyExpenses":3000,"obligationsDue12Months":0,"leaveMonths":6,"incomeDuringLeave":0,"horizonMonths":120,"variancePercent":10,"paths":1000,"seed":"6d43b8fa7170a06d"})})import json, urllib.request
request = urllib.request.Request("https://klarfort.com/tools/api/v1/runway-calculator", data=json.dumps({"currency":"USD","mode":"scenarios","scenario":"current","liquidAssets":12000,"monthlyIncome":2000,"monthlyExpenses":3000,"obligationsDue12Months":0,"leaveMonths":6,"incomeDuringLeave":0,"horizonMonths":120,"variancePercent":10,"paths":1000,"seed":"6d43b8fa7170a06d"}).encode(), headers={"Content-Type":"application/json"})
print(urllib.request.urlopen(request).read().decode())Connected assistants
Connect using https://klarfort.com/tools/mcp. Discover this calculator with tools/list, then call runway-calculator. Protocol versions 2026-07-28 and 2025-11-25 are supported. Modern requests carry protocol metadata and matching HTTP headers. Set Mcp-Name to params.name for tools/call and to params.uri for resources/read. Older clients initialize first.
Limits: 120 requests per minute per address and approximately 3,000 per minute per edge location. Simulations are capped at 1,000 paths, 600 months and 150,000 path-months (paths multiplied by months). Shorten the duration or reduce paths when that work limit is exceeded. A limit response returns 429 and Retry-After. No exact remaining-request count is available.
Usage and credit
Free for personal, commercial and any other lawful use with credit to KlarFort at https://klarfort.com/. Third-party data terms still apply.
Place a visible credit near the reused material or in the credits for your work or integration. One clear credit per work or integration is sufficient; no separate credit per API request is required. Links to individual calculators are optional.
Computed with KlarFort Calculators, https://klarfort.com/
The API returns this text in credit and the homepage in credit_url. The optional citation_url identifies the calculator for reference. See usage and credit for the full permission.
KlarFort is not financial, investment, tax, or legal advice. Verify outputs before making material decisions.