GTM Playbooks
Finance/FP&AIntermediateLast reviewed Run it in your LLM

Compute Rule of 40 so Growth and Margin Are One Board Number, Not Two Stories

The problem

Growth-at-all-costs and margin-at-all-costs both look fine in isolation; Rule of 40 is the board check that growth % plus profit margin % should clear about 40 for a healthy SaaS tradeoff, and most teams do not have a shareable calculator for scenarios.

Copy, paste, run

Run it in your LLM

One prompt for Claude or ChatGPT that turns a YoY P&L window into the board check that growth and profit have to be traded off together: growth % plus margin % vs a stated target. Type run the example after pasting it to test it on the fictional data built into the prompt.

Download .mdSKILL.mdExample CSV
# Rule of 40

You are a RevOps and FP&A lead reporting to the CFO. From starting and ending revenue over a YoY window and a profit figure, compute Rule of 40 = growth % + profit margin %, show how much of the score is growth vs margin, and show what growth or margin change alone would clear a stated target, with every number traceable to the extract.

## Rules

- Use only the data in this conversation. Do not invent Rule of 40 benchmarks, "healthy SaaS" cutoffs, or peer medians. If something is missing, ask for it, or use the fallback this prompt defines and label it as an assumption.
- Run the calculations in code if you can. If you cannot run code, say so at the top and show the working.
- Show the formula next to every headline number.
- The 40 is a common board target and an input here, not a law. Default it only when the user says "run the example".
- Name the margin: free cash flow margin (default), operating margin, or EBITDA margin. The formula is the same; the numerator changes. Do not call FCF margin "GAAP profit".
- Read only. Do not change anything in the ledger. Report what the numbers imply and leave the tradeoff to the user.
- Format: money to the nearest dollar, percentages and the score to one decimal.

## Definitions

- Starting revenue (or ARR) is the prior year. Ending revenue (or ARR) is the current year. Growth % = (ending - starting) / starting x 100. ARR is a snapshot; if the user gives ARR, label the growth as ARR growth, not recognized revenue growth.
- Profit margin % = profit / ending x 100. Default profit is free cash flow for the ending year. Operating income and EBITDA are allowed when the user names them. A loss is a negative profit.
- Rule of 40 score = growth % + margin %. Points below target = target - score (negative means above the target).
- Growth-only bridge: the growth % that hits the target holding margin fixed = target - margin %. Ending revenue at that growth = starting x (1 + that growth / 100).
- Margin-only bridge: the margin % that hits the target holding growth fixed = target - growth %. Profit at that margin = ending x that margin / 100.

## Step 0. Inputs

If the user says "run the example", use the EXAMPLE DATA section at the end of this prompt, do not ask any questions, and label every output "Example data (fictional)".

Otherwise ask for everything below in one message, skipping anything the user already gave:

1. A CSV of fiscal years, one row per year, with these columns (ask the user to map theirs):
   - fiscal_year, revenue, fcf, operating_income, ebitda
   Where to get it: the P&L and cash flow statement, or ARR from billing if they want an ARR version. Say which one you used.
2. Which two years are the YoY window. Default: the last two complete years in the file.
3. Which profit to use: fcf (default), operating, or ebitda.
4. The target score. Default 40 only if they ask you to pick; otherwise they name it.

Then report a data check: rows read; rows left out and why (duplicate year, no revenue); years kept; starting and ending revenue; profit used and which column it came from. Ask the user to confirm before going on, unless they said "run the example".

## Step 1. Score

- Growth % = (ending - starting) / starting x 100.
- Margin % = profit / ending x 100.
- Score = growth % + margin %.
- Growth-only: growth to clear, ending revenue at that growth, gap vs current ending.
- Margin-only: margin to clear, profit at that margin on current ending, gap vs current profit.

## Step 2. Output

Start with a five-line summary:

- Headline: "Rule of 40 is {score}: {growth} growth + {margin} {kind} margin, {points} points {below|above} a {target} target."
- Contribution: which of growth or margin is doing more of the work, as arithmetic, not a judgment.
- Growth-only: the ending revenue that would clear the target at today's margin.
- Margin-only: the profit that would clear the target at today's growth.
- One line: "Window {start} to {end}; profit is {kind}; {excluded} rows were left out."

Then these tables:

1. Data check
2. Score (starting, ending, profit, growth %, margin %, score, target, points below)
3. Bridges (growth-only ending and gap; margin-only profit and gap)
4. Assumptions, each labeled as an assumption, including: ARR vs recognized revenue; which profit; the target; history is not a forecast.

If you can create files, offer the score row as a CSV download.

## EXAMPLE DATA (fictional, for testing this prompt)

Use this only when the user says "run the example". The company and years are made up.

- Window: fiscal 2025 to fiscal 2026
- Profit: free cash flow (fcf column)
- Target 40 (example input, the namesake, not a law)

Years:

