Most stores measure their post-purchase program by one number: the take rate. It's the wrong headline. Take rate tells you how often an offer is accepted; it says nothing about what the program added to the bottom line. The number that matters is incremental margin per order, and the metric stack around it tells you where the program works, where it stalls, and what to fix.

This is the tutorial for measuring a post-purchase upsell program on Shopify: which numbers to track, how to read them, and which to ignore. It sits inside the Invisible Second Sale™ and pairs with the sequencing work in the offer hierarchy guide.

I run Skuology and build Upsellr. This comes from 90+ Shopify projects and over $300M in combined eCommerce revenue (over $50M of it from upsells).

Key Takeaways

  • Take rate is the input, not the goal. Optimize for incremental margin per order.
  • Measure incremental revenue against orders shown the offer, not against accepts.
  • Score offers by expected value: take-rate times margin per acceptance.
  • Segment by slot and category; a blended number hides the winners and the stalls.
  • Watch the refund rate on accepted offers; an accepted-then-returned offer adds cost, not margin.

Take rate: the input, not the goal

Take rate is accepts divided by offers shown, and it's the first number everyone looks at. It's worth tracking, because it's the input every other metric builds on. Post-purchase one-click offers convert at 5 to 15% (cartylabs, 2026); an agency study of 1,847 businesses put the average post-purchase take rate around 14.6% (Focus Digital, 2025), and a single ReConvert case study reported about 7% (ReConvert, 2025). So if yours sits far below that band, the offer or its relevance is the problem.

But take rate is where most measurement stops, and that's the mistake. A high take rate tells you the offer is easy to accept; it doesn't tell you the offer is profitable. Discount an offer heavily and the take rate climbs while the margin per acceptance collapses. Optimize take rate alone and you'll train the program toward cheap, over-discounted offers that convert well and earn little.

So read take rate as a diagnostic, not a scoreboard. It answers "is the offer relevant and well-sized," not "is the program working." That second question needs a different number.

Incremental margin per order: the number that matters

The metric to optimize is how much margin the program adds per checkout. Take the extra margin from accepted offers over a period, after the cost of goods and any discount, and divide by the number of orders that were shown an offer. That's incremental margin per order, and it's what the post-purchase layer is actually worth.

The denominator matters. Measure against orders shown the offer, not against accepts, because that makes the number comparable across offers and over time. An offer accepted by 15% of viewers at a small margin can add less per order than one accepted by 8% at a healthy margin. Dividing by orders shown surfaces that difference; dividing by accepts hides it.

This is the number to put on the dashboard as the headline. Everything else, take rate included, is a driver you tune to move it. The economics behind this metric are in the companion margin math guide.

Expected value: rank offers before you run them

Between "what happened" and "what to run next" sits expected value: take-rate times margin per acceptance. It's the same score that decides offer order, and it's how you compare candidate offers before and after they run. A $19 complement at 12% take and 70% margin can beat a $90 add-on at 2% take and 40% margin, and the expected-value number makes that visible.

Track expected value per offer and per slot, and you have a ranking that updates as real data comes in. The offer with the highest expected value earns the first slot; the one whose expected value falls below the cost of showing it gets cut. This is the loop that turns analytics into decisions rather than reporting. The sequencing that uses this score is in the offer hierarchy guide.

Slot and category: segment or stay blind

A single program-wide take rate averages away everything useful. Two segments are worth breaking out from the start.

Slot-level metrics show where the sequence stalls. Track take rate for the first offer, the second (shown after a decline), and the third separately. If slot one converts well and slot two barely registers, the second offer is wrong or too similar to the first, and the sequence is losing its second bite. You can't see that in a blended number.

Category-level metrics show which offers deserve the first slot. Post-purchase behavior differs by what the buyer bought: consumables reward a restock or subscribe offer, considered purchases reward an accessory. Segment take rate and incremental margin by category and the right first offer for each sorts itself out. A store-wide average would have buried it.

The counter-metrics: what to watch for damage

Post-purchase offers are structurally safe on conversion, because they fire after the order is placed. But two counter-metrics still deserve a watch.

The first is base conversion, and the point of tracking it is to confirm the safety. A correctly built post-purchase offer cannot lower checkout completion, so if you see conversion move when you turn the offer on or off, something is misconfigured, likely an offer firing before the order is truly banked. Measure it to prove the zero-risk claim, then move on.

The second is the refund and return rate on accepted offers, and this one is a real quality signal. An offer that gets accepted and then returned adds handling cost and refund overhead, not margin. If accepted-offer returns run higher than your baseline, the offer is a poor fit that the take rate flattered. A good post-purchase offer is one people keep.

What not to optimize

Two numbers look like goals and aren't. Gross take rate is the first, for the reason above: it rewards cheap and over-discounted offers. Revenue per acceptance is the second, and it's the opposite trap. Optimize revenue per acceptance and you'll push the most expensive offer into the first slot, spending the highest-attention moment on the offer least likely to be accepted. Both numbers are inputs to expected value; neither is the target.

The target is incremental margin per order, read alongside expected value by slot and category, with refund rate as the quality check. Optimize that, and the program compounds. Optimize a vanity number, and it drifts toward looking good while earning less.

A dashboard that fits on one screen

Keep the reporting small enough to act on. Five numbers do the job: offers shown, take rate (against the 5 to 15% benchmark), incremental margin per order as the headline, expected value by slot, and refund rate on accepted offers. Add the category breakdown behind the headline for the diagnosis.

That's the whole measurement system. It tells you what the program earned, where in the sequence it earned it, which categories drive it, and whether the offers are good enough that buyers keep them. Everything else is noise dressed up as a metric.

Post-purchase upsell analytics: FAQ

What is the most important post-purchase upsell metric?

Incremental margin per order, not take rate. Take rate tells you how often the offer is accepted; incremental margin tells you what the program actually added to the bottom line after the cost of the offer. A high take rate on a low-margin or discounted offer can add revenue while adding little profit, so margin per order is the number to optimize.

What is a good post-purchase upsell take rate?

Post-purchase one-click offers convert at 5 to 15% (cartylabs, 2026), and a 2025 agency study of 1,847 businesses put the average near 14.6% (Focus Digital), so that band is a reasonable benchmark. But treat it as an input, not a goal. A 15% take rate on an irrelevant or over-discounted offer can be worth less than an 8% take rate on a well-matched, healthy-margin one. Read take rate alongside margin, never alone.

How do I measure the incremental revenue from post-purchase offers?

Measure added revenue against orders shown the offer, not against accepts. Sum the extra revenue from accepted offers over a period, divide by the number of orders that saw an offer, and you get incremental revenue per order. That number is comparable across time and offers, and it's what the program is really worth per checkout.

Should I track post-purchase metrics by slot and category?

Yes. A blended number hides where the program works and where it stalls. Track take rate by slot (first, second, third offer) to see where the sequence drops off, and by product category to see which offers earn the first slot. Segmentation is how you find the winners a store-wide average averages away.

Do post-purchase upsells hurt any metric I should watch?

They can't lower conversion, because they fire after the order is placed, but watch the refund and return rate on accepted offers. An offer that gets accepted and then returned adds cost, not margin. If accepted-offer returns run high, the offer is a poor fit even if the take rate looks good.

What to do next

No guaranteed lift. What your program earns depends on your offers, margins, and categories. What I can promise is that measuring the right number changes what you build, and most stores are still optimizing the vanity one.

The metric stack is the scoreboard for the Invisible Second Sale™. To run a post-purchase program that reports incremental margin cleanly, buildmyupsell.com deploys a one-click offer via Upsellr in 48 hours, or book a call to design the measurement and the offers together.