🛫

Startup Runway Calculator

Model your cash, burn, revenue growth, and next round. Know exactly when the tank hits empty — and when to start fundraising.

Startup inputs

Leave 0 to ignore.

Negative = cost cutting.

When the round lands, if planned.

Net monthly burn

Projected runway

Zero-cash date

After planned raise

Start fundraising by

Monthly cash forecast

Safe 3-month warning Critical
Month Burn Revenue Net burn Cash end Status
Click "Update runway" to generate forecast.

How this calculator works

  • Net burn = monthly burn minus monthly revenue.
  • Growth rates compound month over month for burn and revenue.
  • Runway is how many months until cash hits zero, capped at 120 months.
  • Fundraising adds the target amount to cash when the round closes.
  • Start fundraising by is 6 months before zero-cash date.

What to do next

  • • Pair with the AI Startup Cost Calculator to build a detailed burn model.
  • • Use the LLM Cost Calculator to sanity-check your AI API spend.
  • • Update assumptions monthly; even small revenue growth changes the zero-cash date.
  • • Start investor conversations 6 months before you need the check.

🤖 Use this tool in your agent

✓ Agent-ready code

Copy the snippet below into your agent, newsletter, or script. The tool page at hermesdispatch.dev/tools/startup-runway-calculator/ is the canonical contract: inputs, outputs, and formulas.

python
# Hermes Dispatch Tool — Startup Runway Calculator
# Source: https://hermesdispatch.dev/tools/startup-runway-calculator/
# Description: Estimate how many months a startup can operate before running out of cash.
# License: MIT (generated by hermesdispatch.dev)
#
# INSTALL:
#   1. Save this file as ~/.hermes/hermes-agent/tools/startup_runway_calculator.py
#   2. Restart Hermes or run /reset in a session
#   3. The tool auto-registers if Hermes uses auto-discovery of tools/*.py
#
# MANUAL REGISTRY (if auto-discovery is off):
#   from tools.startup_runway_calculator import register
#   register()

import json

DATA = {}

def _ok(result):
    return json.dumps({"success": True, "data": result}, indent=2)

def _err(message):
    return json.dumps({"success": False, "error": message}, indent=2)


TOOL_NAME = "startup_runway_calculator"
TOOLSET = "investing"

SCHEMA = {
  "type": "function",
  "function": {
    "name": "startup_runway_calculator",
    "description": "Estimate how many months a startup can operate before running out of cash.",
    "parameters": {
      "type": "object",
      "properties": {
        "cash": {
          "type": "number",
          "description": "Current cash in the bank in USD."
        },
        "monthly_burn": {
          "type": "number",
          "description": "Monthly burn rate in USD."
        },
        "monthly_revenue": {
          "type": "number",
          "description": "Monthly recurring revenue in USD."
        }
      },
      "required": [
        "cash",
        "monthly_burn"
      ]
    }
  }
}

def _run(args):
    cash = float(args.get("cash", 0))
    burn = float(args.get("monthly_burn", 0))
    revenue = float(args.get("monthly_revenue", 0))
    net_burn = burn - revenue
    if net_burn <= 0:
        return _ok({"runway_months": "infinite", "net_burn": round(net_burn, 2), "note": "Revenue covers burn or better."})
    months = cash / net_burn
    return _ok({
        "runway_months": round(months, 1),
        "net_burn_monthly": round(net_burn, 2),
        "cash_out_date": "Calculate from today + runway_months"
    })

def HANDLER(args):
    try:
        return _run(args)
    except Exception as e:
        return _err(str(e))


def register():
    """Manual registry hook. Import and call this to register with Hermes."""
    try:
        from tools.registry import registry
        registry.register(
            name=TOOL_NAME,
            toolset=TOOLSET,
            schema=SCHEMA,
            handler=HANDLER,
        )
    except ImportError:
        print("Hermes registry not found; skipping manual registration.")

if __name__ == "__main__":
    # CLI smoke test
    print(HANDLER({}))

Want early access to the next locked tool? Subscribe to The Hermes Dispatch.

🚀 Get AI automation insights daily

15:00 MST. One-click unsubscribe.

Subscribe