Latest / The Retention Marketing Podcast with Fexingo: Email, SMS, and Loyalty for Repeat Customers / Why One Brand Tracks Repeat Purchase Timing with AI
Transcript
- Lucas: So there's this DTC coffee brand — we'll call them Roast & Remind — that noticed something weird in their retention data last year. Luna: What kind of weird? Lucas: Their most loyal customers were reordering at wildly different intervals. One person buys every twelve days like clockwork. Another buys every thirty-two days. The existing SMS flow was just sending a generic "time to reorder" message at day twenty-one for everyone. Luna: So they were hitting the twelve-day person way too late and annoying the thirty-two-day person way too early. Lucas: Exactly. And they thought, what if we could predict each customer's individual reorder window and send the reminder exactly when they're most likely to buy again? Not a fixed cadence, but a personalized one. Luna: That sounds like a machine learning problem. Lucas: It is. So they built a simple model that looks at three inputs for each customer: the average number of days between their past orders, the variance in those intervals, and the recency of their last purchase. Then it calculates a predicted next-purchase date with a confidence window. Luna: What did they use to build it? Did they hire a data scientist? Lucas: They actually used a no-code ML platform — so no dedicated hire. The model runs inside their existing email/SMS tool via an API. The whole thing took one marketer about two weeks to set up. Luna: Okay, so how did the actual SMS flow change? Lucas: Instead of one message at day twenty-one, they now send a single SMS at the predicted date plus or minus two days, depending on the confidence score. If the model is highly confident — say, the customer has ordered five times on a consistent schedule — the message fires exactly on the predicted date. If confidence is low, they wait an extra day. Luna: And the copy? Did they personalize that too? Lucas: They kept it simple. The message is basically, "Hey, based on your past orders, you might be running low on. Here's a one-click reorder link." No discount, no urgency. Just timing. Luna: And the results? Lucas: Over a three-month test, the personalized-timing group had a 22 percent higher repeat purchase rate than the control group that got the generic day-twenty-one message. And — this is key — opt-out rates stayed flat. They didn't annoy people into unsubscribing. Luna: Twenty-two percent is huge for just changing when the message sends, not what it says. Lucas: Right. The offer is identical. The only variable is timing. And the effect was strongest for customers who had ordered at least three times — the model had enough data to be accurate. Luna: So for one-time or two-time buyers, they probably stuck with the generic flow. Lucas: Exactly. They only activate the personalized model after the third order. Before that, it's the standard day-twenty-one reminder. That also means the model doesn't try to predict based on too little data. Luna: What about customers whose intervals are all over the place? Like, someone who buys after ten days, then thirty, then fifteen. Lucas: Great question. The model calculates a variance score. If the variance is above a threshold, the confidence window expands. For those customers, the message sends at the average interval — but the copy changes slightly to say, "It's been a while, just a reminder you can reorder anytime." Less precise, but still better than a fixed day. Luna: So they didn't try to force a schedule on erratic buyers. They just acknowledged the unpredictability. Lucas: Exactly. And the data showed that even for that group, the repeat rate lifted about 8 percent — modest but positive. Luna: One thing I'm wondering: did they A/B test the message itself alongside the timing change? Lucas: They did a separate test later. They tried adding a small incentive — 10 percent off — to the personalized-time message. The repeat rate went up another 5 percent, but the cost of the discount ate into the margin. So they decided to stick with no discount and just rely on timing. Luna: Makes sense. If you can get a 22 percent lift without giving away margin, that's a better long-term play. Lucas: Yeah. And they also monitored average order value — it didn't change. So the increase came purely from more orders, not from people buying more per order. Luna: Were there any segments where the model underperformed? Lucas: One: gift buyers. People who buy coffee as a gift have completely different intervals — they might order once for a holiday and then not again for months. The model couldn't handle that pattern, so they excluded gift orders from the training data. Luna: Smart. Gift behavior is a totally different use case. Lucas: And another: seasonal subscribers. Some customers pause their subscription in summer and restart in fall. The model would flag them as lapsed and send a reorder message that didn't apply. They had to add a flag for paused subscriptions. Luna: So the model needed a few edge-case rules on top of the ML. Lucas: Right. The ML gives you the baseline prediction, but you still need business logic to override it for known exceptions. Luna: I imagine this approach could work for any consumable product — not just coffee. Vitamins, pet food, skincare. Lucas: Absolutely. Any product where consumption is relatively predictable and the purchase cycle is short enough that a reminder matters. The key is you need enough repeat customers to train the model. Luna: What's the minimum order history you'd want? They said three orders, but is that a rule of thumb? Lucas: Three is a good baseline. Some brands use five. The more orders, the more accurate the prediction. But three gives you enough data points to see a pattern. Luna: So if a brand is just starting out with retention, this might not be the first thing they implement. Lucas: No. You need a base of repeat customers first. But once you have a few hundred people with three-plus orders, you can start testing. Luna: And the no-code tools make it accessible. That's the part I find encouraging. Lucas: Yeah, you don't need a data science team. A smart marketer with a spreadsheet and a few API calls can pull this off. Luna: Speaking of smart marketers — if these conversations have sparked something you've actually used in your own retention work, it's worth knowing that listener support is what keeps this show ad-free. A couple of dollars a month genuinely makes a difference — buy me a coffee dot com slash fexingo, if you've gotten something out of these episodes. Lucas: Yeah, it's a small thing that adds up. And we appreciate it. Luna: So back to the coffee brand — did they roll this out to all customers eventually? Lucas: They did after the three-month test. And six months in, the overall repeat rate for customers in the personalized flow is about 18 percent higher than it was before the change. Luna: And they never increased message frequency? Just optimized timing? Lucas: Correct. They send the same number of SMS messages per customer — one per predicted cycle. No increase in volume. Luna: That's the kind of efficiency every marketer wants. Lucas: Exactly. Better results with the same input. That's the power of timing.