Last Friday my co-founder Peter walked me through everything we compute for a single customer.
I've seen these outputs for months. I'd never watched all of them stack up on one person at the same time.
Is this customer still active, or did they quietly leave and not tell anyone. How sensitive are they to a discount, and if they need one, how deep does it have to go. How likely are they to convert to a subscription. How likely are they to send the order back. What is the rest of this relationship worth, in contribution profit, not revenue.
All of it recomputed every day.
Peter plays poker. So the thing I said out loud, watching a customer profile resolve into five probabilities, was: this is a hand read.
That's when I understood what we actually built. Not a dashboard. Not another CLV number to put on a slide.
An odds sheet.
Every ecommerce decision is a bet. Almost nobody calls it one.
Think about the last three real decisions you made.
"I'm launching this product and I'm betting it sells instead of sitting in a container for eight months."
"I'm running a summer promo and I'm betting I can hit the right customers with the right offer on the right product."
"I'm offering instant exchanges and bonus credits because I'm betting it keeps people coming back and doesn't wreck my bottom line."
Every one of those is a wager. Real money in, uncertain outcome, defined downside, no way to take it back once the emails go out.
Nobody calls them bets. We call them strategy, which is the word we use when we want a guess to sound like a decision.
I'm not being cute about this. The distinction matters, because gamblers who know they're gambling behave very differently from gamblers who think they're executing a plan. The first kind sizes their positions. The second kind goes broke slowly and blames the algorithm.
Ecommerce feels like a game of skill. It pays out like a game of incomplete information.
There's real skill in this business. Product, creative, merchandising, ops, a supply chain that doesn't fall over in Q4. Those are earned.
But the payoff structure is something else entirely. In every decision that involves a customer, the number you need most is the one you can't see: what would this person have done if I'd done nothing.
That's the hole card.
Would they have bought anyway. Would they have come back on their own in three weeks. Would they have subscribed without the incentive. Would they have kept the item if I hadn't made returns free and frictionless.
You almost never find out. The order comes in, the revenue posts, the campaign gets marked successful, and you move on to the next one.
Imagine a poker player who never got to see a showdown. Bets go in, chips move, and the hand ends without anyone turning over cards. You'd develop enormous confidence and almost no skill. Ten years in, you'd be worse than when you started, and completely certain you were better.
That's the game most operators have been playing. Not because they're bad at it. Because the information didn't exist.
Revenue is the outcome. It is not the bet.
Poker players have a word for judging a decision by how it turned out: resulting.
It's the most common error in the game, and it's the default operating system of ecommerce.
The promo did $400K. Was it a good bet?
You cannot answer that from $400K. It depends entirely on who took it.
If most of that revenue came from customers who were highly likely to buy in the next few weeks and were never going to need a discount, you didn't generate $400K. You pulled a chunk of it forward from next month and paid a margin toll for the privilege. Same number on the scoreboard. Opposite bet quality.
Revenue is real. I'm not going to tell you it's a vanity metric, because it isn't. It's the top of a P&L that has to work. But it's incomplete in a specific and expensive way.
Revenue tells you the pot got pushed your way. It doesn't tell you whether you should have called.
What the odds sheet actually looks like
Take one customer. Here's the read.
P(Active). Are they still in the hand, or did they fold weeks ago without saying anything? This is the hardest and most important question in ecommerce, because unlike a gym or a SaaS product, your customers never cancel. They just stop. Nobody sends an email announcing they're done with your brand. So churn has to be inferred from the shape of their behavior: how often they used to buy, how long it's been, how that compares to what the model expects from someone like them.
Discount sensitivity. Will they call the raise? Some customers will pay full price and always would have. Some need 10% to move. Some are trained to wait for 30% and will never pay retail again, largely because you taught them that. These are three completely different people and most brands send them the same email.
Subscription likelihood. Will they commit to a longer game, or are they a one-hand-at-a-time player? Pushing subscription at the second group doesn't just fail, it costs you the conversion you would have gotten.
Returns propensity. This is the rake. Every pot you win pays out less than it looks like, and reverse logistics is the cut the house takes. A customer with a 40% return rate and a customer with a 4% return rate can show identical gross revenue and land in completely different places on the contribution line. Most brands don't score this at all, which is genuinely strange given how much it costs them.
Forward CLV. What the rest of this relationship is worth, in contribution profit, going forward. Not what they've spent. What they're going to be worth after variable costs, discounts, and returns.
None of these is very interesting alone.
Together, they're a read.
A customer with high P(Active), low discount sensitivity, low returns propensity, and high Forward CLV is an entirely different bet than a customer with the inverse profile and identical trailing revenue. In your Shopify reporting, those two people look the same. In your email platform, they sit in the same segment. You send them the same offer and you have no idea you just made two opposite decisions with one click.
A worked hand
Everything below is illustrative. Round numbers, made up to be checkable, not results from any brand.
Say you're running a 25% off summer promo. The economics of one order:
- Full-price AOV: $150
- Gross margin at 60%: $90
- Variable costs (pick, pack, ship, payment processing): $18
- Contribution on a full-price order: $72
- The 25% discount comes off the top: $37.50
- Contribution on a promo order: $34.50
The way it usually runs. Blast the list. You get 8,000 orders.
8,000 × $34.50 = $276,000 in contribution.
Good month. Everyone's happy.
Now bring in the odds sheet. Of those 8,000 buyers, 3,100 had high P(Active) and low discount sensitivity. Translation: they were going to buy in the next 60 days, at full price, without the promo.
You handed each of them $37.50. That's $116,250 of contribution you gave to people who had already decided to pay you.
The odds-guided version. Same promo, same creative, same window. You suppress those 3,100 from the discount and send them a full-price seasonal email instead.
- The remaining 4,900 get the offer: 4,900 × $34.50 = $169,050
- Of the 3,100 suppressed, say 70% buy at full price in the window anyway: 2,170 × $72 = $156,240
- Total: $325,290
That's $49,290 more contribution, roughly 18%, from the same promotion. No new creative, no new spend, no new customers. Just not paying people who were already coming.
And here's the part I like, because it turns a philosophy into a testable bet: run the break-even.
You need enough of the suppressed group to buy at full price to beat what you'd have made discounting them. That threshold is about 48%. Above it, suppression wins. Below it, the blast was right.
So the whole decision reduces to one question: will more than half the customers the model says are active and price-insensitive actually buy at full price?
That's not a philosophical question. That's a holdout. Randomize a slice of that segment, discount them, suppress the rest, and measure the contribution difference. Now you've seen a showdown.
Layer returns propensity on top and it moves again, because some portion of those orders come back, and the reverse logistics cost is real contribution walking out the door. The customers most likely to take a deep discount are frequently the customers most likely to return. That correlation is not an accident, and it's not in your revenue report.
The read is not a photograph. It changes daily.
This is the part I'd underline.
Every action a customer takes is information, and information moves the odds.
They order. P(Active) jumps. They go quiet for sixty days past their normal rhythm, and it decays, not to zero, but measurably. They ignore three straight promos and then buy at full price, and their discount sensitivity revises down. They return two of their last three orders, and their Forward CLV drops even though their gross revenue went up.
That last one is worth sitting with. Their revenue went up and their value went down.
Standard segmentation can't hold this. RFM sorts customers into buckets, and buckets are a photograph of something that's moving. You take it quarterly, it's stale in a week, and you spend the next eleven weeks marketing to people who left in March.
A daily-updated read is a different kind of object. It's not a report on what happened. It's a current estimate of where every customer stands right now, which is what you actually need when you're deciding who gets the email tomorrow morning.
What this doesn't do
I'd rather say this plainly than have you find it out on your own.
Probabilities are not prophecies. A customer at 0.85 P(Active) will sometimes never come back. You'll suppress someone from a promo and they'll churn. That's variance, not a broken model. Poker players lose with aces regularly and it doesn't mean the aces were wrong.
The edge shows up across thousands of decisions, not one. If you're going to evaluate this on a single campaign, don't bother. That's resulting again, just with better inputs.
It doesn't tell you if a new product will sell. No purchase history, no odds. Product launches remain a genuine bet, and anyone selling you certainty there is selling you something. What you can do is ask which of your existing customers are positioned to try it and what they're worth if they do, which is a better starting hand than a gut feel and a container deposit.
The model doesn't make the decision. It gives you the odds. You still have to size the bet, and sizing is where operators earn their keep. A 60% edge and a 60% edge are the same number until you decide how much to put behind each one.
What to do about it Monday
You don't need a platform to start thinking this way. You need three things.
1. Get contribution per order, not revenue per order. If you can't compute what an order is worth after COGS, shipping, payment fees, discount, and returns, nothing else on this page will help you. This is the homework most brands haven't done, and it's the reason so many of them are confidently unprofitable.
2. Before your next promo, write down who you think would have bought anyway. Just guess. Put a number on it. You're already making that assumption implicitly, so write it down where it can be wrong in public.
3. Then hold out a random slice and find out. Take your most-likely-to-buy segment. Discount half, suppress half, measure contribution across the full window, not just the promo week. That's the showdown you've never gotten to see. It costs you almost nothing and it's the only way to learn whether your reads are any good.
Do that four times and you'll know more about your customer economics than most brands your size.
When I asked Peter why he bothered building all of this, he answered the way he answers most things, in poker terms.
In poker, the scoreboard lies. Two players win the same pot and only one had the odds behind the bet. Operators judged every move by the pot, because the read didn't exist. I built the model so you see the odds before the chips go in, not after.
Every operator I know is a gambler. That's not an insult, it's the job. You put money on outcomes you can't control and you live with the results.
The difference is that until recently, the odds didn't exist. Not hidden, not expensive, not locked up at some agency. They genuinely did not exist in a form anyone could act on.
They exist now.
You can keep playing the hand blind. Plenty of brands will, and some of them will win, because that's how variance works.
But I'd rather know the odds.