Founders run out of cash for only one reason—the roadmap is longer than the runway.
Below is a 10-minute Google-Sheet + Python workflow that:
The sheet is pre-wired to SteadCAST so your Micro-GCC squad’s velocity updates the forecast every Friday—no CFO needed.
Classic runway formula:
ini
CopyEdit
Runway = Cash on hand ÷ Average monthly burn
Problems:
What you need is a time-phased burn model with scenario bands and a roadmap overlay so you can answer:
“Can we hit the Day 90 MVP AND still have $250 k buffer for the next fundraise?”
| Bucket | Formula | Notes / Benchmarks |
| Headcount | Σ Dev + PM + Ops salary * 1.25 (tax/benefits) | 55 – 70 % of burn for early tech startups |
| Cloud & Tools | AWS/Azure + SaaS seats | Aim ≤ 20 % burn; watch AWS credits expiry |
| GTM (Go-to-Market) | Ads + events + SDR salary | Often spikes after MVP |
| Misc. & Buffer | Legal, Fi-Ops, one-off fees | Keep 5–10 % for surprises |
Rule of thumb: if Headcount + Cloud > 85 % you have no flex for GTM.
/resources/runway_forecast_template.xlsx (linked in CTA) has:
bash
CopyEdit
pip install pandas gspread
python ledger_to_sheet.py –file ledger.csv –sheet RUNWAY
ledger_to_sheet.py parses “Category” column and posts rows via Google API.
python
CopyEdit
import requests, datetime, gspread
v = requests.get(“https://api.steadcast.ai/velocity/projectA”).json()
sprint_end = datetime.date.today() + datetime.timedelta(days=90)
sheet.update(‘B5’, v[‘avg_velocity’])
sheet.update(‘B6’, sprint_end.strftime(‘%Y-%m-%d’))
Velocity auto-translates to Story-points / week → Dev hours → Headcount cost over the next six sprints.
python
CopyEdit
import matplotlib.pyplot as plt, pandas as pd
df = pd.read_excel(‘runway.xlsx’, sheet_name=’Scenarios’)
plt.plot(df[‘Month’], df[‘Base’], label=’Base’)
plt.plot(df[‘Month’], df[‘Stretch’], linestyle=’–‘)
plt.plot(df[‘Month’], df[‘Worst’], linestyle=’:’)
plt.axvline(x=’MVP Launch’, color=’k’)
plt.legend(); plt.title(‘Burn Curve vs. MVP’)
plt.savefig(‘burn_curve.png’)
Embed burn_curve.png in your investor deck.
Sheet auto-highlights:
The roadmap overlay (imported from Jira via API) colors each sprint bar:
If any sprint in Amber/Red zone is Grey/Black, SteadCAST pings Slack:
sql
CopyEdit
⚠️ Sprint 6 slip pushes MVP day beyond cash buffer (59 days left).
Options: cut scope by 2 SP or raise bridge.
Inputs
Sheet output
Decision
Cut AWS RDS upgrade (–$6 k/mo) and postpone 2nd dev hire → red zone extends to Month 10, enough buffer to raise Seed+.
| Pitfall | Fix |
| Treating ARR as cash | Input cash not bookings; SaaS prepaid can mask burn. |
| Ignoring rev-share/payment fees | Model payment gateway fees as 2.9 % of GMV in Cloud bucket. |
| Forgetting renewals (IAAS, SaaS) | Tag contracts with “Renew Date”; template auto-adds spike. |
| Headcount loaded at 1.0 × salary | Use 1.25 × for tax/benefits; 1.4 × in Europe. |
| No buffer for “unknown-unknowns” | Add 5 % Misc. every month; SteadCAST treats as contingency. |
Burn multiple = Net burn ÷ Net new ARR
Early Seed target: 1.5–2.5×.
Sheet calculates this automatically. In the B2B SaaS case:
Add this to your deck footnotes—VCs check it.