Home Docs How It Works How MarginOS calculates CAC Payback

How MarginOS calculates CAC Payback

Last updated: August 5, 2026 By Aron Baczoni

Quick Reference

Inputs

A usable blended CAC; a CAC Payback Target set in Business Config, which defines the measurement window itself; cost data for what you sell, since repayment is measured in Gross Profit; and enough order history and customers inside the target window to band a verdict.

Outputs

A Command Center CAC Payback tile reporting the share of your target-window cohort that repays CAC within the window, banded against your target, plus median payback days across repayers and a 30-day CAC recovery percentage.

Outcomes

See how many of the customers you are buying pay for themselves in time to fund the next batch, rather than a flattering average that quietly excludes everyone who never repaid.

MarginOS reports CAC payback as a share, not a duration: of the customers you acquired inside your own payback target window, what percentage earned back their acquisition cost within that window. A customer repays when their cumulative Gross Profit — summed across every order they have placed, after returns — reaches your blended CAC. The median number of days it took the customers who did repay is reported underneath as a speed companion, because on its own it is a flattering number that ignores everyone who never got there.

What CAC payback measures

CAC payback is how long it takes a customer to earn back what you paid to acquire them, and it is the cash-flow constraint on how fast you can grow. How fast is fast enough for your category, and how payback interacts with lifetime profit, are covered on the LTGP:CAC ratio benchmarks pillar. This page covers how MarginOS measures it against your real orders.

MarginOS reports two numbers, and the order matters:

  • Payback coverage (the headline) — the share of your recent new customers who repay CAC inside your target window. This is the health verdict.
  • Median payback days (the companion) — how quickly the repayers got there. Repayers only, so it describes your winners, not your cohort.

Before you start

  • A usable blended CAC. Payback is a comparison against acquisition cost, so without one the tile reads N/A — see how MarginOS resolves blended CAC.
  • A CAC Payback Target set in Business Config → Business Profile → Marketing. Without it, MarginOS has no window to measure against and no line to band your result on.
  • Cost data for what you sell, since repayment is measured in Gross Profit (CM1) rather than revenue. Thin cost coverage makes the whole metric optimistic.
  • Enough order history to cover your target window, and enough customers in it — MarginOS withholds the verdict rather than banding a handful of customers.

Set your payback target first

  1. Open Business Config and go to the Business Profile tab.
  2. Select the Marketing section.
  3. Set CAC Payback Target (days). It accepts 15 to 365 days and defaults to 60. The in-app presets group the common choices: a tighter target when cash is constrained, a middle band as the balanced default, and a longer one when you are well funded.
  4. Save. The Command Center tile re-bands against the new target on the next refresh.

This is not a cosmetic preference. The target sets the measurement window itself — both how far back MarginOS looks for new customers and how long each of them gets to repay. Change the target and you are changing the question, not just the pass mark. Set it to the deadline your cash position can actually sustain, not to an aspiration.

Where to see CAC payback in MarginOS

  1. Open Command Center and find the CAC Payback tile.
  2. The headline reads as a share against your target — for example, 62% repay ≤ 60d — followed by the health verdict.
  3. Median payback underneath is the repayers-only speed figure.
  4. 30-day recovery is a separate, complementary line: how much of CAC an average new customer returns in their first 30 days. At 100% or more, your customers pay for themselves inside a month and the tile flags them as Client-financed in 30d.

How MarginOS calculates payback coverage

1. Build the cohort. Every customer whose first-ever order falls inside your target window — 60 days back, if your target is 60 days.

2. Walk each customer’s orders in date order, accumulating profit. Each order contributes its own real Gross Profit: its own revenue, its own product cost, its own fulfillment and payment fees, with returns reversed. Not an average order value, and not revenue.

3. Mark the day they cross CAC. The first order at which cumulative profit reaches your blended CAC is that customer’s payback day, counted from their own first order. A customer who has not crossed within your target window is a non-repayer.

4. Report coverage, then speed. Coverage is repayers divided by cohort size. The median is taken across repayers only.

MarginOS then bands that coverage figure into a verdict:

Verdict Coverage What it says about your acquisition
Healthy 60% or more of the cohort repays inside your target A clear majority of the customers you buy fund the next batch on schedule. Growth is self-financing at your current mix.
Warning 30% up to 60% A meaningful minority repays on time. You can still scale, but you are fronting cash for most of the cohort while you do.
Critical Below 30% Most acquired customers never earn their cost back inside your deadline. Spending faster deepens the hole rather than filling it.
Greyed out Cohort too small, or too few repayers within it Not a verdict. MarginOS withholds the colour rather than banding on a handful of customers, since a percentage over a dozen people is noise.

These bands are deliberately about coverage, not speed. A store can post an excellent median payback and still sit in Critical, and that combination is worth acting on — it means the customers who repay do so quickly, and there simply are not enough of them.

Why coverage is the headline and days are not

This is the design decision that most distinguishes MarginOS’s payback number, and it is worth understanding because it explains why our figure will not match a spreadsheet.

Because the measurement window is your target, any customer who repays does so within the target by definition. The median across repayers is therefore guaranteed to look good — it cannot exceed your target, no matter how badly acquisition is performing. A store where a third of customers repay in three weeks and two thirds never repay at all would post an excellent median. It is a participation trophy.

