Startup Runway

← All samples

startup-runway.dply
1---
2version: 0.1.0
3precision: 2
4form_title: Startup runway
5form_description: Cash, monthly burn and revenue growth — see how many months you have before the balance hits zero, with the curve. Tap the form icon for the input mask.
6form_inputs: Cash in bank|cash{€}, Monthly burn|burn{€}, Monthly revenue|revenue{€}, Revenue growth|growth[6 %:0.06,10 %:0.1,15 %:0.15]
7form_outputs: Runway (months)|runway_months
8form_plots: 1
9---
10# draftply Pro — Startup runway
11# "How many months until we run out of cash?"
12# This notebook also has a FORM (Pro): tap the form icon for an input mask
13# with the balance chart built in. Revenue grows monthly, so burn shrinks.
14
15cash = 250000 # € in the bank
16burn = 32000 # € spent per month
17revenue = 8000 # € income in month 0
18growth = 0.06 # monthly revenue growth (6%)
19
20# Cash left after m months. The grown revenue is a geometric
21# series: revenue * ((1 + growth)^m − 1) / growth
22balance(m) = cash - burn * m + revenue * ((1 + growth)^m - 1) / growth
23
24"Today (€)": balance(0)
25"In 6 months (€)": balance(6)
26"In 12 months (€)": balance(12)
27
28# Runway = first month the balance turns negative.
29def runway():
30 m = 0
31 while balance(m) > 0:
32 m = m + 1
33 return m
34runway_months = runway()
35
36# Where the growth gets you: revenue after a full year
37Monthly revenue in month {12} (€): {revenue * (1 + growth)^12}
38
39# ── Cash over time ─────────────────────────────
40# This is the chart the form embeds (form_plots: 1).
41Balance: plot(cash - burn*x + revenue*((1 + growth)^x - 1)/growth, 0..24, "Runway", "month", "€")
42