How to calculate CAC and payback period
Calculate CAC and payback period with a few customers and almost no ad spend: one sheet of dollars and hours by channel, a 5-minute daily log, and a Sunday rule for where your money and hours go next.
ByDinesh BypillaReviewed byMurali SidLast checked 15 min read
You have spent some money and a lot of hours on marketing, you have a few paying customers, and you cannot tell which of it worked or whether you can afford to spend more. This guide shows how to calculate CAC (what it costs you to win one paying customer) and payback period (how many months that customer takes to earn it back) when your numbers are small. Without them, you keep paying for the channel that feels busy, and the money runs out before you find the one that pays.
Do these three things
About 2 hours 30 minutes today, 5 minutes a day, and 30 minutes every Sunday. Judge a channel once it has brought 3 paying customers, or once its full test is done.
Show the three actions in fullHide the full list
- Today: fill one sheet with the last 90 days: every dollar and every hour you spent to win customers, split by channel, and every new paying customer with where they came from.
- Every day: add today's dollars, hours and new paying customers to the sheet, with where each customer came from. It takes 5 minutes.
- Every Sunday: work out each channel's CAC and payback period. Put money only where it pays back in 6 months or less, and give more hours to the channel with the fewest hours per new customer.
Get help doing these
ChatGPT or Claude reads this guide and works through it with you.
1. Write down every dollar and hour you spent to win customers
Your CAC starts with one list: every dollar and every hour you spent in the last 90 days to win new customers, split by channel. Do it today, then add to it every day.
Make one row per channel: each kind of personal message, each ad platform, each community, your pages for search, events, referrals. For each row, write two things.
- Dollars: ads, tools, freelancers, free samples, event tickets, referral rewards and sales commissions. Take them from your bank and card statements, not from memory. Paid creators and affiliates count here too.
- Hours: the time you spent on that channel. Your calendar, your sent folder and your ad account history will tell you most of it.
Leave out what you would pay anyway: hosting, support, building the product. Stripe's own guide says the same: CAC does not include support, servers or product work. A tool that helps several channels, such as ChatGPT, goes on one "Shared" row.
Then put a price on your hours. Use what you would pay someone else to do the same work. If you do not know, use $50 an hour, the rate HubSpot's guide for startups uses for founder time. Your hours are most of your marketing budget at this size. Leave them out and every channel you do yourself looks free.
Let AI build the sheet. Paste your statements and the template below into ChatGPT or Claude and ask for a Google Sheet with one row per channel and the sums filled in. Check every number it uses against a statement.
Hourly rate: $[what you would pay someone else, or 50]Date | Channel | Dollars | Hours | What it was [date] | [channel] | $[ ] | [ ] | [ads / tool / samples / messages / posts / calls]Shared tools (used by several channels): $[ ] a month
From tomorrow, add one line per channel at the end of each day: what you spent and how long you worked on it. That is the daily 5 minutes.
- Tool: Google Sheets, and ChatGPT or Claude to build it. Both free to start.
- Time: 1 hour today, then 5 minutes a day.
- You will have: a sheet with 90 days of dollars and hours for every channel.
- It worked if: your dollar total matches your bank and card statements to within $10, and there are hours for every day you worked on marketing or sales.
- Common mistake: leaving your own hours out because "outreach is free". Then a channel that took 4 hours a day looks better than an ad that cost $100.
See it done: Bugmoth's first 4 weeks of dollars and hours
Bugmoth is a made-up bug-reporting tool for small web teams. It costs $19 a month per team, with a 14-day trial.
4 weeks, by channel
| Channel | Dollars | Hours |
|---|---|---|
| Personal messages | $0 | 98 |
| Answers in communities | $0 | 28 |
| Launch | $0 | 12 |
| A page a day for search | $0 | 28 |
| Shared tools (ChatGPT, inbox, domain) | $30 | – |
| Total | $30 | 166 |
Hourly rate: $50.
Why it works: Almost all of the cost is hours, so leaving them out would hide where the work really went.
2. Count your new paying customers and where each came from
Count the new paying customers you won in the same 90 days, from your own records, and write down where each one came from. Only people who paid count.
Take the count from where the money arrives, not from an ad platform.
If you run a SaaS: open the Billing overview in Stripe and read "New subscribers". Stripe counts only paid subscribers there, not trials. A free trial becomes a customer the day it turns into a payment.
If you run a D2C store: in Shopify, open Analytics, then Reports, then "New customers over time". A new customer is someone placing their first order.
If you run a B2B company or an agency: count first invoices or signed deals from your sales sheet or CRM. A proposal or a call is not a customer yet.
Then give each customer a source. Ask them. Add one free-text question to your signup form, your checkout or your first call. This is self-reported attribution, and with a few customers it is often the best you have. Next to it, tag every link you share with UTM parameters, so your analytics shows where visits came from too. If an answer says "ChatGPT" or "Google", note it: AI answers now send buyers that no ad tool will show you.
How did you hear about us? [free text box, required]
Do not use the ad platform's count of sales. Each platform counts in its own way, and the rules change. On 12 January 2026, Meta stopped reporting sales in its 7-day and 28-day "view" windows, so reports that used them now show fewer sales, with no change in real orders. Use conversion tracking to steer the ads, and your own records to count customers.
From tomorrow, add each new paying customer to the sheet the day they pay, with their answer to the question.
Date paid | Customer | Source (their words) | Channel | First payment or order $
- Tool: Stripe, Shopify or your invoices, and Google Sheets.
- Time: 30 minutes today, then part of the daily 5 minutes.
- You will have: a list of every new paying customer in 90 days, each with a date and a channel.
- It worked if: your count matches Stripe, Shopify or your invoices exactly, and every customer has one channel.
- Common mistake: counting signups, trials, leads or booked calls as customers. HubSpot's guide for startups names it as a common CAC error. It makes CAC look several times smaller than it is.
3. Calculate your CAC for each channel
To calculate CAC, divide what a channel cost by the new paying customers it brought. Do it twice for each channel: once with dollars only, and once with your hours added.
Each number answers a different question. Cash CAC tells you whether your money is coming back. Full CAC tells you what a channel would cost if you paid someone to do it, and which channel gets the most customers per hour.
Cash CAC = $[dollars spent on this channel] ÷ [new paying customers from it]Full CAC = ($[dollars] + [hours] × $[your rate]) ÷ [new paying customers from it]All channels: add the shared tools to the dollars, and use all new paying customers.
Three rules keep the numbers honest:
- A channel with no paying customer has no CAC yet. Write "none yet", not $0.
- Under 3 paying customers, write "too early" next to it. One customer more or less halves or doubles the number. Judge that channel by how much you did instead: 2,800 messages for outreach, month 3 for search, and month 6 for search CAC.
- Shared tools go only in the all-channels total.
The fix for noisy numbers is more customers, and more customers come from more volume. At 100 messages a day, by email and LinkedIn, outreach has had 2,800 tries after 4 weeks. At 10 a day, the same test takes 9 months, and your CAC stays a guess the whole time.
- Tool: Google Sheets.
- Time: 15 minutes.
- You will have: a cash CAC and a full CAC for each channel, and for all channels together.
- It worked if: every channel shows two numbers, "none yet" or "too early", and your total dollars divided by total customers gives the same total cash CAC as the sheet.
- Common mistake: dividing by signups. If 12 signups make 1 paying customer, your CAC is 12 times what that sum shows.
See it done: Bugmoth's CAC by channel
4 weeks, at $50 an hour
| Channel | New paying teams | Cash CAC | Full CAC |
|---|---|---|---|
| Personal messages | 4 | $0 | $1,225 |
| Answers in communities | 1 | $0 | $1,400 (too early) |
| Launch | 0 | none yet | none yet |
| A page a day for search | 0 | none yet | none yet (judge at month 3) |
| All channels | 5 | $6 | $1,666 |
Why it works: Cash CAC says the money is fine. Full CAC shows that the real cost is hours.
4. Work out what one customer leaves you each month
Payback is measured against profit, not price. So write down what one customer leaves you each month after what it costs you to serve them.
Use last month's bills and your payment tool's fee page. Stripe charges 2.9% + 30¢ per US card payment, plus 0.7% if you use Stripe Billing for subscriptions. Shopify Payments charges 2.9% + 30¢ online on the Basic plan.
SaaS: monthly price − (hosting + AI use + email + payment fees for one customer) = $[ ] a monthD2C store: first order − (product + packing + shipping you pay + payment fees + returns) = $[ ] per orderB2B: first order − (what it costs you to make and deliver it) = $[ ] per orderAgency: monthly fee − (contractors and tools for that client) = $[ ] a month
You may have this number already. Your SaaS price worksheet has the monthly cost of one customer, a store's price check has what one order leaves, and a B2B price sum has the profit on one order or project. For an agency, it is what is left of your monthly fee after contractors.
- Tool: your bills, your payment tool's pricing page, and Google Sheets.
- Time: 30 minutes.
- You will have: one dollar number: what one customer leaves you each month, or on each order.
- It worked if: every line comes from a bill, an invoice or a fee page, and none says "about".
- Common mistake: using the price. A $49 order that leaves $22 can only pay back $22 of CAC.
5. Calculate your CAC payback period in months
Your CAC payback period is your CAC divided by what one customer leaves you each month. It is the number of months before that customer has paid back what you spent to win them.
Cash payback = cash CAC ÷ $[left each month] = [ ] monthsFull payback = full CAC ÷ $[left each month] = [ ] months
For scale: in Aleph's 2026 benchmarks of software companies, which measure payback on MRR after costs, the middle company took 16 months to earn back its CAC, and the best quarter took 6 months or less. You do not have 16 months of cash to wait, so use 6 months as your line for any channel you pay money for.
Then check it against how long customers stay. If customers leave after 5 months, a payback of 8 months loses money on every one. With 2 or 3 customers you do not know your churn rate yet, so use 6 months as the stay until you do, the same rule your SaaS marketing budget uses. Keeping customers longer is the other way to make payback work: reduce churn.
If you run a D2C store or sell one-off B2B orders: count payback in orders, not months. Divide CAC by what one order leaves you. Aim for 1: the first order pays back what you spent to win that customer. If it takes 2, check the "New vs returning customers" report in Shopify, or your invoices, to see how many customers really order again before you count on it. To win more second orders, work on repeat customers first. For ads, the same sum gives your break-even ROAS.
If you run an agency: keep full CAC under one month of a client's fee, the limit from your agency marketing budget. That is a payback of 1 to 2 months. If clients leave in under 3 months, keep them longer before you spend more to win new ones.
If the full payback is years long on every channel, the problem is usually your price, not your marketing. A higher price shortens payback on every channel at once.
- Tool: Google Sheets.
- Time: 15 minutes.
- You will have: a cash payback and a full payback for every channel that has a CAC.
- It worked if: you can say for each channel whether it is under 6 months, 6 to 12, or over 12.
- Common mistake: working out payback on price instead of profit. It makes every channel look faster than it really is.
See it done: Bugmoth's payback
Each team leaves $19 − $1.70 = $17.30 a month
| What | CAC | Payback |
|---|---|---|
| All channels, cash only | $6 | under 1 month |
| Personal messages, with hours | $1,225 | about 71 months |
| All channels, with hours | $1,666 | about 96 months |
| Paid search, from their ad maths | about $2,160 | about 125 months |
Why it works: Cash payback is under a month, but the hours take years to earn back at $19, which points at the price.
6. Every Sunday, move money and hours using your payback
Every Sunday, update the sheet, work out CAC and payback again, and use the rules below to decide where next week's money and hours go. Write the decision next to each channel.
Money (use cash payback): Under 6 months: keep it. You can add money next week. 6 to 12 months: keep the money where it is. Fix the price or the page before you add more. Over 12 months, or longer than customers stay: stop paying for it. A paid test with no paying customer after spending 10 × the most you can pay per signup or enquiry: stop it. Hours (use hours per new paying customer): Give more hours to the channel with the fewest hours per customer. Only judge a channel once its test is done: 2,800 messages for outreach, month 3 for search pages. "Too early" channels keep their hours until the test is done.
The 10 times rule is the limit for your first ad test, where you also work out the most you can pay per result. Before you add money to a channel in the 6 to 12 month lane, fix the page it sends people to or raise your price: both shorten payback without more spend. Never add money because the ad platform's own number looks good. A ROAS of 4 in Meta means little if your sheet shows no new customers from it. If ads bring clicks and no customers, fix that first.
If you run a SaaS: at a low monthly price, paid search rarely passes the 6-month line. A click cost $5.42 on average in LocaliQ's 2026 search ad benchmarks, and it takes many clicks to get one paying customer. Keep ads at $0 until about 10 customers have paid, then test Google Ads with a cap.
If you run a B2B company: count samples, trade show costs and travel as dollars, and your calls and quotes as hours. A trade show can look cheap until you count the hours. Before you test LinkedIn ads, check that the profit on one first order is more than the most you would pay to win a client.
If you run a D2C store: if Meta ads need more than the first order to pay back, try small creators paid in product, or raise order value, before you add ad money.
Once a month, take the sheet to your monthly marketing review. If CAC rises for two months in a row on every channel, read how to get growth moving again. When one channel clearly works, choose the next one to add.
- Tool: Google Sheets.
- Time: 30 minutes every Sunday.
- You will have: next week's money and hours written next to every channel.
- It worked if: every channel is marked add, hold, stop or too early, with the rule that decided it.
- Common mistake: cutting a channel after one week or 50 messages. The other is adding ad money because the platform reports sales your own sheet cannot find.
See it done: Bugmoth's Sunday decision
Next week
| Channel | What the sheet says | Decision |
|---|---|---|
| Personal messages | 24.5 hours per team, the fewest | Keep 100 messages a day |
| Answers in communities | 28 hours per team, too early | Keep 1 hour a day |
| A page a day for search | Judge at month 3 | Keep 1 page a day |
| Paid search | About 125 months payback | Stay at $0 |
| Price | 71 months full payback at $19 | Test $29 for new teams |
Why it works: Each decision follows a rule from the sheet, so they know what to do next week, not just how they feel.
Your CAC and payback checklist
0 of 11 done
Work through this list with an AI assistant
It drafts the work and keeps track of what is done.
Frequently asked questions
- What is a good CAC payback period?
For a small business with little cash, 6 months or less on anything you pay money for. In Aleph's 2026 benchmarks of software companies, the middle company took 16 months and the best quarter 6 months or less. Stores should aim to pay back on the first order. Agencies should earn it back within 1 to 2 months of a client's fee.
- Should I include my own time in CAC?
Yes, as a second number. Work out cash CAC from dollars only, to see if your money comes back. Then work out full CAC with your hours at what you would pay someone else, or $50 an hour. Full CAC shows which channel gets the most customers per hour, and what it would cost to hand the work to someone.
- How do I calculate CAC and LTV?
CAC is what you spent to win customers divided by new paying customers. Lifetime value (LTV) is what one customer leaves you each month times the months they stay. With 2 or 3 customers you do not know how long they stay, so LTV is a guess. Use payback instead: it needs only CAC and one month's profit.
- What is the difference between CAC and CPA?
CPA, cost per acquisition, is the cost of one result an ad or campaign brings: a click, a signup, a lead. CAC is the cost of one paying customer, across everything you did to win them. If 12 signups make 1 customer, your CAC is about 12 times your cost per signup, so a better signup rate or activation lowers it. Ad platforms show CPA; your own sheet shows CAC.
- How do I calculate CAC for Meta ads?
Take the amount spent in Meta Ads Manager for the period. Divide it by the new paying customers who came from Meta in your own records: Shopify, Stripe or invoices, and "How did you hear about us?". Do not use Meta's purchase count, which follows Meta's own rules and changed in January 2026. For stores, also check your break-even ROAS.
Sources
- 1.CAC SaaS: A guide for businesses — Stripe, updated 30 July 2025, checked 12 October 2026
- 2.What is the CAC payback period? — Stripe, updated 10 September 2024, checked 12 October 2026
- 3.How to Calculate Customer Acquisition Cost for Startups — HubSpot for Startups, checked 12 October 2026
- 4.CAC payback period benchmarks for SaaS (2026) — Aleph, 2026, checked 12 October 2026
- 5.Billing analytics — Stripe Docs, checked 12 October 2026
- 6.Customers reports — Shopify Help Center, checked 12 October 2026
- 7.Ads Insights API metric availability updates — Meta for Developers, 16 October 2025, checked 12 October 2026
- 8.Search Advertising Benchmarks for 2026 — LocaliQ, updated 1 June 2026, checked 12 October 2026
- 9.Pricing — Stripe, checked 12 October 2026
- 10.Pricing — Shopify, checked 12 October 2026
- 11.First-Order Profitability: The New Law for Ecommerce Businesses — Common Thread Collective, 18 January 2024, checked 12 October 2026
Next article to read
Related guides
- How much to spend on marketing as a SaaS startupSaaSSet your SaaS startup's first marketing budget when you have almost no revenue: 5 to 6 hours a day, under $100 a month for tools and $0 for ads until 10 people have paid, with the maths that shows when ads can pay and a Sunday sheet.
- How much to spend on marketing as a B2B companyB2BSet a marketing budget for your B2B company from what one client is worth: pay at most a third of a client's first-year profit, cap it at what you could lose over 12 weeks, spend your hours before your cash, and check the cost of every order each Sunday.
- How to calculate break-even ROASD2CCalculate your break-even ROAS from what one order really leaves you after product, packing, shipping, fees and returns, then check every ad against Shopify's orders each day and move your budget every Sunday by a simple cut, keep or add-20% rule.
- How much to spend on adsSet your first ad budget from what one sale leaves you: a yes-or-no check by business type, a test limit of 10 times that number over 14 days locked in Google, Meta or LinkedIn, a daily stop line at 3 times, and a Sunday rule to raise 20% or stop.
Guides that link here
- How much to spend on marketing as a SaaS startupSaaS
- How much to spend on marketing as a B2B companyB2B
- How to set a marketing budget for your agencyAgency
- How to start an affiliate program
- How to set up retargeting ads
- How to use UTM parameters
- How to calculate break-even ROASD2C
- How to cold call past the gatekeeperB2B
- How to get replies to cold emails
- How to get booked as a podcast guest
- How to set up Klaviyo flows for a new storeD2C
- How to write a win-back email
- How to write SaaS onboarding emailsSaaS
- How to get your first B2B clientsB2B
- How to post a Show HN on Hacker NewsSaaS
- Should you do an AppSumo lifetime deal?SaaS
- How much to spend on marketing as an ecommerce brandD2C
- How to choose marketing channels for a SaaS startupSaaS
- How to choose marketing channels for an ecommerce brandD2C
- How to create an ideal customer profile
- How to price a B2B product or serviceB2B
- How to price a productD2C
- How to price a SaaS productSaaS
- How to price digital marketing servicesAgency
- How to set up conversion tracking
- Amazon PPC for beginnersD2C
- Google Shopping vs Performance Max for a small storeD2C
- How much to spend on ads
- How to fix ads that get clicks but no salesD2C
- How to make ad creatives
- How to run Google Ads for SaaS
- How to run LinkedIn ads for B2B
- How to run Meta ads for a Shopify storeD2C
- How to test Facebook ad creativesD2C
- How to do account-based marketingB2B
- How to find distributors for your product
- How to get clients from networking eventsB2B
- How to get meetings from a trade showB2B
- How to run a co-marketing campaign
- How to set up referral partnerships
- Free trial vs freemium: which to chooseSaaS
- How to improve activation rateSaaS
- How to increase average order value on ShopifyD2C
- How to increase repeat purchasesD2C
- How to raise prices without losing customers
- How to reduce SaaS churnSaaS
- How to turn free trials into paying customersSaaS
- How to find micro-influencers for your brandD2C
- How to start a referral program
- How to move from spreadsheets to a CRM
- How to respond to an RFPB2B
- How to sell to enterprise clients
- How to write a proposal that wins
- How to measure SEO success
Cite this page
Dinesh Bypilla (2026). How to calculate CAC and payback period. Scout7 Academy. https://scout7.ai/academy/measurement/how-to-calculate-cac-and-payback-period
Written by Dinesh Bypilla, Agentic systems engineer at Scout7. Reviewed by Murali Sid. Last checked 12 October 2026.
Quote any part of this guide with a link back to this page. © 2026 Scout7.
Markdown version of this page: https://scout7.ai/academy/measurement/how-to-calculate-cac-and-payback-period.md