Repeat-Rate Inputs for Subscription DTC Stores

Metricuno
August 7, 2026
7 min read
Repeat-Rate Inputs for Subscription DTC Stores — How to estimate the repeat-rate input in an LTV:CAC model for subscription and replenishment DTC brands where churn curves — not AOV — drive LTV.
Quick answer

For subscription and replenishment brands, the repeat-rate input dominates LTV:CAC. Here's how to model it from cohort churn curves instead of a flat monthly average.

Quick answer

For a subscription or replenishment brand, don't plug a single flat repeat rate into your LTV:CAC calculator. Model the input as an active-subscriber decay curve by billing cycle, weight cycles by product cadence (30-day for coffee, 60-90 day for skincare and supplements), and exclude the first-billing churn cliff from the ongoing retention rate. A blended monthly repeat rate typically overstates LTV by 20-45% on stores under 18 months old.

Definition
LTV modelling

Repeat-Rate Inputs for Subscription DTC Stores

The retention-curve values that drive the LTV side of an LTV:CAC calculation for subscription or replenishment brands.

Repeat-rate inputs are the retention values you feed into an LTV formula when a customer's second, third, and fourth orders are the real economic engine — not the first-order AOV. For subscription and replenishment DTC (skincare, supplements, coffee, pet food), churn happens in a shaped curve: a steep drop between billing 1 and 2, then a flattening tail. Plugging a single blended repeat rate hides that shape and produces LTV numbers that are either dangerously optimistic (young cohorts) or too pessimistic (discount-heavy launches). The correct input is a per-cycle retention rate estimated from cohort data, with the first-billing cliff modelled separately.

Also known as
subscription retention input
cohort repeat rate
billing-cycle retention

For a one-time-purchase apparel store, LTV:CAC is dominated by AOV and gross margin. Swap that for a magnesium stack on a 60-day auto-ship, and AOV barely moves the number — the whole model hinges on what percentage of subscribers survive to billing 4.

That single sensitivity is why the repeat-rate input is the most-abused field in any LTV:CAC calculator. Founders paste in "40% repeat rate" from a Shopify dashboard, multiply by an average lifespan, and end up with LTV numbers that don't survive the second quarterly board review.

Why a flat repeat rate breaks subscription LTV

Subscription churn isn't linear. Between billing 1 and billing 2, most brands lose 25-50% of new subscribers — the first-billing churn cliff — as trial-motivated customers, discount hunters, and "I forgot to cancel" cases wash out.

After that cliff, monthly churn typically settles to 5-10% of the remaining base. A flat repeat-rate input averages the cliff and the tail into one number, which understates the retention of survivors and overstates the value of new acquisitions. Both errors, in opposite directions, on the same page.

The immature-cohort trap

If your store is under 18 months old, your historical repeat rate is biased by survivorship — you only see the customers who've had enough time to churn a little, not the full curve. Use a predicted repeat rate fitted from the first 3-6 billing cycles, not a lifetime average from your CRM export.

The three inputs you actually need

Instead of one repeat rate, decompose the input into three: (1) first-billing retention — the percentage that survives billing 1 to billing 2, (2) ongoing per-cycle retention — the flat monthly (or 60-day, or 90-day) rate after the cliff, and (3) product cadence — the days between expected orders.

For a coffee subscription on a 30-day cadence, the ongoing retention rate compounds 12 times a year. For a skincare serum on 60-day, it compounds 6 times. Same retention percentage, radically different LTV. Miss the cadence and you can misprice CAC by half.

The third gotcha is skip-month and pause behaviour. A subscriber who skips one month is not churned — but Shopify's default repeat-purchase rate excludes them from the numerator. Decide once whether pauses count as active, apply that definition consistently across cohorts, and document it in the calculator's notes.

Benchmark retention curves by category

Benchmark

Typical active-subscriber retention by billing cycle across replenishment DTC categories

CategoryCadenceBill 1→2 retentionBill 2→3Bill 3→6 (per cycle)12-month active
Ground coffee subscription30 days62%82%88%28%
Skincare serum / cream60 days68%84%90%42%
Daily supplement (single SKU)30 days58%78%86%22%
Supplement stack (3+ SKUs)60 days72%86%92%48%
Pet food / treats30-45 days70%85%91%38%
Protein / performance nutrition45 days60%80%87%26%

Read the table as directional shape, not gospel. The pattern that holds across categories is the bill 1→2 drop being roughly twice the ongoing per-cycle churn — that's the cliff you must model separately. Stacks and higher-consideration skincare retain better because the buyer did more upfront research and paid a higher first-order price.

