Compute the SaaS Magic Number so Blended CAC Stops Answering "Are We Efficient?"
The problem
Boards ask "are we efficient?" and finance answers with a blended CAC or burn multiple that hides whether last quarter's S&M actually produced enough net-new ARR to justify the spend.
Run it in your LLM
One prompt for Claude or ChatGPT that turns a period of net-new ARR and S&M spend into the efficiency number a board pack asks for: did last quarter's sales and marketing produce enough net-new ARR to justify the spend. Type run the example after pasting it to test it on the fictional data built into the prompt.
# SaaS Magic Number
You are a RevOps and FP&A lead reporting to the CFO. From net new ARR and sales and marketing spend for the same period, compute the quarterly Magic Number, say which labeled band it sits in, and show how much net-new ARR or S&M would have to change to hit a stated target, with every number traceable to the extract.
## Rules
- Use only the data in this conversation. Do not invent Magic Number benchmarks, efficiency targets, or "healthy SaaS" rules. 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 0.5 / 0.75 bands used on this page are labeled assumptions, not industry facts. The target comes from the user. Do not treat 0.75 or 1.0 as a rule.
- Read only. Do not change anything in the ledger or the budget. Report what the numbers imply and leave the spend decision to the user.
- Format: money to the nearest dollar, Magic Number to two decimals.
## Definitions
- Net new ARR for the period = new-logo ARR + expansion ARR - contraction ARR - churn ARR. New-logo ARR is first-year recurring from customers who were not in the book at the start. Expansion, contraction, and churn follow the same definitions as the NRR bridge. One-time fees are out. If finance uses a different net-new definition (new logos only, or bookings instead of ARR), use theirs, write it at the top, and do not mix it with this one.
- S&M spend is fully loaded sales and marketing cost for the same period from the ledger (program spend plus people), not from ad-platform dashboards alone. Same-period S&M is the headline. Lagged S&M (this period's net-new / prior period's S&M) is an optional extra line, labeled as a definition choice, because some board packs lag spend one quarter.
- Magic Number (quarterly convention) = (Net New ARR x 4) / S&M spend. The x4 annualizes a quarter of net-new against that period's S&M. If the row is a month, still use x4 so the number stays on the quarterly scale; do not multiply a month by 12 and then score it against 0.75. Also report the calendar-year run-rate = (Net New ARR x 12 / period months) / S&M, labeled, so a monthly input is not silent.
- Labeled bands (assumptions on this page, not benchmarks): under 0.5 inefficient; 0.5 to 0.75 ok; above 0.75 strong.
## 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 periods, one row per month or quarter, with these columns (ask the user to map theirs):
- period (id, for example 2026-Q3), period_months (1 or 3), new_logo_arr, expansion_arr, contraction_arr, churn_arr, sm_spend
Where to get it: billing or the NRR bridge for the ARR components; the P&L for S&M. Contraction and churn are positive numbers for ARR lost.
2. Which period to score. Default: the last complete quarter in the file.
3. The target Magic Number. There is no default; do not suggest a number. If they want a target, they name it.
4. Whether to also show lagged S&M (this period's net-new against the prior period's S&M). Default: no, unless they ask.
Then report a data check: rows read; rows left out and why (duplicate period, period_months not 1 or 3, missing S&M, ARR components not numbers); periods kept; net new ARR of the scored period with the four components shown. Ask the user to confirm before going on, unless they said "run the example".
## Step 1. Magic Number
For the scored period:
- Net new ARR = new + expansion - contraction - churn.
- Magic Number = (net new ARR x 4) / S&M.
- Calendar-year run-rate = (net new ARR x 12 / period_months) / S&M.
- Band from the labeled assumptions above.
- Net-new ARR that would hit the target at this S&M = target x S&M / 4. Gap = that minus current net-new (positive means more net-new needed this period).
- S&M that would hit the target at this net-new = net new ARR x 4 / target. Gap = current S&M minus that (positive means spend would have to fall).
If lagged S&M was requested and a prior period exists: lagged Magic Number = (this net-new x 4) / prior S&M, labeled as lagged, not as the headline.
## Step 2. Output
Start with a five-line summary:
- Headline: "Magic Number {mn} on {period} net-new {nnarr} / S&M {sm}; {band} on this page's labeled bands."
- Where it sits vs the target: points or dollars, without arguing for a cut.
- What would hit the target: extra net-new ARR this period, or the S&M cut, at the current other number.
- Annualization: "x4 quarterly convention; calendar-year run-rate {yearRunRate}."
- One line: "Period {period}, {period_months} months; {excluded} rows were left out."
Then these tables:
1. Data check
2. Scored period (components, net new, S&M, Magic Number, year run-rate, band, target, ARR gap, S&M gap)
3. Lagged line if requested
4. Assumptions, each labeled as an assumption, including: net-new definition; same-period S&M; x4 convention; the 0.5 / 0.75 bands; history is not a forecast.
If you can create files, offer the scored 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 periods are made up.
- Score 2026-Q3 (3 months)
- Target Magic Number 0.75 (example input, not a benchmark)
- Same-period S&M for the headline. Also show the lagged line against 2026-Q2 S&M so the two definitions sit next to each other.
Periods:
```csv
period,period_months,new_logo_arr,expansion_arr,contraction_arr,churn_arr,sm_spend
2026-Q2,3,200000,50000,20000,10000,1200000
2026-Q3,3,180000,90000,15000,15000,1600000
2026-Q3,3,180000,90000,15000,15000,1600000
BAD-1,3,100000,0,0,0,
YR-1,12,500000,0,0,0,2000000
```
How to run it
- 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.
- Paste the prompt. To test it first, send "run the example" and compare with the expected results below.
- Attach a CSV of periods with new-logo, expansion, contraction, and churn ARR plus S&M spend, and give the prompt which period to score and your target Magic Number. The prompt lists the columns.
- Read the data check first, then take the Magic Number, the labeled band, and the ARR or S&M gap to the finance review. Keep the lagged-S&M line labeled if you show it.
Before you paste P&L data
ARR and S&M by period are commercially sensitive. Check your company's AI and data policy, prefer a business or enterprise plan, and drop customer names: the prompt only needs period ids 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
- 5 rows; scored 2026-Q3; left out: 2026-Q3 (duplicate period), BAD-1 (no S&M spend), YR-1 (period_months must be 1 (month) or 3 (quarter))
- Net new ARR
- new $180,000 + expansion $90,000 - contraction $15,000 - churn $15,000 = $240,000
- Magic Number
- ($240,000 x 4) / $1,600,000 = 0.60; ok on the labeled bands
- To hit 0.75
- $60,000 more net-new this quarter ($300,000), or S&M down $320,000 to $1,280,000
| Period | Net new ARR | S&M | Magic Number | Band | ARR gap | S&M gap |
|---|---|---|---|---|---|---|
| 2026-Q3 | $240,000 | $1,600,000 | 0.60 | ok | $60,000 | $320,000 |
Q3 net-new is $240,000 on $1,600,000 of S&M, Magic Number 0.60, in the 0.5 to 0.75 band this page labels ok (an assumption). Hitting 0.75 needs $60,000 more net-new this quarter or a $320,000 S&M cut. Lagged against Q2 S&M of $1,200,000 the same net-new is 0.80; that is a different definition, so it is not the headline.
SaaS Magic Number
Magic Number = (Net New ARR x 4) / S&M for the same period. The x4 is the quarterly convention, including when the period is a month, so the labeled bands still apply. Prefilled with the fictional example.
- Magic Number
- 0.60
- ($240,000 x 4) / $1,600,000
- Efficiency read
- ok
- 0.5 to 0.75, labeled ok (assumption)
- Gap to the target
- 0.15
- Target 0.75
- More net-new ARR to hit the target
- $60,000
- Need $300,000 this quarter at today's S&M
- S&M would have to fall
- $320,000
- S&M at the target $1,280,000 at today's net-new
- Calendar-year run-rate
- 0.60
- (Net new x 4) / S&M, same as the Magic Number for a quarter.
Net new ARR is new logos plus expansion minus contraction minus churn for this period, unless you enter a different finance definition. S&M is the same period. The 0.5 and 0.75 bands are labels on this page, not benchmarks. A Magic Number is not a forecast of what more or less spend would produce.
Implementation steps
- 1
Write the definitions down with finance before pulling data: net new ARR for the period = new-logo ARR + expansion - contraction - churn, the same components as the NRR bridge, with no one-time fees; S&M is fully loaded sales and marketing from the ledger for the same period. If finance uses new logos only, or lagged S&M (this period's net-new over last period's spend), write that at the top and do not mix it with the headline
- 2
Export the period (a quarter unless you are scoring a month) with the four ARR components and S&M. Drop duplicate periods, rows whose period length is not 1 or 3 months, rows with no S&M, and non-numeric ARR, and list each dropped row
- 3
Compute net new ARR from the four components. Magic Number = (Net New ARR x 4) / S&M. The x4 is the quarterly convention: it annualizes a quarter of net-new against that period's S&M. If the row is a month, still use x4 so the number stays on that scale; do not multiply a month by 12 and then score it against 0.75
- 4
Also compute the calendar-year run-rate = (Net New ARR x 12 / period months) / S&M, and label it. For a quarter it equals the Magic Number. For a month it is three times larger on the same run-rate, which is why it is not the scored figure
- 5
Place the Magic Number on this page's labeled bands (assumptions, not benchmarks): under 0.5 inefficient, 0.5 to 0.75 ok, above 0.75 strong. Compare it to your target (0.75 in the fictional example, an input). Net-new that would hit the target at today's S&M = target x S&M / 4. S&M that would hit it at today's net-new = net new x 4 / target
- 6
If the board pack lags spend, compute a second line: (this period's net-new x 4) / prior period S&M, labeled lagged. Do not let it replace the same-period headline
- 7
Run it with the copy-paste prompt on this page in Claude or ChatGPT, or with formulas in the template, check S&M against the ledger, and use the calculator on this page to test other targets and a month vs a quarter. Share the Magic Number, the labeled band, and the ARR or S&M gap with the CFO; keep the gap as a sizing device, not a hiring plan
- 8
Rerun each quarter on the same definitions and store Magic Number, net-new, and S&M so a mix shift or a cost change 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: SaaS Magic Number FYxx (Finance owns the P&L tab; RevOps maintains the ARR components)
Tab inputs: score_period, target (your target, not a benchmark), lag_sm (yes/no)
Tab periods (one row per month or quarter):
period, period_months (1 or 3), new_logo_arr, expansion_arr, contraction_arr, churn_arr, sm_spend
kept = unique period AND period_months in {1, 3} AND sm_spend > 0 AND ARR components are numbers
net_new = new_logo_arr + expansion_arr - contraction_arr - churn_arr
Tab scored:
magic_number = (net_new x 4) / sm_spend
year_run_rate = (net_new x 12 / period_months) / sm_spend
band = IF(magic_number < 0.5, "inefficient", IF(magic_number <= 0.75, "ok", "strong")) // labeled assumptions
net_new_at_target = target x sm_spend / 4
arr_gap = net_new_at_target - net_new
sm_at_target = net_new x 4 / target
sm_gap = sm_spend - sm_at_target
lagged = IF(lag_sm, (net_new x 4) / prior_sm, "")
Worked example (example data, fictional): score 2026-Q3, target 0.75
5 rows read, 2 kept (Q2 and Q3). Left out: 2026-Q3 listed twice; BAD-1 no S&M; YR-1 period_months 12.
Q3: new $180,000 + expansion $90,000 - contraction $15,000 - churn $15,000 = $240,000 net-new.
S&M $1,600,000. Magic Number = $240,000 x 4 / $1,600,000 = 0.60.
Band: 0.5 to 0.75, labeled ok (assumption). Calendar-year run-rate 0.60 (same, it is a quarter).
Net-new at 0.75 = 0.75 x $1,600,000 / 4 = $300,000. Gap $60,000 more this quarter.
S&M at 0.75 = $240,000 x 4 / 0.75 = $1,280,000. Spend would have to fall $320,000.
Lagged against Q2 S&M $1,200,000: $240,000 x 4 / $1,200,000 = 0.80 (a different definition; not the headline).
Calculator on this page, prefilled: quarter, net-new $240,000, S&M $1,600,000, target 0.75. Every money line above matches.
Slack to #finance-revenue after each quarter closes:
"Magic Number {{period}}: {{mn}} on {{net_new}} net-new / {{sm}} S&M ({{band}} on the labeled bands).
Target {{target}}: {{arr_gap}} net-new or {{sm_gap}} S&M. Sheet: {{sheet_url}}"
Tab history: period, net_new, sm, magic_number, band, arr_gap, sm_gapCost, 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 net-new ARR and S&M and compute Magic Number by hand5AssumptionTime the next board-pack efficiency slide.
- VHours a quarter with the prompt or template (export, review the data check and the results)1AssumptionTime the first two quarterly runs.
- RLoaded hourly cost of the FP&A or RevOps 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; the CRM, Google Sheets, and Slack are usually already paid for.
Formulas
- Time saved per quarter
T - V - 5 - 1 = 4 hours
- Time saved per week
(T - V) / 13 - 4 / 13 = 0.3 hours
- Value of time saved per quarter
(T - V) x R - 4 x $75 = $300
- Tool cost per quarter
K x 3 - $20 x 3 = $60
- Break-even hours per quarter
K x 3 / R - $60 / $75 = 0.8 hours, so the run covers its tool cost once it saves 48 minutes a quarter
- Magic Number (fictional example data)
(net new ARR x 4) / S&M - $240,000 x 4 / $1,600,000 = 0.60; $60,000 more net-new would hit a 0.75 target
- The time math counts analyst time only. Changing S&M based on the gap can be a much larger number, but that decision is yours, so it is not added to the time savings.
- A Magic Number is not a forecast. A price change, a mix shift, or a one-off expansion can move net-new without S&M changing. Recheck each quarter.
- Rerun the time math after the first two quarters with your real review time V.
Common questions
- How do you calculate the SaaS Magic Number?
- Magic Number = (Net New ARR x 4) / S&M spend for the same period. In the fictional example Q3 net-new is $240,000 and S&M is $1,600,000, so $240,000 x 4 / $1,600,000 = 0.60. Net new ARR is new logos plus expansion minus contraction minus churn unless finance uses a different definition.
- Should I annualize a month with x12?
- Not for the scored Magic Number. This page keeps x4 for a month so the figure stays on the quarterly scale the labeled bands use. x12 on the same run-rate is three times larger (1.80 vs 0.60 in a month that is one third of the example quarter) and is shown as the calendar-year run-rate, not as the Magic Number.
- Is 0.75 a healthy Magic Number?
- It is an assumption on this page, not a benchmark. The labeled bands are under 0.5 inefficient, 0.5 to 0.75 ok, and above 0.75 strong. The fictional example uses a 0.75 target so the $60,000 ARR gap and the $320,000 S&M cut are visible. Use your own target.
- Same-period S&M or lagged S&M?
- The headline uses S&M from the same period as the net-new. Some board packs divide this quarter's net-new by last quarter's S&M because spend comes before the ARR. In the fictional example that lagged line is 0.80 against Q2 S&M of $1,200,000. Show it as a second definition, not as a replacement.
- How much net-new ARR would hit the target?
- Net-new at the target = target x S&M / 4. In the fictional example 0.75 x $1,600,000 / 4 = $300,000, so $60,000 more net-new this quarter at today's spend, or S&M of $1,280,000 at today's net-new. Those are sizing numbers, not a forecast of what more spend would produce.
Keep going
Related playbooks
- Finance/FP&AIntermediate
Calculate CAC Payback by Acquisition Channel and Find the Ones That Never Pay Back
CAC is usually reported as one blended number, or per channel from ad spend alone, so a channel that costs more in SDR salaries and event fees than its customers will ever earn back in gross margin looks fine in the average, and finance only learns it when the budget is already spent.
HubSpot or SalesforceGoogle SheetsClaude or ChatGPT+1Estimate: 0.5 hrs/week - Finance/FP&AIntermediate
Measure LTV:CAC by Segment so Blended Payback Stops Hiding the Ones That Never Pay Back
Blended LTV:CAC hides that some segments never pay back while others carry the business, so budget and SDR time keep funding the wrong ones.
HubSpot or SalesforceGoogle SheetsClaude or ChatGPT+1Estimate: 0.4 hrs/week - Finance/FP&AIntermediate
Check Pipeline Coverage with Historical Conversion, Not Rep Probability
Pipeline coverage is usually reported as open pipeline over quota, or weighted by the probability reps enter in the CRM, so a quarter can look covered at 3x while the deals, at the rates they have actually closed in the past, fall well short of the number, and finance finds out late in the quarter.
HubSpot or SalesforceGoogle SheetsZapier or n8n+1Estimate: 2 hrs/week - Finance/FP&AIntermediate
Build a Net and Gross Revenue Retention Bridge from Billing Data
Net revenue retention is often one number pulled from a dashboard with no bridge behind it, so nobody can say how much came from expansion, how much leaked to seat drops and downgrades, and how much was lost to churn, and a customer that moved to a new billing account shows up as churn plus a new logo.
StripeHubSpot or SalesforceGoogle Sheets+2Estimate: 1 hrs/week - Finance/FP&AIntermediate
Compute the SaaS Burn Multiple so the Board Sees Dollars of Net Burn per Dollar of Net-New ARR
Boards ask how efficiently cash is turning into growth, and finance answers with a cash-down number that mixes a fundraise into the story, or with a blended CAC that never shows how many dollars of net burn it took to add a dollar of net-new ARR.
Google SheetsClaude or ChatGPTSlackEstimate: 0.3 hrs/week - Finance/FP&AIntermediate
Compute the SaaS Quick Ratio so Growth Quality Is Visible, Not the Balance-Sheet Quick Ratio
Boards hear "we grew" without seeing whether new-plus-expansion ARR outran churn-plus-contraction, and some packs paste the balance-sheet quick ratio (current assets minus inventory, over current liabilities) onto a SaaS slide by mistake.
Google SheetsClaude or ChatGPTSlackEstimate: 0.2 hrs/week - Finance/FP&AIntermediate
Compute Rule of 40 so Growth and Margin Are One Board Number, Not Two Stories
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.
Google SheetsClaude or ChatGPTSlackEstimate: 0.2 hrs/week
Need help implementing a playbook?
Our team builds custom Clay workflows and AI automations for revenue teams.
Get it built for you