runway-model
Financial runway & unit economics tracker — burn rate, revenue trajectory, runway in months, scenario modeling
- License 许可
- MIT
- 最近更新
- 2026-11-10
- Stars
- ★ 1
- Forks
- 0
01 前言 Front Matter
- name
- runway-model
- type
- analysis
- version
- v0.2
- description
- Financial runway & unit economics tracker — burn rate, revenue trajectory, runway in months, scenario modeling
- visual_tier
- visual
- argument-hint
- [file path to financials, pasted data, or empty to be prompted]
- interview_depth
- light
02 资源文件 1
- 其他OWNERSHIP24 B
03 SKILL.md 正文
Pack Availability Guard
Before telling the user to run a skill from another project-local pack, check .agents/project.json.enabled_packs. If the target pack is not enabled, recommend /pack install <pack> instead of the target skill. Global skills are always valid. Skills from this same pack are valid because the current skill is already running from that pack.
Runway Model — Financial Runway & Unit Economics
Simple financial model: burn rate, revenue trajectory, runway in months, and scenario modeling. Takes real numbers, projects forward with optimistic/realistic/pessimistic scenarios. Append-only updates for tracking over time.
Soft Prerequisites
- Read
research/monetization.mdif it exists — theoretical unit economics and pricing to compare against actuals - Read
research/metrics.mdif it exists — growth rate targets for projections - Read
research/cohort-review-*.mdif any exist — real performance data for revenue trajectory - Read
research/gtm.mdif it exists — channel costs for CAC calculations
Process
0. Product-Path Scope Resolution
Resolve research scope by product path before using code or app structure as a hint:
- If
$ARGUMENTSnames a non-archivedresearch/{slug}/directory or a product-path ID whosescope_pathpoints there, use that path. Treat{slug}as the product/app name, not the ICP, audience, or segment label. - If
$ARGUMENTSnames onlyresearch/_archive/{slug}/or a manifest entry withstatus: archivedor legacystatus: abandoned, stop and warn that the path is archived; do not write or update scoped outputs there. - Read
research/.progress.yamlwhen present. Normalize legacyactive_pathtoactive_pathson read and write backactive_pathson manifest updates. Treat legacyabandonedasarchived; excludearchived,abandoned,deferred,revisit_candidate,promoted, and anyscope_pathunderresearch/_archive/from active target selection. - If active product paths exist in the manifest, use those paths. If multiple active paths exist, ask which one to target unless this skill explicitly supports cross-path output.
- If no active manifest target exists, list non-archived product directories under
research/, excludingresearch/_archive/and dot directories. Auto-select only when exactly one exists; ask when multiple exist. - If no product directories exist, use flat
research/single-product mode. - Detect monorepo/app/package structure only as a secondary hint. Suggest creating a missing
research/{slug}/product path when code clearly exposes an app, but do not require code or monorepo detection before usingresearch/{slug}/.
When product path {slug} is active, read and write research under research/{slug}/, specs under specs/{slug}/, and treat top-level research/*.md files as flat-mode documents or cross-path summaries.
1. Load Context & Data
Load research context: Read all soft prerequisite files.
Ingest financial data:
Check $ARGUMENTS:
- File path provided: Read the file
- Text provided: Parse the data directly
- Empty: Use AskUserQuestion to gather the numbers
Required inputs (ask for each that's missing):
- Monthly burn rate (total expenses)
- Current cash/bank balance
- Monthly revenue (if any)
- Revenue growth rate (if applicable)
- Team size and key cost categories
Nice-to-have inputs:
- Detailed cost breakdown (salaries, infrastructure, tools, marketing)
- Customer count and ARPU
- CAC by channel
- Churn rate
- Expected cost changes (new hires, infrastructure scaling)
2. Calculate Core Metrics
Runway calculation:
- Gross burn: Total monthly expenses
- Net burn: Expenses minus revenue
- Runway (months): Cash balance ÷ net burn
- Zero-cash date: Projected date when cash runs out
Unit economics (if revenue exists):
- MRR / ARR: Monthly/annual recurring revenue
- ARPU: Average revenue per user
- CAC: Customer acquisition cost (if channel spend data available)
- LTV: Lifetime value (ARPU × average lifespan, or ARPU ÷ monthly churn rate)
- LTV:CAC ratio: Is acquisition sustainable?
- Payback period: Months to recover CAC
- Gross margin: Revenue minus cost of delivery
Compare actuals against theoretical estimates from research/monetization.md if it exists.
3. Scenario Modeling
Build three scenarios projecting 12 months forward:
Pessimistic (what if things go wrong):
- Revenue grows at 50% of current rate (or flat)
- Costs increase 10-20% (unexpected expenses, needed hires)
- Churn increases
- Runway: [months]
Realistic (current trajectory continues):
- Revenue grows at current rate
- Costs grow as planned
- Churn stays flat
- Runway: [months]
Optimistic (what if things go well):
- Revenue grows at 150-200% of current rate
- Costs stay controlled
- Churn decreases
- Runway: [months]
For each scenario, show monthly projections for cash balance, revenue, and expenses.
4. Identify Critical Decisions
Based on the model:
- Break-even point: When does revenue cover expenses? (per scenario)
- Hiring runway: Can you afford to hire? When?
- Marketing budget: How much can you spend on acquisition?
- Runway triggers: At what cash balance should you raise, cut costs, or change strategy?
- Revenue milestones needed: What MRR is needed to extend runway to [target]?
5. Present & Validate
Use AskUserQuestion to present:
- Core metrics summary
- Three scenarios with runway projections
- Critical decisions and trigger points
Ask:
- "Do these numbers match your records? Any costs or revenue I'm missing?"
- "Are the scenario assumptions realistic? Too conservative or too aggressive?"
Incorporate feedback before proceeding.
6. Populate Next Steps
Include 3–5 applicable items with "Pick one:" framing:
- IF runway < 6 months: Prioritize revenue —
/experimentto validate fastest path to revenue, or cut costs - IF unit economics unhealthy (LTV:CAC < 3):
/monetization— Revisit pricing or acquisition strategy - IF no
research/cohort-review-*.md:/cohort-review— Get real performance data to improve projections - IF actuals diverge from monetization estimates:
/monetization— Update strategy with real data - ALWAYS:
/roadmap— Ensure build plan accounts for runway constraints
7. Write Output
Present final model to user. Ask:
- "Ready to write this? Anything to adjust?"
Only after confirmation, write the output file.
Output
research/runway-model.md (or research/{slug}/runway-model.md)
Append-only — each update adds a new section at the top (below the header). Previous snapshots remain for historical tracking.
# Runway Model
> Last updated: [current date]
> Snapshots: [total count]
## Latest Snapshot: [Month Year]
> Data source: [where the numbers came from]
> As of: [date of financial data]
### Core Metrics
| Metric | Value | vs. Last Snapshot |
|--------|-------|-------------------|
| Cash balance | $[amount] | [+/- change] |
| Monthly revenue (MRR) | $[amount] | [+/- change] |
| Gross burn | $[amount/mo] | [+/- change] |
| Net burn | $[amount/mo] | [+/- change] |
| Runway | [months] | [+/- change] |
| Zero-cash date | [date] | [+/- change] |
### Unit Economics
| Metric | Actual | Target (from monetization) | Status |
|--------|--------|---------------------------|--------|
| ARPU | $[amount] | $[target] | [On/Below/Above] |
| CAC | $[amount] | $[target] | [On/Below/Above] |
| LTV | $[amount] | $[target] | [On/Below/Above] |
| LTV:CAC | [ratio] | [target] | [Healthy/Unhealthy] |
| Payback period | [months] | [target] | [On/Below/Above] |
| Gross margin | [%] | [target] | [On/Below/Above] |
### Cost Breakdown
| Category | Monthly Cost | % of Total | Trend |
|----------|-------------|------------|-------|
| Salaries/contractors | $[amount] | [%] | [↑↓→] |
| Infrastructure | $[amount] | [%] | [↑↓→] |
| Tools & services | $[amount] | [%] | [↑↓→] |
| Marketing/ads | $[amount] | [%] | [↑↓→] |
| Other | $[amount] | [%] | [↑↓→] |
### Revenue Breakdown
| Source | MRR | Customers | ARPU | Growth |
|--------|-----|-----------|------|--------|
| [tier/product] | $[amount] | [count] | $[amount] | [%/mo] |
### 12-Month Projections
#### Pessimistic
| Month | Revenue | Expenses | Net Burn | Cash Balance |
|-------|---------|----------|----------|-------------|
| [M1] | $[amt] | $[amt] | $[amt] | $[amt] |
| ... | | | | |
**Runway**: [months] | **Break-even**: [month or "not in window"]
#### Realistic
| Month | Revenue | Expenses | Net Burn | Cash Balance |
|-------|---------|----------|----------|-------------|
| [M1] | $[amt] | $[amt] | $[amt] | $[amt] |
| ... | | | | |
**Runway**: [months] | **Break-even**: [month or "not in window"]
#### Optimistic
| Month | Revenue | Expenses | Net Burn | Cash Balance |
|-------|---------|----------|----------|-------------|
| [M1] | $[amt] | $[amt] | $[amt] | $[amt] |
| ... | | | | |
**Runway**: [months] | **Break-even**: [month or "not in window"]
### Assumptions
[List every assumption behind the projections — growth rates, churn rates, cost changes, hiring plans]
### Critical Decisions
| Trigger | Condition | Action |
|---------|-----------|--------|
| Low runway | Cash < $[amount] or < [months] runway | [action: raise, cut, pivot] |
| Break-even path | Need $[MRR] by [date] | [what must happen to get there] |
| Hiring decision | Can afford hire when runway > [months] | [role and timing] |
| Marketing budget | Can spend $[amount/mo] on acquisition | [when and how] |
### Next Steps
Pick one:
- [conditional items from step 6]
---
[Previous snapshots remain below, newest first]
Create the research/ directory if it doesn't exist.
Task Classification
When this skill produces follow-up work, file it by execution semantics:
- Immediately actionable implementation or documentation work goes in
tasks/todo.md. - Human-only external actions tied to automated steps go in
tasks/manual-todo.mdwith_(blocks: Step N.X)_or_(after: Step N.X)_; repo edits, SDK wiring, generated assets, local commands, tests, audits, and authenticated CLI/API work stay intasks/todo.md. - One-time condition-gated records, baselines, or future measurements go in
tasks/record-todo.mdwith source, condition, non-blocking reason, evidence, and promotion rule. - Cadence-based reviews, playtests, adoption checks, investor updates, retros, or docs-health checks go in
tasks/recurring-todo.mdwith cadence, owner/agent, next due, evidence path, and escalation conditions. - Do not put non-blocking records or recurring obligations in
tasks/todo.mdunless they have been explicitly promoted into current execution work.
Constraints
- Real numbers only. Do not fabricate financial data. If numbers aren't provided, ask for them.
- Append-only. Previous snapshots are never deleted or modified. Only add new snapshots at the top.
- State assumptions. Every projection must list its assumptions explicitly. Never present projections as predictions.
- Present before writing. Never write output files until the model has been presented and validated.
- Conservative by default. When estimating, err on the conservative side. Optimistic projections should be labeled clearly.
- No investment advice. This is a planning tool, not financial advice. Note this in the output.
- Privacy-aware. Financial data is sensitive. Do not log raw financial data to search logs or interview logs.
Context Gathering
Step 1 — Scope questions. Before researching, ask the user 1–3 questions via AskUserQuestion to understand: their product/service, target audience, and what they hope to learn or decide from this research.
Step 2 — Research. Conduct research scoped by the user's answers.
Step 3 — Findings validation. Before building the alignment page, present the 3–5 most important findings and ask the user to validate or correct any critical assumptions.
Alignment Page
When this skill produces durable deliverables (research, specs, plans, reports, prototypes, or any document output), build a full-depth HTML alignment page following ALIGNMENT-PAGE.md in this skill's directory. Output: alignment/runway-model-{topic}.html.
Default Shipping Contract
Follow the shared shipping contract convention in CLAUDE.md.
04 同仓库更多 Skills
source-checkout-allowed
Valid source-checkout-only fixture.
deck-install-valid
Valid deck install fixture.
codex-pack-guard-valid
Valid Codex Pack Availability Guard fixture.
codex-missing-skill-valid
Valid Codex missing skill fallback fixture.
codex-base-skill-fallback-valid
Valid Codex base skill fallback fixture.
claude-pack-guard-valid
Valid Claude Pack Availability Guard fixture.