Create Financial Projections for Your Business

You'll end up with: A 12-month spreadsheet model with named scenarios and a one-glance summary of runway and break-even timing under your pessimistic case

Overview
25-35 min
Intermediate
Free (Claude + Sheets)
2 tools
Cost breakdown
ClaudeFree
Google SheetsFree
TotalFree (Claude + Sheets)
Common mistake

Treating revenue growth on the P&L as money in the bank—ignoring payment lag (net-30/60), irregular expenses, estimated taxes, and owner draws—then getting surprised on “runway” months. Fix: add at least one cash timing adjustment row (or explicit lag) in Step 4–5 and re-read the pessimistic scenario against your actual bank balance, not only operating net.

Before you start
  • Rough actuals for the last 3–6 months: revenue and major expenses (bank export, bookkeeping tool, or a sticky-note tally)
  • The decision this model supports (e.g. can I afford $X/month contractor, when do I need more revenue, which cost to cut first)
  • Horizon locked to 12 months with monthly columns
  • Claude and Google Sheets open; optional tab with last year’s totals for reference
  • For tax, entity, or amounts owed, talk to an accountant—this model is illustrative and pre-tax only
1

Charter the model (horizon, decision, and guardrails)

Lock a 12-month monthly scope, the decision you’re modeling, and pre-tax disclaimers—before any forecast numbers.

ClaudeFreeOpen Claude
Exact action

1. Open https://claude.ai and start a **new chat** (keep this single thread through Order 3). 2. Paste this prompt and fill every bracket with YOUR facts or the word **unknown** — do not let the model invent revenue or expenses: "I’m building a 12-month, **month-by-month** financial projection to support a **business decision**, not for tax filing or investors. Set it up — do **NOT** output month-by-month P&L numbers yet. Business model in one line: [...] Currency: [...] Decision this model supports (one sentence — e.g. can I afford $X/mo contractor, when do I need more revenue, which cost to cut first): [...] Rough trailing actuals (last 3–6 months; use honest ranges if exact is unknown): - Total revenue (monthly average or range): [YOUR_AVG_MONTHLY_REVENUE_LAST_6MO] - Total operating costs (monthly average or range): [YOUR_AVG_MONTHLY_SPEND_LAST_6MO] - Optional — revenue streams as bullets: [...] Guardrails: - **Pre-tax / illustrative only.** No tax, legal, or entity advice (I’ll talk to an accountant for that). - Horizon: **12 months**, **monthly** columns. Return exactly: (a) One paragraph **projection charter** that names horizon, granularity, my decision, and pre-tax framing, (b) A numbered **inputs checklist** of what you still need from me before we model revenue and costs, (c) A short **non-goals** list (what this projection is NOT for). Do not fabricate any figures I didn’t give you." 3. Read the charter. If it omits **pre-tax / illustrative** or your decision, reply: "Put my decision and the pre-tax disclaimer in the first paragraph. Re-send (a)-(c)." 4. Gather anything on the checklist from your bank export, bookkeeping tool, or notes **before** Step 2 — do not silently guess missing amounts.

You have a one-paragraph charter that states **12 months**, **monthly** granularity, your **decision**, and **pre-tax / illustrative** language; the inputs checklist is mostly tickable from your own records (no invented numbers).
Claude outputs a month-by-month P&L or invented revenue/costs — stop and re-send the prompt with the line: "Do not output any monthly numbers in this message — charter and checklist only."
2

Model revenue with three named scenarios

Define revenue streams, drivers, and Pessimistic / Base / Optimistic cases tied to one measurable lever each.

ClaudeFreeOpen Claude
Exact action

1. In the **same Claude chat**, reference the charter from Order 1. 2. Paste: "Using only my numbers below (no fabrication), build **revenue** for the next 12 months. Streams (list every meaningful one; if there’s only one, say so): - Stream A: [...] Driver (e.g. clients × avg fee, units × price, MRR seats × price): [...] - Stream B: ... Hard facts I’m willing to type today (use unknown if missing): - Last 6-month average monthly revenue (total): [YOUR_AVG_MONTHLY_REVENUE_LAST_6MO] - Any known seasonality or one-off spikes to ignore: [...] Define **three** scenarios — **Pessimistic**, **Base**, **Optimistic** — where each scenario changes **exactly one primary measurable lever** vs Base (e.g. new clients/mo, churn %, growth %, average deal size). No vague "+30% optimism." Output: 1) A table: Stream × Scenario × **Assumption sentence** × **Month 1** and **Month 12** revenue (use my supplied base numbers only; show growth in words if you can’t compute). 2) One sentence per scenario I can read aloud to a partner defending the lever. If a number is missing, write **NEEDS INPUT** — do not guess." 3. If Optimistic/Base/Pessimistic aren’t tied to **named levers**, reply: "Rewrite scenarios so each differs by one measurable lever I can track monthly." 4. Save Claude’s table to your clipboard — you’ll paste drivers into the **Assumptions** tab in Order 4.

Three scenario names you’d say out loud; each scenario = **one** testable lever vs Base; the table has **Month 1** and **Month 12** columns without invented totals.
Scenarios are just multipliers ("+20% / +40%") with no driver — re-prompt: "Each scenario must change exactly one named lever (e.g. new clients per month from 1 → 0.5)."
3

Group operating costs (fixed vs variable)

Turn expenses into labeled lines (fixed / variable / semi-variable) so the Sheet won’t collapse into one “misc” bucket.

ClaudeFreeOpen Claude
Exact action