```csv
fiscal_year,revenue,fcf,operating_income,ebitda
2025,10000000,800000,400000,1500000
2026,12000000,1200000,900000,2100000
2026,12000000,1200000,900000,2100000
2024,0,0,0,0
```

How to run it

  1. Open Claude or ChatGPT with code execution on (Claude's analysis tool, ChatGPT data analysis). Without it the model does arithmetic by hand, and you should check every number.
  2. Paste the prompt. To test it first, send "run the example" and compare with the expected results below.
  3. Attach a CSV of fiscal years with revenue, FCF, operating income, and EBITDA, and give the prompt the two years, which profit to use, and your target. The prompt lists the columns.
  4. Read the data check first, then take the score, the growth vs margin split, and the two bridges to the board pack. Name the margin. Do not call FCF GAAP profit.

Before you paste P&L data

Revenue and profit are commercially sensitive. Check your company's AI and data policy, prefer a business or enterprise plan, and drop entity names you do not need: the prompt only needs years and amounts. It reads the extract and changes nothing in the ledger.

Expected results on the example data

A correct run of "run the example" should match these, give or take rounding. They are computed from the prompt's definitions by a reference implementation that is tested against hand-worked numbers. The data is fictional.

Data check
4 rows; window 2025 to 2026; left out: 2026 (duplicate fiscal year), 2024 (no revenue)
Growth
($12,000,000 - $10,000,000) / $10,000,000 = 20.0%
FCF margin and score
$1,200,000 / $12,000,000 = 10.0%; score 30.0; 10.0 points below 40
Bridges to 40
Growth-only ending $13,000,000 ($1,000,000 more); margin-only profit $2,400,000 ($1,200,000 more)
Expected Rule of 40
WindowGrowthFCF marginScorePoints belowGrowth-only endingMargin-only profit
2025 to 202620.0%10.0%30.010.0$13,000,000$2,400,000

ARR grows from $10,000,000 to $12,000,000 (20.0%) with $1,200,000 of FCF (10.0% margin). Score 30.0, 10.0 points below 40. Holding margin fixed, ending ARR would have to be $13,000,000. Holding growth fixed, FCF would have to be $2,400,000. Those are sizing numbers, not a forecast.

Rule of 40

Score = YoY growth % + profit margin %. Default profit is free cash flow; switch the label if you are using operating income or EBITDA. Prefilled with the fictional example.

Margin kind
Rule of 40 score
30.0
20.0% growth + 10.0% free cash flow margin
YoY growth
20.0%
($12,000,000 - $10,000,000) / $10,000,000
free cash flow margin
10.0%
$1,200,000 / $12,000,000
Points below the target
10.0
Target 40.0
Growth-only ending to clear
$13,000,000
30.0% growth holding margin fixed (+$1,000,000)
Margin-only profit to clear
$2,400,000
20.0% margin holding growth fixed (+$1,200,000)

If you enter ARR, the growth line is ARR growth, not recognized revenue. FCF margin is cash, not GAAP profit. Holding growth or margin fixed is a sizing device, not a forecast of what a price change or a cost cut would do. The 40 is an input.

Implementation steps

  1. 1

    Write the window and the profit definition down with finance: starting and ending revenue (or ARR) over a YoY year, and which profit is in the margin (free cash flow by default, or operating income, or EBITDA). ARR growth is not recognized-revenue growth; FCF margin is not GAAP profit. Put the labels on the tab

  2. 2

    Export two complete years with revenue, FCF, operating income, and EBITDA. Drop duplicate years and rows with no revenue, and list each dropped row

  3. 3

    Growth % = (ending - starting) / starting x 100. Margin % = profit / ending x 100, using the profit you named. Score = growth % + margin %. Points below the target = target - score (negative means above)

  4. 4

    Show the contribution: how many points came from growth vs from margin, as arithmetic, not as a verdict on which is better

  5. 5

    Growth-only bridge, holding margin fixed: the growth % that hits the target = target - margin %. Ending revenue at that growth = starting x (1 + that growth / 100). Margin-only bridge, holding growth fixed: the margin % that hits the target = target - growth %. Profit at that margin = ending x that margin / 100

  6. 6

    The 40 is a common board target and an input (40 in the fictional example). If the score is already above, the bridges show how far ending revenue or profit could fall and still hit. Those are sizing numbers, not a forecast

  7. 7

    Run it with the copy-paste prompt on this page in Claude or ChatGPT, or with formulas in the template, and use the calculator on this page to test FCF vs operating vs EBITDA and other targets. Share the score, the split, and the two bridges with the CFO

  8. 8

    Rerun each year when the books close, and optionally each quarter on a trailing twelve-month window using the same profit definition, and store the score so a growth slowdown or a margin recovery shows up in the next board pack

Template outline

The structure to recreate in your own workspace. Field names and thresholds are starting points.

Google Sheet: Rule of 40 FYxx (Finance owns it)

Tab inputs: start_year, end_year, margin_kind (fcf / operating / ebitda), target (default 40, an input)

Tab years (one row per fiscal year):
  fiscal_year, revenue, fcf, operating_income, ebitda
  kept = unique year AND revenue > 0
  profit = the column named by margin_kind on the ending year

Tab score:
  growth_pct = (ending - starting) / starting x 100
  margin_pct = profit / ending x 100
  score = growth_pct + margin_pct
  points_below = target - score
  growth_to_clear = target - margin_pct
  ending_at_growth = starting x (1 + growth_to_clear / 100)
  margin_to_clear = target - growth_pct
  profit_at_margin = ending x margin_to_clear / 100

Worked example (example data, fictional): 2025 to 2026, FCF, target 40
  4 rows read, 2 kept. Left out: 2026 listed twice; 2024 no revenue.
  Starting $10,000,000. Ending $12,000,000. Growth 20.0%.
  FCF $1,200,000 / $12,000,000 = 10.0% margin. Score 30.0. 10.0 points below 40.
  Growth-only: need 30.0% growth. Ending $13,000,000 ($1,000,000 more).
  Margin-only: need 20.0% FCF margin. Profit $2,400,000 ($1,200,000 more).

Calculator on this page, prefilled: starting $10,000,000, ending $12,000,000, FCF $1,200,000, target 40. Every money line above matches.

Slack to #finance after year close:
"Rule of 40 {{end_year}}: {{score}} ({{growth}} growth + {{margin}} {{kind}}).
 {{points}} vs {{target}}. Growth-only ending {{ending_at_growth}}; margin-only profit {{profit_at_margin}}.
 Sheet: {{sheet_url}}"

Tab history: year, growth, margin, score, target, points_below

Cost, time saved, and break-even

Tool cost here is your share of an LLM plan, which depends on your vendor, so it is an input. Every number below is an example input; replace each with your own figure.

Inputs (all assumptions)

Replace each value with your own figure.

  • THours a quarter to pull a trailing-twelve-month P&L window and compute Rule of 40 by hand, including a couple of scenarios3AssumptionTime the next board-pack Rule of 40 slide.
  • VHours a quarter with the prompt or template (export, review the data check and the results)0.5AssumptionTime the first two quarterly runs.
  • RLoaded hourly cost of the FP&A analyst$75AssumptionSalary plus benefits, divided by working hours.
  • KMonthly tool cost for the LLM plan$20AssumptionYour share of the Claude or ChatGPT plan, from current vendor pricing and your invoices; Google Sheets and Slack are usually already paid for.

Formulas

Time saved per quarterT - V
3 - 0.5 = 2.5 hours
Time saved per week(T - V) / 13
2.5 / 13 = 0.2 hours
Value of time saved per quarter(T - V) x R
2.5 x $75 = $187.50
Tool cost per quarterK x 3
$20 x 3 = $60
Break-even hours per quarterK x 3 / R
$60 / $75 = 0.8 hours, so the run covers its tool cost once it saves 48 minutes a quarter
Rule of 40 (fictional example data)growth % + FCF margin %
20.0 + 10.0 = 30.0; 10.0 points below a 40 target
  • The time math counts analyst time only. A growth or margin change that moves the score is a much larger number, but that decision is yours, so it is not added to the time savings.
  • Holding growth or margin fixed is a sizing device. Recheck when the books close.
  • Rerun the time math after the first two years with your real review time V.

Common questions

How do you calculate Rule of 40?
Score = YoY revenue growth % + profit margin %. In the fictional example ARR grows from $10,000,000 to $12,000,000 (20.0%) and FCF is $1,200,000 (10.0% of ending), so the score is 30.0. The 40 is a target you set, not a law.
Which profit margin should I use?
This page defaults to free cash flow margin (FCF / ending revenue). Operating margin and EBITDA margin use the same formula with a different numerator. Name which one you used. FCF is cash, not GAAP profit, and is not ASC 606 revenue.
What if we are below 40?
Show two sizing bridges, each holding the other number fixed. In the fictional example, 10.0 points below 40: growth would have to be 30.0% (ending $13,000,000) at today's margin, or FCF margin 20.0% (profit $2,400,000) at today's growth. That is not a forecast of a price change or a cost cut.
Is ARR growth the same as revenue growth?
No. ARR is a snapshot of contracted recurring revenue. Recognized revenue follows the books, including deferred amounts. If you enter ARR, label the growth line as ARR growth. The fictional example uses ARR as the revenue stand-in and says so.
Does a score above 40 mean we should grow slower or spend more?
The score does not decide that. If you are above the target, the bridges show how far ending revenue or profit could fall and still hit. The tradeoff is yours. This page does not treat 40 as a ceiling or a floor other than the input you type.

Keep going

View all Finance/FP&A

Need help implementing a playbook?

Our team builds custom Clay workflows and AI automations for revenue teams.

Get it built for you