FinanceFinancial Modelling

Revenue Build

Builds a driver-based revenue forecast .xlsx with live formulas across separate drivers, build, and output tabs plus checks, rolling a customer or units schedule (beginning, adds, churn, ending) into…

AAndrew Oria·Finance·MIT

Library skill — the default version is maintained in GitHub; edits you make live in your own clone.

Use this skillDownload .zip
How does this work?
  • ChatGPT opens a new chat with the skill loaded. If it's too long for a link, it's copied to your clipboard — just paste.
  • Claude works the same way. To install it permanently, download the .zip and upload it under Claude → Settings → Capabilities → Skills (Pro/Team/Enterprise).
  • Copy prompt copies the skill so you can paste it into any assistant, including Grok.

Revenue Build (Driver-Based Forecast)

When to use

Use when revenue should be built bottom-up from real operating drivers rather than a single growth percentage: customers from marketing spend or a funnel, churn, ARPU, or volume times price by product line. Good for operating plans, ARR forecasts, and fundraising models that need a defensible bridge from drivers to the top line. The skill builds a downloadable .xlsx in the Claude app with openpyxl; it does not use any Excel add-in or Microsoft 365 connection.

What it builds

A workbook with six tabs: - Cover: title, color legend, scenario selector, headline revenue and growth. - Drivers: all blue inputs (starting customers, marketing spend, CAC or funnel rates, ARPU, churn, price, scenario multipliers). - Revenue Build: the period-by-period customer or units schedule and revenue. - Summary: annual revenue, growth, ending customers, and the scenario in force. - Sensitivity: new-adds by churn Data Table driving ending ARR or revenue. - Checks: roll-forward identity and sanity flags.

Build workflow

  1. Create the workbook and the six tabs in the order above.
  2. On Drivers, lay out every input in blue with units; add a scenario cell (1=Base, 2=Bull, 3=Bear) named scn.
  3. Set up the period header row (months or quarters) once and reference it everywhere.
  4. Build the customer or units roll-forward on Revenue Build: beginning, adds, churn, ending.
  5. Compute revenue each period from the schedule (customers times ARPU, or volume times price).
  6. Build the Summary by aggregating periods to years.
  7. Build the Sensitivity tab as a native two-variable Data Table.
  8. Build the Checks tab with the roll-forward identity and growth sanity tests.
  9. Recalculate the workbook headless (LibreOffice) so all formulas compute.
  10. Verify zero formula errors (#REF!, #DIV/0!, #VALUE!, #NAME?); fix and re-recalculate in a loop, then deliver.

Tab-by-tab spec

Cover

Drivers

Revenue Build

Summary

Sensitivity

Checks

Formula and formatting conventions

Checks

Recalculate and verify

After writing, recalculate headless with LibreOffice so openpyxl formula text becomes computed values. Scan every sheet for #REF!, #DIV/0!, #VALUE!, #NAME?. Fix any offending formula or missing named range and recalculate again in a loop. Deliver only when the Checks tab shows all PASS and no error strings remain.

Inputs to gather

Example

Hypothetical: start 1,000 customers, ARPU 50 per month, churn 3% monthly. Marketing spend 100,000 per month, CAC 500, so 200 new adds per month. Month-1 churn about 30 customers, ending about 1,170. Over 36 months under Base, customers ramp and monthly revenue grows; Bull applies a 1.2x adds and 0.8x churn multiplier. Sensitivity flexes adds from 150 to 300 against churn from 2% to 5% to show ending ARR.