1. Same chat — reference the **revenue scenarios** from Order 2. 2. Paste your **expense reality** (export lines, card categories, or a bullet list). If you already completed the *Categorize Expenses Automatically* guide, paste that **taxonomy** here instead of raw chaos. 3. Then paste: "Classify every line into **Fixed** (doesn’t scale with revenue in the short term), **Variable** (% of revenue or per-unit), or **Semi-variable** (step changes — e.g. hire month, new software tier). Add common solopreneur gaps if missing: software stack, contractors, marketing, insurance, equipment, **owner draw** as its own line. Add a **reminder line** for estimated taxes / transfers with the disclaimer: **confirm with an accountant** — do not calculate tax owed. Return: (a) A cleaned table: Line item × Type × Typical monthly amount **or** rule (% of revenue, step month) — use my pasted numbers only; **NEEDS INPUT** where unknown. (b) A **monthly skeleton** note: which lines are flat every month vs % of revenue vs step. (c) Flag any single bucket that would be **>15%** of total costs without a split — propose a split. No new revenue assumptions." 4. If one "misc" or "general" bucket is still huge, reply: "Split general until no bucket is >15% without a one-line justification."

You have **≥8** labeled cost lines **or** fewer only because your business is honestly tiny — and no silent mega-**misc** bucket.
Costs lumped into one or two vague lines — force the split prompt in step 3.4 before opening Sheets.
4

Build the spreadsheet: Assumptions + Monthly P&L

Create a driver-linked workbook: scenario switch, 12 monthly columns, operating net — plus a placeholder row that separates P&L from cash timing.

Google SheetsFreeOpen Google Sheets
Exact action

1. In Google Sheets, create a workbook named: **Financial projections — [Business] — [YYYY-MM]**. 2. Add tab **Assumptions**: - Cell **B1**: Scenario (values: Pessimistic | Base | Optimistic) — use **Data → Data validation** (list from a range) if you like. - Paste Claude’s **driver table** from Order 2 and the **cost classification** from Order 3 into this tab. - Put the numbers you trust for **Base** in clearly labeled cells (e.g. `base_new_clients_per_mo`, `base_avg_deal`, `fixed_software`, …). 3. Add tab **Monthly** with **row 1 headers** exactly: `Month | Revenue_Stream_1 | Revenue_Stream_2 (optional) | Total_Revenue | Variable_Costs | Fixed_Costs | Operating_Net_pre_tax | Cash_timing_adjustment | Ending_bank_balance_optional` - Months: 12 columns after the label column (Month 1 … Month 12) **or** one column per month in rows — pick one layout and stay consistent. - **Total_Revenue** = sum of stream columns (hide extra stream columns if you only have one). - **Operating_Net_pre_tax** = Total_Revenue − Variable_Costs − Fixed_Costs. - **Cash_timing_adjustment**: start at **0** for every month until you add real timing (Order 5). Label clearly: *"not the same as operating net."* - **Ending_bank_balance_optional**: only if you enter a **Starting_bank_balance** on Assumptions; else leave blank. 4. Link **Monthly** cells to **Assumptions** with formulas (no hard-coded static rent in 12 separate cells — reference one driver cell). 5. Optional — same Claude chat: "Here are my Assumptions cell labels and Monthly layout — suggest **Google Sheets formulas** in plain text only; do not invent my numbers." 6. Enter **Base** first; flip scenario to confirm the year updates without hand-editing each month for fixed costs.

Changing the scenario (or a driver cell on **Assumptions**) updates the full year; **Operating_Net_pre_tax** is clearly labeled; **Cash_timing_adjustment** exists as its own row (even if zeros).
Each month’s fixed costs typed manually 12 times with no Assumptions tab — rebuild so static costs reference **one** cell per line.
5

Stress-test pessimistic cash vs P&L and lock actions

Read pessimistic case for **operating pain** and **bank timing**; write concrete “if this happens, I will…” cuts—not vibes.

Google SheetsFreeOpen Google Sheets
Exact action

1. On **Assumptions**, switch to **Pessimistic**. 2. In **Monthly**, add or complete a **Summary** block (top of tab or new **Summary** tab): - First month where **Operating_Net_pre_tax < 0** (if any). - Lowest month for **Ending_bank_balance_optional** *after* you add realistic **Cash_timing_adjustment** rows (examples: net-30 receipt lag = shift **some** revenue to the next month; quarterly insurance = spike; estimated tax transfers = negative adjustment — keep amounts **your** choices, not Claude’s guesses). - One line: **"Operating net vs bank story"** in plain English (e.g. "Profitable on paper in March but cash dips in April because…"). 3. Add **5–7** bullets under **If_this_happens_I_will** with concrete actions (named subscriptions to cut, hire date to delay, offer to push)—each bullet must reference a **row or driver** in your sheet. 4. Optional — Claude for wording only (same chat, **no new numbers**): paste your Summary block and ask: "Turn this into **6 tight review bullets** for me; do not change any figures or add new ones." 5. Re-read **Pessimistic** while imagining your real bank app open — if the sheet still feels better than your bank balance, your **Cash_timing_adjustment** is too thin.

In under 30 seconds you can answer: **Under Pessimistic, when does it hurt first — on the P&L, in the bank, or both — and what do I cut or delay first?**
Summary only celebrates revenue growth with no cost or cash story — add pessimistic pass, lowest-bank month, and **If_this_happens_I_will** bullets tied to named lines.

All done!

You now have: A 12-month spreadsheet model with named scenarios and a one-glance summary of runway and break-even timing under your pessimistic case

Explore more guides

Want this workflow built for your business?

Book a free audit