CAC payback period is the number of months a customer takes to return what they cost to acquire. It is the most useful single number a bootstrapped software business can track, because unlike lifetime value it is a cash question, and cash is the thing that actually runs out.
The formula everyone quotes:
Payback months = CAC / (ARPA x gross margin)
That version is fine for a rough sense of scale and wrong in a way that matters as soon as you use it to decide anything. Here is the whole thing.
Start with contribution, not revenue
A customer paying $29 a month does not give you $29 a month. Take out payment processing (Stripe is 2.9% plus 30 cents, so about $1.14 on that charge), hosting, per-seat costs for anything you resell, and support if you can honestly attribute any. Call it 85% gross margin, which is typical for a small software product.
$29 times 0.85 is $24.65. That is what a customer contributes each month, and it is the number the payback calculation runs on.
Using revenue instead of contribution understates your payback by about 15%, which is small enough to feel harmless and large enough to move a decision at the margin.
Now add churn, because the naive formula assumes nobody leaves
If a customer costs $143 to acquire and contributes $24.65 a month, the simple formula says 143 divided by 24.65, so 5.8 months.
That answer assumes all of them are still paying in month six. They are not. At 6% monthly churn the cohort shrinks every month, and so does the contribution it produces:
| Month | Cohort remaining | Contribution | Cumulative |
|---|---|---|---|
| 1 | 100% | $24.65 | $24.65 |
| 2 | 94.0% | $23.17 | $47.82 |
| 3 | 88.4% | $21.78 | $69.60 |
| 4 | 83.1% | $20.47 | $90.07 |
| 5 | 78.1% | $19.25 | $109.32 |
| 6 | 73.4% | $18.09 | $127.41 |
| 7 | 69.0% | $17.01 | $144.42 |
Seven months, not 5.8. The gap widens fast as churn rises, and it is the difference between a channel you can fund out of cash flow and one you cannot.
If you want the closed form rather than a table:
n = ln(1 - (CAC x c) / (ARPA x GM)) / ln(1 - c)
where c is monthly churn as a decimal. Our payback calculator does this and prints the table with it. Nothing to sign up for.
The condition where it never pays back
Look at that formula and ask what happens when (CAC x c) / (ARPA x GM) reaches 1. You take the log of zero, which is the arithmetic telling you something real.
A cohort's total lifetime contribution is ARPA x GM / c. At $24.65 a month and 6% churn, that is $410. If your CAC is above $410, the cumulative line never reaches it. Not slowly. Never.
Never pays back when: CAC >= (ARPA x gross margin) / monthly churn
Run this check before any of the rest of it. At 9% churn the same product has a ceiling of $274 per customer, and plenty of paid channels cost more than that.
Four ways this misleads you under $10K MRR
Blended CAC hides the entire decision. If you spent $2,000 on ads and also got 40 customers from a Show HN post that cost nothing, your blended CAC looks excellent and tells you nothing about whether to keep buying ads. Calculate payback per channel or do not calculate it. This is the most common mistake at this stage and the reason a lot of founders keep funding a channel that has never worked.
Fourteen customers is an anecdote. Payback computed on a cohort that small swings wildly when two of them cancel. Treat any number built on fewer than about thirty customers as a direction rather than a figure, and recompute it monthly instead of trying to be precise once.
Annual plans break the model. A customer on annual billing pays back on day one and then contributes nothing for eleven months. Mixing them into a monthly cohort produces a payback number that describes nobody. Split them and calculate separately.
Your time is not free. Content, community and support-led growth all have a CAC. If you spent thirty hours writing something that produced eight customers, the honest CAC is not zero. Pretending otherwise is how founders conclude that content is infinitely better than ads, then wonder why revenue is flat and there is no time left to build.
What counts as a good number
The usual benchmark is twelve months for B2B SaaS. That figure comes out of venture-funded companies, where the constraint is growth rate and there is money in the bank to bridge the gap.
Bootstrapped, the constraint is different. You are paying for acquisition out of this month's revenue, so the question is not whether payback beats twelve months. It is whether you can carry the gap at the volume you want to spend. A four-month payback you can fund at $500 a month beats a three-month payback that needs $5,000 upfront.
Rough guidance for a product under $10K MRR:
| Payback | Read |
|---|---|
| Under 3 months | Spend more, and watch whether it holds as you scale |
| 3 to 6 months | Healthy. Most bootstrapped paid channels that work land here |
| 6 to 12 months | Workable with cash in hand. Fragile if CPCs rise |
| Over 12 months | Only if churn is genuinely low and you have runway |
| Never, per the condition above | Stop |
The three inputs, and the one you probably do not have
Cost per channel per month. Ad platforms give you this. For content and community you have to decide what your time is worth and then be consistent about it.
Customers per channel, attributed to first touch rather than last click. Someone who found you on Reddit in March and signed up after a Google search in April is a Reddit customer. Last-click attribution says Google, and you move budget in the wrong direction.
Retention per channel. Almost nobody has this, and it is the input that decides whether the answer is four months or seventeen. Traffic tools cannot produce it because they cannot see your billing. Billing tools cannot produce it because they cannot see where the customer came from.
That gap is why we built Ripples, so weigh the recommendation accordingly. It joins Google Ads spend, Stripe revenue and retention to the first touch that brought each person, and prints the payback month per channel. Free until $1K MRR. If you would rather not add a tool, the calculator plus a monthly spreadsheet gets you most of the way, and for a lot of products that is the right call.
Sources
- Ripples CAC payback calculator and LTV:CAC calculator
- Stripe pricing, for the processing cost inside the margin figure
- What $2,000 of Google Ads tells you about payback, which runs this arithmetic through a real campaign structure