TotalApp Docs

Financial Projection Modeler

Multi-scenario SaaS financial model with 5-year revenue projections, automated KPIs (runway, break-even, LTV/CAC), bull/bear sensitivity analysis, dual Workstation/Enterprise style, and AI-powered insights. All data is tenant-scoped and persisted via the server JSON API.

Overview

The Financial Projection Modeler is a startup-focused planning tool within TotalApp's Strategy & Fundraising module. It lets founders and CFOs build 5-year SaaS revenue forecasts using tiered subscription pricing, with automatic calculation of key investor metrics and three-scenario sensitivity analysis (Base, Bull, Bear).

Tiered Pricing Engine

Model up to 3 subscription tiers (Starter, Growth, Enterprise) with independent monthly pricing, initial subscribers, monthly growth rates, and annual churn rates. Revenue compounds monthly within each year.

Automated KPIs

Runway months, break-even year and month, LTV/CAC ratio, and Year 5 revenue CAGR are computed automatically from your assumptions — no spreadsheet formulas needed.

Sensitivity Analysis

Three scenarios run simultaneously: Base (your assumptions), Bull (+20% growth, −25% churn), and Bear (−20% growth, +25% churn). Instantly see the revenue range your model produces.

AI Insights

An integrated Claude AI pipeline analyses your model and returns plain-language commentary on growth trajectory, burn rate, and investor readiness — with configurable writer engine (API, CLI, local LLM).

Dual Style

Dark Workstation and light Enterprise visual modes, switchable from Settings → Appearance → Screen Style. The modal and table chrome both respond to the setting.

Tenant-Scoped Persistence

All models are saved server-side in your tenant's isolated JSON store via the /api/data/financial-projections endpoint. Multiple named models are supported per tenant.

Quick Start

1. Open Financial Projection Modeler
2. Click "Create First Model"
3. Edit assumptions
4. View KPIs & projections
5. Run AI Insights
  1. Navigate to Strategy & Fundraising → Financial Projection Modeler in the sidebar.
  2. If no models exist, click Create First Model. A default SaaS model is created with a $1.5 M seed round, three subscription tiers, and realistic growth assumptions.
  3. Select the model from the left panel to open it.
  4. Switch to the Assumptions tab and adjust revenue, cost, and capital inputs to match your business.
  5. Switch to the Projections tab to see the 5-year table. KPI cards at the top show runway, break-even, and LTV/CAC in real time.
  6. Click AI Insights to generate a plain-language analysis of your model using the configured writer engine.

Default model is pre-validated

The default tenant ships with a pre-computed "SaaS Growth Model — Seed Round" that has mathematically verified projections: Year 1 ARR ≈ $131 K, Year 5 ARR ≈ $5.2 M, runway 67 months, break-even in Year 3 Month 7, and an LTV/CAC ratio of 5.6. No system alerts are raised because cash never goes negative across the 5-year horizon.

Assumption Inputs

Revenue Assumptions

Field Description Default (per tier)
Monthly Price ($/mo)Subscription price per active customer in this tier$29 / $99 / $299
Initial SubscribersNumber of paying customers at model start50 / 20 / 5
Monthly Growth Rate (%)New subscriber growth each month, compounded8% / 10% / 7%
Annual Churn Rate (%)Percentage of subscribers lost each year (converted internally to monthly)15% / 10% / 5%

Cost Assumptions

Field Description Default
COGS (% of revenue)Infrastructure and hosting cost as a percentage of revenue15%
Sales & Marketing (Year 1 $)S&M spend in Year 1; grows at S&M growth rate each subsequent year$120,000
R&D (Year 1 $)Engineering spend in Year 1$180,000
G&A (Year 1 $)General & administrative expenses in Year 1$72,000
Annual Cost Growth (%)How much fixed costs grow each year20%
S&M Growth Rate (%)Annual growth rate applied to Sales & Marketing specifically30%

Capital Assumptions

Field Description Default
Current Cash Balance ($)Starting cash; determines runway before operating cash flow turns positive$1,500,000
LTV ($)Lifetime Value of a customer — used in LTV/CAC ratio KPI$1,800
CAC ($)Customer Acquisition Cost — used in LTV/CAC ratio KPI$320

Automated KPIs

The KPI bar at the top of the Projections tab is recalculated every time assumptions change:

KPI Formula Healthy target
Implied Runway Starting cash ÷ average monthly burn in Year 1 (if burn is positive) > 18 months
Break-Even First year and month where cumulative net income ≥ 0 Year 2–4 for seed-stage SaaS
LTV / CAC LTV ÷ CAC (from Capital Assumptions) > 3× (investor threshold)
Revenue CAGR (Year 5 revenue / Year 1 revenue)^(1/4) − 1 > 50% for high-growth SaaS

System Alert

If cash balance goes negative in any year, a System Alert banner appears below the KPI bar with the year of first negative balance and the implied runway. To dismiss the alert, increase the starting cash balance, reduce Year 1 costs, or increase growth rates until the cash column stays positive across all 5 years.

Sensitivity Analysis

The Sensitivity tab runs three parallel projections across a 3-year horizon using your current assumptions as the Base, then applies ±20% growth and ±25% churn modifiers for the Bull and Bear scenarios:

Scenario Monthly Growth Annual Churn Typical use
🐂 BullBase × 1.2Base × 0.75Investor best-case slide
📊 BaseYour assumptionsYour assumptionsPrimary operating model
🐻 BearBase × 0.8Base × 1.25Stress-test / downside planning

Tip — share the range, not just the Base

Sophisticated investors expect to see all three scenarios. Use the Bull/Bear spread to demonstrate you understand both the upside and the downside risks of your growth plan.

AI Insights

Click the AI Insights button (Sparkles icon) to generate a narrative analysis of your current model. The AI receives your full 5-year projection data, KPIs, and sensitivity results as context, then produces plain-language commentary covering:

  • Revenue trajectory assessment
  • Burn rate and runway health
  • LTV/CAC and unit economics
  • Growth vs churn balance
  • Investor readiness notes
  • Specific recommendations to improve the model

The AI engine used is controlled by Settings → Doc View → Writer Engine, and Generate Summary now works correctly with every option:

Engine Behaviour
APICalls the Anthropic API using ANTHROPIC_API_KEY on the server. Uses Claude Sonnet.
Local CLISpawns claude --print using your Claude Code subscription OAuth session — no API key needed.
OllamaRuns entirely on your own machine against your local Ollama server — never leaves your browser.
Local LLMRuns a small in-browser model directly on the page.
Web LLMRuns a WebGPU-accelerated model directly in the browser.

Model Management

Creating a New Model

Click the + New Model button in the header. A modal prompts for a name (required) and optional description. The new model is initialised with the default SaaS assumptions — edit the Assumptions tab immediately to reflect your specific business.

Renaming or Deleting

Use the Edit (pencil) button in the model list panel on the left to rename or delete a model. Deletion is permanent and requires confirmation. The default model cannot be deleted if it is the only model in the tenant.

Multi-Model Workflow

You can maintain multiple models for different funding scenarios (pre-seed, seed, Series A), different product lines, or different markets. Switch between models by clicking their name in the left panel. All models are stored in the same tenant-scoped JSON file.

Saving Changes

Editing any assumption recalculates the projection table instantly, but nothing is written to the server until you click Save Model in the header. The button is always visible; it's greyed out when there's nothing new to save and lights up as soon as you change something. Switching to another model, refreshing the page, or clicking New Model before saving discards unsaved edits — an amber Unsaved indicator next to the tab bar warns you while changes are pending.

Data Persistence

Saved models are stored at /api/data/financial-projections in your tenant's isolated directory on the server. New tenants start with an empty model list; the default demo tenant ships with a pre-computed seed model.

Workstation / Enterprise Style

The Financial Projection Modeler fully implements TotalApp's dual-style system:

Style Aesthetic Best for
Workstation (default) Dark glassmorphism, ghost/glow primary buttons, amber KPI accents Internal team dashboards, power users
Enterprise Light corporate, white card panels, solid filled buttons (bg-amber-600) Investor presentations, board meetings, client-facing demos

Toggle the style from Settings → Appearance → Screen Style. The change applies instantly across all screens that support dual-style, including the projection table, KPI cards, sensitivity panel, and modals.

FAQ

Why does my model show a System Alert even with a high cash balance?
The alert fires when cash goes negative in any of the 5 projected years — not just Year 1. High Year 1 costs combined with slow revenue growth in Year 2 or 3 can still drain reserves. Check the cash column in the Projections table to identify the exact year, then either reduce operating costs or increase the starting cash balance for that year.
How is revenue calculated per year?
Revenue compounds monthly: each month's subscriber count = previous month × (1 + monthlyGrowthRate) × (1 − monthlyChurnRate). Monthly revenue = subscribers × monthly price. Year revenue = sum of 12 monthly revenues. This is summed across all active tiers. The projection table shows annual aggregates.
Can I export the projection table to Excel?
Yes — click the Export button in the header toolbar and choose Export as Excel for a native .xlsx file, or Export as CSV for a plain-text file that opens in Excel or Google Sheets. Both include the 5-year projection table with all revenue, cost, EBITDA, and cash columns.
My Generate Summary button does nothing. What should I check?
Check your Writer Engine setting in Settings → Doc View → Writer Engine. It now works with every engine: API needs ANTHROPIC_API_KEY configured on the server (Render Dashboard → Environment); Local CLI needs the Claude CLI installed and accessible from the server process; Ollama needs a local Ollama server with a model selected; Local LLM and Web LLM run entirely in your browser and need no server configuration at all.
How are the Bull and Bear scenarios computed?
Sensitivity uses a 3-year horizon. Bull multiplies each tier's monthly growth rate by 1.2 and multiplies the annual churn rate by 0.75 (lower churn). Bear multiplies monthly growth by 0.8 and annual churn by 1.25 (higher churn). Both scenarios use your actual cost and capital assumptions unchanged — only the revenue-side levers are varied.
Is data isolated between tenants?
Yes. The /api/data/financial-projections endpoint is protected by JWT authentication. The server reads the tenant ID from the verified token and reads/writes only from that tenant's scoped directory (server/data/tenants/<tenantId>/financial-projections.json). It is not possible for one tenant to read another tenant's models.