Modeling Post-Promo Repeat-Purchase Lift To Justify A Thin-Margin Sitewide Sale

Metricuno
June 19, 2026
7 min read
Modeling Post-Promo Repeat-Purchase Lift To Justify A Thin-Margin Sitewide Sale — Model post-promo repeat-purchase lift honestly. Check whether 90-day cohort CM clears CAC before greenlighting a thin-margin sitewide sale.
Quick answer

A working method for the "we lose on the first order but win on LTV" argument: extend per-order CM by a realistic second-order rate, then check whether 90-day cohort CM actually clears blended CAC.

Quick answer

Take your per-order contribution margin during the sale, multiply your promo cohort's expected second-order rate (typically 40-60% of full-price cohort) by the second-order CM, sum the two, and compare to blended CAC at a 90-day horizon. If 90-day cohort CM doesn't clear CAC, the LTV argument doesn't survive — and most sitewide sales below 25% off don't clear it outside consumables and subscription-eligible categories.

Definition
Promotional strategy

Modeling post-promo repeat-purchase lift

Quantifying whether a thin-margin sitewide sale pays back via second-order contribution margin within a defined cohort window.

Modeling post-promo repeat-purchase lift is the discipline of running the 'we lose on the first order but win on LTV' argument honestly. You extend the per-order contribution margin from your sale by an expected second-order rate for promo-acquired customers, then check whether the resulting 90-day cohort contribution margin clears blended CAC.

The answer is usually no. Promo-acquired customers repeat at roughly 40-60% of full-price cohort rates, and a 30% sitewide discount on a 55% gross margin product cuts per-order CM in half before any second-order revenue arrives. The exceptions — consumables, subscription-eligible SKUs, and tightly-segmented audiences — are where the math actually survives.

Also known as
Promo cohort LTV modeling
Discount payback model
Sale CM stress test

The argument shows up in every Q4 planning meeting. Marketing wants a sitewide 25-30% off banner; finance flags margin; someone says "we'll make it back on the second order." That sentence is testable, and most of the time it fails the test.

The honest version of the model has three inputs you usually don't have clean numbers for: the promo cohort's second-order probability, the cannibalization rate, and a 90-day CM threshold tied to blended CAC. Get any of these wrong by 30% and the answer flips.

Why promo cohorts repeat worse

Customers acquired during a sitewide promo are price-anchored to the discounted price. When they return, they expect another deal — and a meaningful share churn the moment a full-price email lands. This is the mechanism behind the consistent 40-60% repeat-rate gap versus full-price cohorts.

There's a second selection effect: the cohort over-indexes on discount-stackers, affiliate-coupon hunters, and one-off gifters. Stripping discount-stackers from the cohort before you project lift is mandatory; otherwise you're modeling LTV on a population that doesn't represent your real new-customer pipeline.

The cannibalization trap

Before you celebrate the promo's new-customer count, subtract the cannibalization discount — full-price-intent customers who used the code anyway. On a sitewide sale with email blast, 20-40% of orders typically come from customers who would have converted at full price within 14 days. That margin is pure loss, not investment.

How to model it honestly

Start from your contribution margin calculator, not from revenue. Per-order CM during the sale is: (discounted AOV) × (gross margin %) − variable order costs − blended CAC for net-new acquisitions. For a €60 AOV at 55% GM with a 30% discount and €8 fulfillment, you're looking at roughly €15 per-order CM before CAC.

Then layer second-order CM. If your full-price 90-day repeat rate is 22%, the promo cohort's expected rate is 9-13%. Multiply that probability by the expected second-order CM (usually back at full-price economics: €60 AOV × 55% GM − €8 = €25). That's an expected €2.25-€3.25 of second-order CM per acquired customer.

Sum first-order and expected second-order CM, divide by 1 minus your refund rate, and compare to blended CAC. The 90-day cohort CM threshold has to clear CAC for the sale to make sense — and on these numbers, €17-€18 of 90-day CM rarely clears €25-€40 blended CAC.

Second-order rates by vertical

Benchmark

90-day second-order rates for promo-acquired vs full-price cohorts, by vertical

VerticalFull-price 90-day repeatPromo cohort 90-day repeatGap
Beauty & skincare (consumable)32%18-22%-31% to -44%
Supplements / coffee41%26-32%-22% to -37%
Apparel (mid-AOV)19%8-11%-42% to -58%
Home goods / accessories14%5-8%-43% to -64%
Electronics & one-off SKUs8%2-4%-50% to -75%
Subscription-eligible (with offer)38%29-34%-11% to -24%

