{
  "slug": "saas-cash-runway-growth",
  "title": "Cash Runway with Growth Calculator",
  "heading": "SaaS Cash Runway with Revenue Growth Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/saas-cash-runway-growth",
  "summary": "Project runway accounting for growing revenue offsetting burn over time.",
  "description": "A static runway calculation (cash divided by current monthly burn) understates real runway for a growing SaaS company because it assumes burn stays flat forever, when in reality revenue growth typically shrinks net burn month over month as the top line scales faster than costs. This calculator models month-by-month burn that declines as revenue grows at your assumed rate, giving a more realistic (and usually longer) runway estimate than the naive divide-by-current-burn approach most spreadsheets default to. That said, don't over-trust this model either — it assumes costs stay disciplined while revenue compounds smoothly, and real companies hit step-function cost increases (new hires, new infrastructure tiers, office leases) that a smooth growth-rate model won't capture. Use this as a best-case planning scenario alongside a flat-burn worst-case scenario, and raise money before you're inside 6 months of runway under the worst case, since fundraising itself takes 3-6 months and you don't want to be negotiating from a position of desperation.",
  "formula": "Each month: Net Burn = Fixed Costs − Revenue; Revenue grows monthly; Runway = months until Cash reaches zero",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=saas-cash-runway-growth",
  "inputs": [
    {
      "id": "cash",
      "label": "Cash on hand",
      "kind": "number",
      "hint": null,
      "default": 3000000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "monthlyRevenue",
      "label": "Current monthly revenue",
      "kind": "number",
      "hint": null,
      "default": 180000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "monthlyCosts",
      "label": "Current total monthly costs",
      "kind": "number",
      "hint": null,
      "default": 420000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "revenueGrowthRate",
      "label": "Monthly revenue growth rate",
      "kind": "number",
      "hint": null,
      "default": 5,
      "unit": "%",
      "min": -20,
      "max": 50
    },
    {
      "id": "costGrowthRate",
      "label": "Monthly cost growth rate",
      "kind": "number",
      "hint": null,
      "default": 1.5,
      "unit": "%",
      "min": -10,
      "max": 30
    }
  ],
  "outputs": [
    {
      "id": "growthAdjustedRunway",
      "label": "Growth-adjusted runway (months)",
      "format": "duration",
      "hint": null,
      "primary": true
    },
    {
      "id": "staticRunway",
      "label": "Static (flat-burn) runway (months)",
      "format": "duration",
      "hint": null,
      "primary": false
    },
    {
      "id": "cashflowPositiveMonth",
      "label": "Month you reach cash-flow positive",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "runwayDelta",
      "label": "Extra runway from growth vs static estimate",
      "format": "decimal",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Cash on hand: 3000000 $",
      "Current monthly revenue: 180000 $",
      "Current total monthly costs: 420000 $",
      "Monthly revenue growth rate: 5 %",
      "Monthly cost growth rate: 1.5 %"
    ],
    "outputs": [
      "Growth-adjusted runway (months): 15",
      "Static (flat-burn) runway (months): 12.5",
      "Month you reach cash-flow positive: 0",
      "Extra runway from growth vs static estimate: 2.5"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter cash on hand ($).",
      "Enter current monthly revenue ($).",
      "Enter current total monthly costs ($).",
      "Enter monthly revenue growth rate (%).",
      "Enter monthly cost growth rate (%).",
      "Read your growth-adjusted runway (months) on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "cash": 1800000,
        "monthlyRevenue": 110000,
        "monthlyCosts": 250000,
        "revenueGrowthRate": 3,
        "costGrowthRate": 0.8999999999999999
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "cash": 3000000,
        "monthlyRevenue": 180000,
        "monthlyCosts": 420000,
        "revenueGrowthRate": 5,
        "costGrowthRate": 1.5
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "cash": 4800000,
        "monthlyRevenue": 290000,
        "monthlyCosts": 670000,
        "revenueGrowthRate": 8,
        "costGrowthRate": 2.4000000000000004
      }
    }
  ],
  "limitations": [
    "Results are estimates before tax, fees, and inflation unless an input explicitly covers them.",
    "Rates are treated as fixed for the whole period — variable-rate products will drift from this projection.",
    "This is educational maths, not financial advice. Check anything contractual with the lender or your accountant."
  ],
  "faq": [
    {
      "q": "Why is growth-adjusted runway usually longer than static runway?",
      "a": "Because static runway assumes today's burn rate continues unchanged forever, while in reality growing revenue closes the gap between costs and revenue every month, reducing net burn over time — sometimes to zero, at which point you stop burning cash entirely and runway becomes effectively infinite."
    },
    {
      "q": "What growth rate assumption should I use?",
      "a": "Use your trailing 3-6 month average monthly growth rate, not your best month or an aspirational target. Overly optimistic growth assumptions in a runway model are dangerous precisely because they tell you that you have more time than you actually do."
    },
    {
      "q": "Should I model a downside scenario too?",
      "a": "Yes, always run this alongside a flat or even declining revenue growth scenario. Boards and investors specifically want to see a downside case, and it protects you from discovering too late that your 'runway' assumed growth that didn't materialize."
    },
    {
      "q": "When should I start fundraising relative to runway?",
      "a": "Start the process with 9-12 months of runway remaining under your conservative case, since raising typically takes 3-6 months end to end and you want negotiating leverage, not a cash-out-in-two-months story that forces you into a bad deal."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/burn-multiple",
    "https://www.revenuelab.fyi/toolbox/rule-of-40",
    "https://www.revenuelab.fyi/toolbox/sales-magic-number"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Cash Runway with Growth Calculator (https://www.revenuelab.fyi/toolbox/saas-cash-runway-growth)"
}