Turning the model into measurable growth
Each persona below is a real segment with a real journey. Follow one to see how the model turns a classification into a sequence of messages.
The path to live
Build it on your data
Foundation first.Wire the source events, purchases, spend, sessions and products, from the warehouse into the model. Stand up RFM-BT as a nightly job that scores every customer, then sync the two outputs, value tier and behavioural segment, into Braze as attributes.
Activate in Braze
Turn segments into journeys.Launch the journeys you have just walked, as always-on Canvases rather than one-off blasts. Start with the quick wins: the cross-sell into complementary range, the at-risk win-back, and the first-purchase nudge for new customers.
Prove it works
True attribution, baked in.Hold out a randomised control from every treatment. Measure the gap between targeted and held-back customers. That gap, not the raw before-and-after, is the model's real contribution to the KPI.
Close the loop and compound
Get smarter every cycle.Feed results back in, re-score, watch customers migrate between segments, and refine what did not land. Then layer in the catalogue models, Churn, pLTV, Send-Time, Channel, as the data earns them.
True attribution, not the tide
A customer base moves on its own. A seasonal sale lifts spend. Seasonality lifts purchase. If we point at a rising line and claim credit, we are measuring the tide, not the boat. So we prove impact the only honest way: holdout-based incrementality.
Raw before-and-after would claim the whole targeted bar. True attribution counts only the gap above the control, the part that would not have happened without the model. Illustrative.
How it works
For every treatment, a randomly chosen slice of eligible customers is deliberately held back. Everyone else gets the model-driven journey. Because the two groups are identical on average, the only difference between them is the targeting, so the gap between them is the true, incremental impact.
Two layers of holdout
Per-campaign holdouts so each journey earns its keep, and a small universal holdout, a global control held out of the whole programme, so we can measure the total lift of the model, not just piece by piece.
A win has to clear the bar
We only call it a win when the lift clears statistical significance, so a good week is never mistaken for a good model, and a quiet week is never blamed on one.
What we attribute, straight onto the Growth scorecard
Measuring is only half of it. The other half is feeding it back.
Attribution tells you whether the targeting worked. Closing the loop uses that answer to make the next cycle better, and to keep the Growth scorecard honestly in view. This is the loop from the overview, running for real.
Stream it back
Braze Currents flows every send, open, click and purchase back into the warehouse, right next to the source events. Nothing is measured in a silo.
Watch the migration
The model recomputes and we track whether customers move the right way. Are at-risk customers saved before they lapse? Are rising customers graduating to loyal? Is the first-purchase rate climbing? Segment migration is the earliest sign the targeting is working.
Tie it to the scorecard
Incremental lift is mapped straight onto the Growth scorecard and refreshed every cycle, so the scorecard has a clear driver, not a hopeful correlation.
Refine and repeat
What did not move gets changed, the message, the timing, the threshold. The next revolution starts smarter. This is the orbiting spark on the Intelligence Loop, made operational.
How we start
To get moving we need access to the source events, a Braze workspace, agreement on the universal holdout size (a small percentage of the base), and the first two or three segments to target. Foundation first, then a quick win live, then the proof.
