Financial ModelingBeginner14 min read

Forecast Cash Runway in Excel or Google Sheets

Build a monthly cash runway forecast with scenario controls, error checks, and a cash-balance chart in Excel or Google Sheets.

A cash runway forecast rolls opening cash through each month’s expected cash receipts and payments. It then identifies the first month with a negative ending balance. This guide explains how to build an Excel or Google Sheets model with recurring costs, planned hiring, a one-time expense, three scenarios, and a cash-balance chart.

The example covers January through June 2026 in USD. Its values are illustrative, not actual company data. Replace them with verified inputs before using the forecast for cash planning.

In this guide, runway means the number of complete forecast months before ending cash first falls below zero. The model identifies a month, not the exact date cash is depleted.

What You'll Need

  • Microsoft Excel with LET, FILTER, and MINIFS support, or Google Sheets
  • A workbook with blank sheets named Inputs and Runway
  • Verified starting cash and monthly cash-flow assumptions
  • Dates entered as first-of-month spreadsheet dates without time values
  • Comma formula separators; replace commas with semicolons if required by your locale

Step-by-Step Guide

1

Define the runway calculation

Use cash that’s available to fund operations. Confirm the amount against your latest bank reconciliation, and exclude restricted funds that can’t pay ordinary expenses.

The model uses these definitions:

  • Starting cash: Available cash at the beginning of the first month
  • Cash receipts: Cash expected to arrive during the month, regardless of when revenue was recognized
  • Outflows: Recurring costs, planned hiring, and a one-time expense
  • Net cash flow: Cash receipts minus total outflows
  • Monthly burn: The greater of zero or negative net cash flow
  • Ending cash: Starting cash plus net cash flow
  • Runway: Complete forecast months before the first negative ending balance