Segment before you average

Discount-acquired subscribers churn 1.5-2x faster than full-price ones in the first three cycles. If 60% of your new subs came in on a 40%-off welcome offer, blending them with organic full-price cohorts drags your repeat rate down by 8-15 points — and worse, it drags it in a way that doesn't reflect the LTV of any real customer.

Split repeat rate by acquisition source at minimum: paid-discount, paid-full-price, organic, referral. Feed each cohort's retention into the LTV:CAC calculator separately, then weight the ratios by spend mix. It's the single change that makes the model useful for channel-level budget decisions.

How to test your inputs

Backtest: take a cohort that's 12+ months old, use only its first 3 billing cycles to fit a decay curve, then compare the curve's prediction at month 12 against what actually happened. If your predicted retention is within 3 points of actuals, the fitting method is trustworthy for younger cohorts.

Then rerun your LTV:CAC calculator with the fitted curve versus the flat historical rate. On most subscription stores under two years old, LTV shifts by 15-30% — usually downward once the survivorship bias is removed. That's the number you should be planning CAC against.

Frequently asked

Frequently asked questions

For subscription brands, active-subscriber rate (the percentage still billed at cycle N) is the more accurate LTV input because it maps directly to future revenue cycles. Repeat-purchase rate, which counts anyone who's bought again ever, blurs recency and inflates LTV for older cohorts. Use active-subscriber rate for subscription revenue and reserve repeat-purchase rate for one-time replenishment SKUs sold alongside the subscription.

Model it as a separate multiplier applied only once, not as part of the ongoing retention rate. In practice: LTV = AOV × margin × (bill_1_to_2_retention) × (1 / (1 − ongoing_retention)). This keeps the cliff from compounding across every cycle, which is the most common source of overstated LTV on subscription stores.

Not from historical averages, but yes from a fitted decay curve. Take your first 3-6 billing cycles of cohort data, fit an exponential or power decay, and use the fitted parameters as the LTV input rather than the naive lifetime retention percentage. Predicted repeat rate for young stores is systematically more accurate than historical, because historical is heavily survivorship-biased.

Treat a paused or skipped subscriber as active if they resume within 90 days — most do, and excluding them understates true retention by 5-10 points. Explicitly exclude them from the churn numerator until the 90-day window elapses. The key is picking one rule and applying it identically across every cohort you compare.

A coffee subscriber on 30-day auto-ship churns predictably along a decay curve — you can model month 6 from month 2 data. A one-time ground-coffee buyer has a much wider repurchase window (30-120 days) and repeat rate is driven by promotional timing, not by cadence. Use active-subscriber math for the subscription and traditional repeat-purchase rate for the one-time SKU; never blend them into a single LTV input.

Most LTV calculators default to monthly compounding of retention. Feed a 60-day supplement stack into a monthly model and you'll either double-count retention (compounding twice per real billing) or halve LTV by assuming missed months are churn. Fix it by matching the calculator's cycle length to the product's actual billing cadence.

Yes, in almost every category. Subscribers acquired via a first-month discount of 30% or more churn 40-80% faster over the first three cycles than full-price cohorts. Blending them drags the model average toward a customer that doesn't exist. Segment by acquisition source and weight by channel spend when rolling up to a store-level LTV:CAC ratio.

The repeat rate compounds inside the LTV numerator, so small changes have outsized effects on the ratio. Moving ongoing retention from 85% to 90% per cycle can lift LTV by 40-60%, which turns a break-even LTV:CAC of 2.5 into a healthy 3.8. That sensitivity is why the input deserves cohort-level rigour rather than a dashboard-average shortcut.

Apply gross or contribution margin to each cycle's revenue, then sum across cycles weighted by retention. Applying margin only to the first order and then multiplying by a lifetime retention factor double-counts the cost base and understates LTV by 10-20%. A calculator with a contribution-margin toggle should compound margin cycle by cycle.

3:1 is the common target, but subscription brands can operate healthily at 2.5:1 if payback is inside 6 months, because the retention tail keeps compounding value beyond the LTV window most calculators cap at 12 or 24 months. The more important question is whether your ratio is stable across acquisition channels — an average of 3:1 hiding a 1.5:1 discount channel is a worse position than a uniform 2.5:1.

Track CAC, channels, and funnel conversion in one place

Metricuno connects ad spend, funnel events, and revenue so you can see CAC by channel, cohort, and campaign — without stitching together five tools.