The obvious fix is worse. Averaging days across everyone requires assigning some number of days to customers who never repaid, and the usual choice — their full account age — produces figures in the hundreds of days that describe your data retention, not your unit economics. MarginOS previously did this, and the resulting number was misleading enough to replace.

Coverage has neither problem. Non-repayers count against it, they are never assigned a fictional payback day, and the result answers the question you actually have: of the customers I am buying, how many pay for themselves in time to fund the next batch? The median stays on the tile because “how fast do the good ones get there” is genuinely useful — just not as the verdict.

The conservative choice about recent customers

A customer acquired three days ago is in the cohort, and counts as not-yet-repaid.

This is deliberate, and it means your coverage percentage is systematically understated by however much of the window is still running. The alternative — excluding customers who have not had a full window yet — would leave you measuring only settled history and would swing the metric every time you changed acquisition volume. MarginOS takes the pessimistic reading instead, so the number never promises repayment that has not happened.

The practical consequence: after a large acquisition push, expect coverage to dip and then recover as that cohort matures. That dip is censoring, not a collapse in customer quality.

Which orders and customers count

Included Excluded
Customers whose first-ever order falls inside your target window. Customers acquired before the window — they are measured in the windows they belonged to.
Every subsequent order that customer placed inside their own window, in date order. Orders after their window closes. Real profit, but past the deadline being measured.
Orders that were paid, partially paid, partially refunded or refunded — a refund reverses profit and can push a customer back below CAC. Cancelled and test orders.
Your direct-to-consumer business line. Point-of-sale, marketplace and wholesale orders, which have different economics and no acquisition cost of this kind.
Customers MarginOS can identify. Orders with no customer identity — there is no one to track cumulative profit for.

Example

Your payback target is 60 days and your blended CAC is $50.

In the last 60 days you acquired 400 new customers. One of them ordered on day 0 at $28 of Gross Profit, again on day 19 at $31 — cumulative $59, past $50 — so their payback day is 19. Another placed a single $34-profit order and nothing since: they are a non-repayer, and they are counted as one rather than being given a made-up payback day. A third crossed CAC on day 6 but then returned part of that order, dropping cumulative profit back to $41; unless they buy again inside the window, they finish as a non-repayer too.

248 of the 400 crossed $50 inside their 60 days. Coverage is 62%, and the median across those 248 repayers is 21 days. The tile reads 62% repay ≤ 60d with Median payback: 21 days (repayers only) underneath.

Note what the median is not telling you. It is silent on the 152 customers who never repaid — and those 152 are the whole reason coverage leads.

FAQ

Why does my payback tile show N/A when my CAC tile shows a number?

Payback compares customer profit against acquisition cost over a longer horizon than the headline CAC tile does, so it needs correspondingly deeper ad-spend history to establish a stable denominator. A store that recently connected its ad accounts can have a valid 90-day CAC while payback is still waiting. It resolves on its own as your ad history backfills. The other cause is a missing payback target, since without one there is no window to measure.

Why is my coverage lower than I expected?

Most often it is the censoring: every customer acquired part-way through the window counts as not-yet-repaid, so coverage understates by design and recovers as the cohort matures. The other common cause is thin cost data — repayment is measured in profit, and missing costs make orders look more profitable than they are, which perversely makes coverage look better rather than worse. Check your cost coverage before trusting a number in either direction.

Should I lengthen my target to improve the number?

It will improve the number and change nothing about your business. A longer target gives every customer more time to cross CAC, so coverage rises mechanically. The target should reflect the deadline your cash can actually sustain; treating it as a dial to make the tile green removes the only constraint the tile provides.

What is the difference between median payback and 30-day recovery?

Median payback is a duration measured across the customers who fully repaid. 30-day recovery is a percentage measured across all new customers: how much of CAC an average one returns in their first 30 days. They answer different questions — “how fast do my winners repay” versus “how much of my acquisition cost comes back inside a month” — and at 100% recovery your customers finance themselves without you fronting cash.

Do refunds affect payback?

Yes, and they can reverse it. Repayment is tracked in Gross Profit after returns, so a refund reduces cumulative profit and can drop a customer back below CAC. If they do not buy again inside the window, they finish as a non-repayer. This is why a store with heavy returns can show good order volume and weak payback coverage at the same time.

Why does my calculation give a different answer?

Two differences usually account for it. Spreadsheet payback is normally computed as CAC divided by average monthly profit per customer, which assumes every customer follows the average path — MarginOS tracks each customer’s real order sequence and their real per-order profit instead. And most hand calculations quietly drop the customers who never repay, which is exactly the group coverage exists to count.

Does the tile change when I change the date range?

No. The window belongs to your payback target, not to the report you are looking at. Changing your target in Business Config is what changes this metric.

Related

About the author

Aron Baczoni

Aron Baczoni is the founder of MarginOS and a former decade-long veteran of Google's Ads and Global Business Operations units. His work is focused on bridging the gap between AI's promise and its practical implementation for direct-to-consumer (DTC) brands, helping them build a sustainable competitive advantage through strategic, high-ROI AI solutions.

Read Aron's story

Get Your Profit & Inventory Command Center

See your real margins in real time, not in spreadsheets.

Get your Profit & Inventory Command Center

Or email sales@marginos.com to see your real margins on your own data.