The model reports an ending balance of exactly zero separately from a negative balance.

    2

    Build the Inputs sheet

    Start by entering this control table in Inputs!A1:B8:

    CellEntry
    A1Input
    B1Value
    A2Starting cash
    B2120000
    A3Forecast start
    B32026-01-01
    A4Forecast months
    B46
    A5Selected scenario
    B5Base
    A6Hire start
    B62026-04-01
    A7One-time expense
    B715000
    A8One-time expense month
    B82026-02-01

    Format B2 and B7 as USD, B3, B6, and B8 as dates, and B4 as an integer.

    Next, enter the scenario table in Inputs!D1:G4:

    ScenarioMonthly cash receiptsRecurring costsNew-hire monthly cost
    Base300005000010000
    Optimistic36000480008000
    Conservative240005500012000

    Inputs!B2 is a point-in-time balance, while Inputs!B7 is a single expense. Values in Inputs!E2:G4 are nonnegative monthly cash flows.

    Apply these data-validation rules:

    • B2, B7, and E2:G4: number greater than or equal to zero
    • B3, B6, and B8: valid first-of-month dates without time values
    • B4: whole number between 1 and 60
    • B5: list containing Base, Optimistic, and Conservative

    For custom date validation, use this formula for B3:

    =AND(ISNUMBER(B3),B3=INT(B3),DAY(B3)=1)
    

    Change the reference to B6 or B8 for the other date cells. The cell=INT(cell) check rejects values containing a time, such as 2026-04-01 12:00.

    Validation may not stop invalid pasted or imported values. For that reason, the schedule formulas return #N/A or Check inputs when required inputs are malformed.

      3

      Create a horizon-driven monthly schedule

      Add these headers to Runway!A1:K1:

      CellHeader
      A1Month
      B1Starting Cash
      C1Cash Receipts
      D1Recurring Costs
      E1Planned Hiring
      F1One-Time Expense
      G1Total Outflows
      H1Net Cash Flow
      I1Ending Cash
      J1Status
      K1Monthly Burn

      In A2, enter the following formula and fill it through A61:

      =LET(d,Inputs!$B$3,h,Inputs!$B$4,p,ROW()-1,hOK,IFERROR(AND(ISNUMBER(h),h=INT(h),h>=1,h<=60),FALSE),dOK,IFERROR(AND(ISNUMBER(d),d=INT(d),DAY(d)=1),FALSE),IF(NOT(hOK),IF(p=1,NA(),""),IF(p>h,"",IF(dOK,EDATE(d,p-1),NA()))))
      

      Inputs!B4 controls how many rows become active. With the sample six-month horizon, A2:A7 should contain:

      2026-01-01
      2026-02-01
      2026-03-01
      2026-04-01
      2026-05-01
      2026-06-01
      

      Cells A8:A61 appear empty, but they aren’t blank. Each contains a formula returning "". This distinction matters when you build the chart in Step 8.

      Now enter this formula in B2 and fill it through B61:

      =IF(IFERROR(A2="",FALSE),"",IF(ROW()=2,IF(AND(ISNUMBER(Inputs!$B$2),Inputs!$B$2>=0),Inputs!$B$2,NA()),IF(ISNUMBER(I1),I1,NA())))
      

      The first row reads starting cash from Inputs!B2. Each later active row uses the preceding month’s ending cash.

      Under the Base scenario, the six active starting balances should be:

      120000, 100000, 65000, 45000, 15000, -15000
      

      Zero starting cash is valid. A blank, text, or negative opening cash value returns #N/A.

        4

        Add monthly cash receipts and recurring costs

        In C2, enter this cash-receipts formula and fill it through C61:

        =IF(IFERROR(A2="",FALSE),"",LET(n,COUNTIF(Inputs!$D$2:$D$4,Inputs!$B$5),IF(n<>1,NA(),LET(matchRow,MATCH(Inputs!$B$5,Inputs!$D$2:$D$4,0),sourceValue,INDEX(Inputs!$E$2:$E$4,matchRow),sourceBlank,ISBLANK(INDEX(Inputs!$E$2:$E$4,matchRow)),IF(IFERROR(AND(ISNUMBER(A2),NOT(sourceBlank),ISNUMBER(sourceValue),sourceValue>=0),FALSE),sourceValue,NA())))))
        

        The Base scenario returns 30000 in each active month.

        Then enter this recurring-cost formula in D2 and fill it through D61:

        =IF(IFERROR(A2="",FALSE),"",LET(n,COUNTIF(Inputs!$D$2:$D$4,Inputs!$B$5),IF(n<>1,NA(),LET(matchRow,MATCH(Inputs!$B$5,Inputs!$D$2:$D$4,0),sourceValue,INDEX(Inputs!$F$2:$F$4,matchRow),sourceBlank,ISBLANK(INDEX(Inputs!$F$2:$F$4,matchRow)),IF(IFERROR(AND(ISNUMBER(A2),NOT(sourceBlank),ISNUMBER(sourceValue),sourceValue>=0),FALSE),sourceValue,NA())))))
        

        The Base scenario returns 50000 in each active month.

        Both formulas require exactly one matching scenario. A missing or duplicated scenario, blank assumption, text amount, or negative amount returns #N/A. Numeric zero remains valid, and scenario matching is case-insensitive.

          5

          Add planned hiring and the one-time expense

          Add this formula to E2, then fill it through E61:

          =IF(IFERROR(A2="",FALSE),"",LET(n,COUNTIF(Inputs!$D$2:$D$4,Inputs!$B$5),d,Inputs!$B$6,dateOK,IFERROR(AND(ISNUMBER(d),d=INT(d),DAY(d)=1),FALSE),IF(n<>1,NA(),LET(matchRow,MATCH(Inputs!$B$5,Inputs!$D$2:$D$4,0),sourceValue,INDEX(Inputs!$G$2:$G$4,matchRow),sourceBlank,ISBLANK(INDEX(Inputs!$G$2:$G$4,matchRow)),IF(IFERROR(AND(ISNUMBER(A2),dateOK,NOT(sourceBlank),ISNUMBER(sourceValue),sourceValue>=0),FALSE),IF(A2>=d,sourceValue,0),NA())))))
          

          With a hire start of 2026-04-01, Base planned-hiring costs should be:

          0, 0, 0, 10000, 10000, 10000
          

          The cost starts in April. A blank, text, mid-month, or time-bearing hire date returns #N/A.

          For the one-time expense, enter this formula in F2 and fill it through F61:

          =IF(IFERROR(A2="",FALSE),"",LET(d,Inputs!$B$8,dateOK,IFERROR(AND(ISNUMBER(d),d=INT(d),DAY(d)=1),FALSE),IF(IFERROR(AND(ISNUMBER(A2),ISNUMBER(Inputs!$B$7),Inputs!$B$7>=0,dateOK),FALSE),IF(A2=d,Inputs!$B$7,0),NA())))
          

          The six active results should be:

          0, 15000, 0, 0, 0, 0
          

          A valid first-of-month date outside the active horizon produces zeros. A blank, text, mid-month, or time-bearing date produces #N/A. A blank, text, or negative expense amount does the same.

            6

            Calculate burn and ending cash

            Enter the following formulas in row 2, then fill them through row 61.

            In G2, calculate total outflows:

            =IF(IFERROR(A2="",FALSE),"",IF(COUNT(D2:F2)=3,SUM(D2:F2),NA()))
            

            In H2, calculate net cash flow:

            =IF(IFERROR(A2="",FALSE),"",IF(AND(ISNUMBER(C2),ISNUMBER(G2)),C2-G2,NA()))
            

            In I2, calculate ending cash:

            =IF(IFERROR(A2="",FALSE),"",IF(AND(ISNUMBER(B2),ISNUMBER(H2)),B2+H2,NA()))
            

            In J2, classify the ending balance:

            =IF(IFERROR(A2="",FALSE),"",IF(ISNUMBER(I2),IF(I2<0,"Cash negative",IF(I2=0,"Zero cash","Positive")),"Check inputs"))
            

            In K2, calculate monthly net burn:

            =IF(IFERROR(A2="",FALSE),"",IF(ISNUMBER(H2),MAX(0,-H2),NA()))
            

            For Base January:

            Ending cash = 120000 + 30000 - 50000 - 0 - 0 = 100000
            

            Expected January results:

            • Total outflows: 50000
            • Net cash flow: -20000
            • Ending cash: 100000
            • Status: Positive
            • Monthly burn: 20000

            For February:

            Ending cash = 100000 + 30000 - 50000 - 0 - 15000 = 65000
            

            Together, these calculations check an ordinary month and a month containing the one-time expense.

              7

              Find the first cash-negative month

              Create this summary in Runway!M1:N3:

              CellEntry
              M1Summary
              N1Value
              M2First negative month
              M3Full months before negative

              In N2, enter this horizon-driven formula:

              =LET(h,Inputs!$B$4,hOK,IFERROR(AND(ISNUMBER(h),h=INT(h),h>=1,h<=60),FALSE),IF(NOT(hOK),"Check inputs",IFERROR(LET(cash,I2:INDEX(I:I,h+1),months,A2:INDEX(A:A,h+1),IF(COUNT(cash)<>h,"Check inputs",IF(COUNTIF(cash,"<0")=0,"Beyond forecast",MINIFS(months,cash,"<0")))),"Check inputs")))
              

              In N3, enter:

              =IFERROR(IF(N2="Beyond forecast","At least "&Inputs!$B$4,IF(AND(ISNUMBER(N2),ISNUMBER(Inputs!$B$3)),DATEDIF(Inputs!$B$3,N2,"M"),"Check inputs")),"Check inputs")
              

              These formulas derive their ranges and wording from Inputs!B4; they don’t contain a fixed six-month count.

              The Base ending-cash series should be:

              100000, 65000, 45000, 15000, -15000, -45000
              

              Expected summary:

              First negative month: 2026-05-01
              Full months before negative: 4
              

              Cash remains nonnegative through April, then becomes negative during May. This result doesn’t identify the exact depletion date.

              As a control, Base cash receipts total 180000, total outflows equal 345000, and June ending cash reconciles to:

              120000 + 180000 - 345000 = -45000
              
                8

                Create a filtered chart range

                Don’t chart A2:A61 and I2:I61 directly. Inactive cells in those ranges contain formulas returning "", which Excel can plot as trailing zeros.

                Instead, create a helper range containing only active months. Add these headers:

                CellEntry
                P1Month
                Q1Ending Cash

                Before entering the formulas below, leave P3:Q61 empty. Each formula spills its results down automatically.

                In P2, enter:

                =FILTER(A2:A61,ISNUMBER(A2:A61))
                

                In Q2, enter:

                =FILTER(I2:I61,ISNUMBER(A2:A61))
                

                With the six-month Base forecast, P2:Q7 should contain:

                MonthEnding Cash
                2026-01-01100000
                2026-02-0165000
                2026-03-0145000
                2026-04-0115000
                2026-05-01-15000
                2026-06-01-45000

                Cells below the spilled results are genuinely empty, rather than formulas returning empty text.

                Create a line chart from Runway!P1:Q61:

                • Horizontal axis: Month
                • Series: Ending Cash
                • Chart title: Projected Ending Cash
                • Vertical-axis label: USD

                In Excel, set empty cells to display as gaps through Select Data > Hidden and Empty Cells > Gaps. Because the filtered helper leaves unused cells empty, the chart won’t add trailing zero points when the horizon is shorter than 60 months.

                The line should cross below zero in May, matching Runway!N2. If the chart and summary disagree, inspect the formulas in P2:Q2, confirm that P3:Q61 doesn’t contain other values or formulas, and verify that the chart uses columns P:Q.

                For an actual-versus-forecast view of burn, see the startup burn rate dashboard guide.

                  9

                  Compare the three scenarios

                  To compare scenarios, change only Inputs!B5. The active forecast and filtered chart range should recalculate from the corresponding scenario row.

                  Base

                  Expected ending cash:

                  100000, 65000, 45000, 15000, -15000, -45000
                  

                  Expected summary:

                  First negative month: 2026-05-01
                  Full months before negative: 4
                  

                  Optimistic

                  Set Inputs!B5 to Optimistic.

                  Expected ending cash:

                  108000, 81000, 69000, 49000, 29000, 9000
                  

                  Expected summary:

                  First negative month: Beyond forecast
                  Full months before negative: At least 6
                  

                  A positive June balance supports only “at least six months.” It doesn’t prove a longer runway unless you increase Inputs!B4 and provide assumptions for the added months.

                  Conservative

                  Set Inputs!B5 to Conservative.

                  Expected ending cash:

                  89000, 43000, 12000, -31000, -74000, -117000
                  

                  Expected summary:

                  First negative month: 2026-04-01
                  Full months before negative: 3
                  

                  These scenarios change cash receipts, recurring costs, and new-hire costs together. They’re planning assumptions, not probability-weighted predictions.

                    10

                    Check boundaries and formula failures

                    Run these checks in a copy of the workbook. If you use both applications, repeat them in Excel and Google Sheets. The results shown are expected from the formulas, not claims that the tests were executed.

                    CheckChangeExpected result
                    Base arithmeticUse the original inputsJanuary ending cash is 100000; February is 65000
                    Base timelineKeep Inputs!B5 as BaseEnding cash is 100000, 65000, 45000, 15000, -15000, -45000; N2 is 2026-05-01; N3 is 4
                    Optimistic scenarioSet B5 to OptimisticEnding cash is 108000, 81000, 69000, 49000, 29000, 9000; summary says Beyond forecast and At least 6
                    Conservative scenarioSet B5 to ConservativeEnding cash is 89000, 43000, 12000, -31000, -74000, -117000; N2 is 2026-04-01; N3 is 3
                    Horizon controlChange Inputs!B4 to a valid integer from 1 through 60The active schedule, summary ranges, runway wording, filtered helper range, and plotted periods change with the horizon
                    Chart boundaryKeep the six-month horizon and chart P1:Q61Only the six active Base balances are plotted; no trailing zero points appear
                    Zero starting cashSet Inputs!B2 to 0 under BaseJanuary ending cash is -20000; status is Cash negative; N2 is 2026-01-01; N3 is 0
                    Exact-zero ending cashSet Inputs!B2 to 20000; keep the expense in FebruaryJanuary ending cash is 0; status is Zero cash
                    Blank starting cashClear Inputs!B2Affected formulas return #N/A; status and summary say Check inputs
                    Blank scenario assumptionClear Base cash receipts in E2, then repeat with F2 or G2The corresponding scenario formula returns #N/A; blank isn’t treated as zero
                    Malformed amountReplace Base cash receipts with 30000 USDAffected formulas return #N/A; status and summary say Check inputs
                    Negative amountEnter a negative starting balance, expense, or scenario assumptionThe related formula returns #N/A
                    Unknown scenarioPaste Downside into Inputs!B5Columns C:E return #N/A; the summary says Check inputs
                    Duplicate scenarioReplace another label in D2:D4 with BaseScenario formulas reject the duplicate and return #N/A
                    Hiring boundaryKeep hire start at 2026-04-01Planned hiring is 0 in March and 10000 in April
                    Expense boundaryKeep expense month at 2026-02-01The expense appears only in February
                    Mid-month dateEnter 2026-04-15 for hiring or the expenseThe related formula returns #N/A
                    Time-bearing dateEnter 2026-04-01 12:00 for hiring or the expenseThe related formula returns #N/A
                    Blank or text dateClear a required date or enter Not a dateThe related formula returns #N/A, not a silent zero
                    Expense outside forecastSet Inputs!B8 to 2026-07-01 with a six-month horizonF2:F7 contains six zeros
                    Zero cash receipts or costsEnter numeric 0 in a scenario assumptionZero is accepted as a valid assumption
                    Opening-balance scopeInspect B2:B61Only B2 reads Inputs!B2; later active rows roll forward prior ending cash

                    This model has no transaction ledger, so duplicate transactions, transfers, and payment matching fall outside its scope.

                    Review the completed forecast for:

                    • Missing payroll taxes, contractors, rent, software, insurance, debt payments, and other material cash expenses
                    • Revenue entered when invoiced instead of cash receipts entered when collection is expected
                    • Text dates, mid-month dates, or hidden time values
                    • Formula cells overwritten with hard-coded amounts
                    • Scenario labels that don’t match the scenario table
                    • Values or formulas blocking the spilled helper ranges in P:Q
                    • A chart that uses A:I instead of the filtered helper range in P:Q

                    If you need linked income statement, balance sheet, and cash flow schedules, use a startup three-statement model instead of turning this runway schedule into a full accounting model.

                      11

                      Use ModelMonkey to inspect or adjust the forecast

                      ModelMonkey can use workbook context in Google Sheets and Microsoft Excel to help inspect ranges, work with formulas, analyze the forecast, and create or adjust a chart. If the workflow presents a preview, review the proposed changes before proceeding.

                      To check this runway model, open ModelMonkey in the workbook and submit:

                      Inspect Inputs!A1:G8 and Runway!A1:Q61.
                      
                      The forecast horizon is controlled by Inputs!B4 and may contain 1 to 60 active monthly rows. Check active rows for formula errors, blank scenario assumptions, malformed amounts, and invalid dates, including dates with time values.
                      
                      Confirm the first active month where Ending Cash in column I is below zero. Compare it with Runway!N2:N3.
                      
                      Check that P2 and Q2 use FILTER formulas to return only active Month and Ending Cash values. Create or adjust a line chart from the filtered helper range in P:Q. Do not chart the fixed A2:A61 and I2:I61 ranges directly because inactive cells contain formulas returning empty text.
                      
                      Do not replace missing or invalid inputs with zero. Show any proposed formulas or changes for review.
                      

                      Compare its formulas, analysis, and chart with the expected Base, Optimistic, and Conservative values in this guide. ModelMonkey can assist with spreadsheet work, but it doesn’t guarantee that every formula or conclusion is correct.

                        12

                        Update and interpret the forecast

                        Update the model on your regular planning cadence and whenever a material cash assumption changes.

                        For each update:

                        1. Replace starting cash with the reconciled opening balance for the new forecast period.
                        2. Update monthly cash receipts based on expected collection timing.
                        3. Review recurring costs for new, canceled, or repriced commitments.
                        4. Update the hiring date and monthly cash cost.
                        5. Enter the amount and month of the modeled one-time expense.
                        6. Increase Inputs!B4 if the result says Beyond forecast and you need a longer view.
                        7. Repeat the scenario and boundary checks.
                        8. Confirm that the chart, first-negative-month summary, and cash schedule agree.

                        Treat the first negative month as a planning signal. A monthly forecast shows which period needs attention, but it can’t tell you whether depletion occurs early or late within that month.

                          Wrapping Up

                          The workbook calculates monthly net cash flow, burn, ending cash, and the first cash-negative period across three scenarios. With the illustrative Base inputs, cash first becomes negative in May 2026 after four complete forecast months.

                          Replace every assumption with verified company data before relying on the result. Increase the horizon before drawing conclusions beyond the modeled periods, and compare any ModelMonkey-assisted changes with the control values above.

                          Frequently Asked Questions

                          What is the basic cash runway formula?

                          For constant monthly burn, a common estimate is:

                          Cash runway = Available cash ÷ Monthly net burn
                          

                          That shortcut is less useful when receipts, hiring, or one-time expenses change by month. This model calculates each month separately.

                          What if monthly net cash flow is positive?

                          Column K reports monthly burn as zero:

                          =MAX(0,-NetCashFlow)
                          

                          Positive net cash flow increases ending cash. It doesn’t produce a finite runway unless a later forecast period becomes negative.

                          Does zero cash mean the business is cash-negative?

                          No. The model labels an ending balance of exactly zero as Zero cash. The first negative month requires ending cash below zero.

                          A projected zero balance still provides no buffer for payment timing differences or forecast error.

                          How do I change the forecast horizon?

                          Set Inputs!B4 to an integer from 1 through 60. The month rows, summary ranges, runway wording, and filtered chart helper adjust automatically.

                          To support more than 60 months:

                          1. Fill the formulas in A61:K61 down to the new capacity.
                          2. Change h<=60 in the column A formula and Runway!N2 to the new maximum.
                          3. Raise the upper limit in Inputs!B4 data validation.
                          4. Extend the ranges referenced by the FILTER formulas in P2 and Q2.
                          5. Extend the chart source range in columns P:Q.

                          Runway!N3 already builds its “At least” result from Inputs!B4, so its wording doesn’t require a manual change.

                          Why use expected cash receipts instead of recognized revenue?

                          Runway measures available cash. A sale recognized or invoiced in one month may be collected later, so recognized revenue can overstate near-term inflows. Enter cash in the month it’s expected to arrive unless you build a separate receivables schedule.

                          Can this forecast identify the exact date cash runs out?

                          No. The model uses monthly inflows and outflows, so it identifies the first month with negative ending cash. Estimating an exact date requires daily cash timing and verified payment schedules.