Two patterns jump out. Consumables and subscription-eligible categories close the gap because the second purchase is need-driven, not desire-driven — running out of moisturizer doesn't care what price you paid first. Apparel and one-off SKUs widen it, because the second purchase needs a fresh desire trigger that a discount-trained customer waits to see paired with another discount.

When the math actually survives

The model clears CAC in three specific cases. First, consumables with a 30-60 day natural reorder cycle, where the second order is mechanical. Second, when the promo doubles as a subscription conversion mechanism — a 20% off first delivery offer that locks in a recurring revenue line changes the math entirely; the second order isn't a probability anymore, it's a contract.

Third, audience-restricted promos: a 25% off code to lapsed customers or to a winback segment with prior full-price history. Their second-order rate stays close to full-price cohort behavior because they're not new — they're reactivating, and they were already price-validated.

What to do when the math says no

When your CEO wants the sale anyway, the answer isn't to refuse — it's to scope it. Swap sitewide for category-restricted on your highest-repeat SKUs. Swap blanket discount for a threshold offer (free shipping over €75, or 20% off second item) that protects AOV. Pair the promo with a subscription upsell so the second order isn't a probability.

If it has to be sitewide, lower the discount tier. The CM model is exquisitely sensitive to discount depth: dropping a sitewide from 30% to 20% off typically restores enough first-order CM that the 90-day cohort threshold becomes reachable even at the lower promo repeat rate. Run the calculator both ways before you commit.

Frequently asked

Frequently asked questions

Use 40-60% of your full-price cohort's 90-day repeat rate as a starting band. If you have at least one prior promo cohort with 90+ days of data, use its actual rate instead — but strip discount-stackers first or you'll over-project. Sensitivity-test at both the low and high end of the band; if only the optimistic case clears CAC, the answer is no.

Because cash matters and because longer windows let optimism hide. A 12-month projection on a noisy promo cohort can be talked into any answer; a 90-day cohort CM has hard finance-grade data behind it and matches typical paid-media payback expectations. If a sale needs 9-12 months of repeat behavior to clear CAC, it's not a sale, it's a bet.

Tag discount-code redemptions and free-shipping-threshold orders at the order level, then cohort by first-order discount status. In Shopify, the order discount_code field is the primary key; in GA4, ecommerce purchase events with the coupon parameter populate the same logic. Metricuno's historical GA4 import builds this cohort split automatically on day one.

Yes, but the cannibalization rate is usually lower because the offer is conditional on email signup, not blasted sitewide. Welcome-discount cohorts typically repeat at 55-70% of full-price rates rather than 40-60% because the audience self-selected for engagement. Model them as a separate cohort, not pooled with sitewide sale buyers.

20-40% of sitewide-sale orders come from customers who would have converted at full price within 14 days, based on holdout tests across mid-market retailers. If you have email open and product-view data for the 30 days pre-sale, you can refine this — high pre-sale engagement on the discounted SKU is the strongest cannibalization signal.

Consumables have a mechanical reorder cycle that promo-acquired customers honor at near-full-price rates once they're out. Apparel needs a fresh desire trigger for the second purchase, and discount-trained customers wait for the next sale to act on it. Apparel sitewide sales almost never clear the 90-day cohort CM threshold unless paired with a strong loyalty or styling mechanic.

Document the model, then offer scoped alternatives: category-restricted on highest-repeat SKUs, a lower discount tier, a threshold offer that protects AOV, or a subscription upsell pairing. The job is to give leadership the cheapest version that captures the strategic intent (brand momentum, inventory clearance, competitor response) without the worst CM damage.

Yes, and promo cohorts return at 15-30% higher rates than full-price cohorts, especially in apparel. Net first-order CM for return-adjusted revenue, not gross. Skipping this step is the most common reason a thin-margin sale model that 'works on paper' loses money in the actual P&L.

Yes — it's often the only lever that makes a thin-margin sale clear CAC outside consumables. A 15-25% subscription attach rate on promo orders converts a probabilistic second-order CM into a contracted recurring CM stream, and the LTV math moves from 90-day to 6-12 month payback honestly. This is why subscription-first brands can run discounts that pure one-shot retailers can't.

Yes, with caveats. Use the vertical benchmarks for second-order rates, your own gross margin and CAC for the CM and threshold inputs, and run sensitivity on the band rather than a point estimate. The historical GA4 import in Metricuno gives you a real cohort split from your existing data instead of relying on benchmarks, which materially tightens the answer.

Test ideas before you ship them

Run unlimited A/B tests, attach hypotheses to outcomes, and build a searchable archive of what works — and what doesn't.