Case studiesRetention & AI personalization

The retention AI model whose first big call was sending fewer promos.

CookUnityChef-to-consumer marketplaceARR grew ~$200M to $400M+ in the periodBuilt in their stack
The situation

Great at tactics, silent to 97% of the base.

The team was genuinely good at finding small pockets of value: a cohort of paused users worth over $200 ARPU, fewer than 2,000 people, converting at 1%. What did not exist was a strategy for everyone else. 97% of monthly active users never received a communication at all, and when promos did go out, they went out wide, training customers to wait for discounts without moving revenue.

Monthly active users hearing from the brandWhere it stood
Share of MAUs receiving any lifecycle communication
3% reached, through hand-built cohort campaigns
97% heard nothing at all
Hand-built targeting found the perfect 2,000 customers and converted 1% of them. The ceiling on that approach was the analysts' calendar, not the customer base.
From the internal working session that started the program. Coverage, not cleverness, was the constraint.
Great at tactics: finding 2,000 perfect customers. Missing a strategy for the other 97%.
What we built

One model choosing each customer's next action. Including none.

A model trained to predict which action would generate the most net revenue from each customer over the following weeks: a nudge to reorder a favorite meal, a new chef worth trying, a new cuisine, a small offer, or silence. Trained the honest way: the active base split into six cohorts receiving randomized actions over six-week sprints, so every lift was measured against customers who got something else, not against last month.

Trained on controls
Six cohorts, randomized actions, six-week sprints. Lift means lift over a control, not over last month
Churn & value models
Each customer scored for churn risk and predicted value against a baseline LTV curve
Actions, not just offers
Favorite-meal reminders, new-chef nudges, new-cuisine suggestions, and no-offer emails trained alongside promos
In their stack
AutoML on their warehouse, actions out through their CDP. The 2-week proof explored 2,000+ features across 594 models
Each week, for each customer: what is worth sending, if anythingHow it works
Orders & skips
Frequency, recency, plan
Menu behavior
Browsing, repeats, variety
Ratings & prefs
What they loved, avoided
Lifecycle state
New, engaged, wobbling, paused
The next-best-action model
Predicts net revenue for each possible action, per customer, per week
Silence is an allowed answer. No send when nothing pays back
Engaged regulars
A reason to order, not a discount. New dishes from a favorite chef; +5.8% net revenue
Newer, wobbling
Try a new chef, with 5% off for 2 weeks. +28% net revenue on the customers it chose
Disengaged
Usually nothing. Discounts did not re-engage them; they just cost margin
The counterintuitive part held up everywhere: the model sent promos to just 12% of the base, and that restraint is where the profit came from.
What it changed

Fewer promos, more revenue, and churn caught before it happened.

This ran while the business roughly doubled, from around $200M toward $400M+ ARR. We claim the measured slices below, not the doubling; the levers changed because the model made their cost visible.

Stopped blanket promos
Manual wide-send promotions showed no lift against controls, and one lost money outright. The model sent offers to the 12% of customers where they paid back, and stopped the rest.
No-offer emails
Emails with no offer at all lifted net revenue 5.8% on the right customers. A meaningful share of "retention spend" turned out to be unnecessary discounting.
Churn alerts
The churn model flagged the small slice of weekly actives likely to leave, worth ~$51 in saved net revenue per true catch against ~$54 lost per false alarm, so thresholds were set by the payout math, not by enthusiasm. Churn fell ~1.2pts, roughly 10%.
Early comms
The data said the strongest early driver was finding a meal they loved, not endless variety. Onboarding and early comms re-oriented around getting to a 4+ rated meal fast.
Before and after, on the measured slicesDraft figures
MeasureBeforeWith the model
MAUs receiving lifecycle comms~3%Most of the active base
Who gets a discountEveryone, periodicallyThe 12% where it pays back
Net revenue lift, model-chosen offersUnmeasured+28% vs control
Churn rateBaselineDown ~1.2pts (~10%)
Incremental ARR, annualizedn/a~$15M
Lifts are against randomized controls over 28-day windows. The incremental ARR figure is a stylized draft to confirm.
Since then

What held, what needed work.

Held

The discipline survived its biggest test: the model kept saying no to most promos, and revenue kept agreeing with it through peak season pushes.

Needed work

The model was weak on brand-new customers, who have almost no history to learn from. Later phases leaned on demographic and acquisition features to close the gap.

Where it went next

Training expanded beyond promos into product recommendations, message frequency, and channel choice, and the biggest operational ask became protecting the model from ad-hoc campaigns.

Get in touch.

Tell us what you are trying to figure out. If we can help, we will say how. If we are not the right fit, we will say that too, and point you somewhere better.

01
Free work first
We start by doing a real piece of work on your data, free, so the first thing you judge is output, not a pitch.
02
First build, fixed scope
A trusted core metric layer in weeks, not quarters, at a fixed price. Small enough to be safe, real enough to matter.
03
Scale when it earns it
Month to month from there, from a few thousand a month. You own every model, dashboard and definition.