What you actually do with it
7 attributes land on every customer's profile. This is what a marketer does with them: the audience in one filter, the holdout excluded every time, the intensity dialled by tier, and the personalisation kept out of the targeting.
Where it sits: The Activate stage of the loop. The model decided who and why; this is where and how.
Braze is handed the answer, not asked to work it out
Every filter below reads an attribute that genuinely syncs. Nothing here recomputes a score, rebuilds a rule or invents a segment, which is what keeps one system deciding who a customer is and the other deciding what they see.
Build the audience on one filter
The behavioural segment is already decided, so the audience is a single equality check rather than a rebuilt decision tree.
Everything that decided this, thirteen rules in priority order, ran upstream. Braze is being told the answer, not asked to work it out, which is why the filter is one line instead of nine nested conditions.
Always exclude the holdout
Add the holdout exclusion to every campaign and Canvas that targets a modelled segment. Every one, without exception.
The held-back group is assigned upstream on a stable hash, so the same customers stay out on their own. Braze only ever has to not message them.
Forget it once and that quarter's measurement is gone. There is no way to reconstruct who should have been held back after the send.
Dial the intensity by value tier
Same segment, same message, different weight: frequency cap, offer richness and channel mix flex on the tier.
This is the grid read as rows rather than cells. One segment is one treatment; the tier says how hard to lean in, which is why nine segments cover twenty-three positions instead of needing twenty-three separate builds.
Personalise with Liquid, do not target with it
The cross-sell target chooses which product the message shows, inside a message the segment already decided to send.
Content and audience are different jobs. Keeping the target out of the entry criteria is what stops a personalisation field quietly becoming a second, unversioned segmentation scheme.
The moment it appears in an audience filter, you have two segmentation systems and only one of them is tested.
Let the re-score move people
Enter on segment membership and let a customer exit when their state changes, rather than pinning them for the whole journey.
The model rewrites these attributes on its own schedule. A customer who recovers should stop receiving the win-back that night, not finish the sequence because they qualified on the day they entered.
A journey that ignores state change is how someone gets an "we miss you" message the week after they came back.
Send the result back
Currents streams sends, opens, clicks and conversions into the warehouse, next to the source events.
That return leg is what lets the next run score on what actually happened. Without it the model is guessing from the same data forever, and nothing on the proof page can be produced at all.
And four things not to do here
None of these are careless. They are all the obvious next move, and each one quietly breaks something that only shows up a quarter later.
Do not recompute recency in a filter
Braze's "last used app" is not the recency the model means. The model reads each customer against their OWN rhythm, so a weekly buyer is late at day ten and a seasonal one is not late at day sixty. A fixed window in a filter quietly contradicts the segment sitting next to it.
Do not rebuild the rules as nested conditions
A tree rebuilt in the segment builder cannot be diffed, tested or rolled back, and it will drift from the upstream one within a quarter. If a rule needs changing, change it where it is versioned and let the attribute carry the result.
Do not assign holdouts here
Per-campaign holdouts leak: someone held out of one campaign still receives the other eleven, so twelve honest campaign reads can sum to a programme that did nothing. The holdout has to be one stable assignment across the whole programme, which means upstream.
Do not override a segment for one campaign
A one-off manual list is untraceable by design. It will not appear in the migration read, it will not respect the holdout, and in six months nobody will know it ran.
The seven attributes themselves, and what each one is for, are on the model page.
What a Single-Category Loyalist at Silver actually experiences
Those six moves, run for a quarter against one cell of the matrix, written down as a plan somebody owns. This is the artefact that sits between the model and the send, and it is the one that is usually missing.
Cross-sell into the complementary range without disturbing the core.
Four attributes, assembled. A state is an input to the audience, not the audience itself, and nobody learns the thirteen rules behind it.
What they receive
- 1Flagged as a cross-sell targetIdentifynarrow breadth AND high R and F AND tenure >= EstablishedModel segment
- 2A light nudge toward something newAwarenessEntered cross-sell audience AND 24h after last purchasePushIn-app
- 3Explained on his termsConsiderationNo cross-category purchase within 3 days of awareness pushEmailWeb
- 4The offer, waiting in the appConversionCredit issued AND app sessionContent cardApp
- 5Turning one purchase into a habitHabit1+ cross-category purchase but < 3 in 30 daysIn-appEmail
What they deliberately do not receive
- Activate on seasonal sales only. Skip always-on spend prompts.belongs to Deal-DrivenBuys a spike around the seasonal sale. This plan is buying breadth, not a spike.
- Win them back before they lapse out of the active base.belongs to At-RiskRecency is strong, so a win-back here would pay for purchases that were coming anyway.
- One strong reactivation attempt, then rest the contact.belongs to HibernatingNot silent, so the one strong attempt would be spent and the contact budget reset for nothing.
- Recognise, protect and keep first-to-know. Low pressure, high value.belongs to ChampionNot top tier yet. The recognition track starts when they get there, not before.
- Nurture the forming habit. Do not cross-sell yet.belongs to Rising CustomerThe habit-forming track is for customers still forming one. This habit is formed.
Five real programme plays this cohort sits outside. Written down, because this is the half that decides whether a quarter holds together.
Suppressions
- Consent and channel reachabilityBothChecked upstream so an unreachable customer never enters the audience, and again at send so a withdrawn consent cannot be raced. Defence in depth, worth the duplication.
- Frequency cap at SilverBrazeTwo commercial messages a week. This is the cap the tier sets, not a tie-breaker between two campaigns that both wanted the same person in the same week.
- Recent seasonal sale exposureUpstreamAnyone already prompted for the seasonal sale in the last seven days is held out of this sequence, so the two plans do not stack.
- State change mid-journeyBrazeA re-score out of the cohort exits the journey at the next step and the new state's plan takes over, so nobody keeps receiving a sequence that no longer fits them. A state change is an exit condition, not a surprise.
Held back
Assigned upstream on a stable hash of the customer id, so the same people stay held out across every send in the quarter.
Held at programme level, not per campaign. A campaign-level holdout leaks, because someone held out of one campaign still receives the other eleven.
What counts as success
- Introduce a second category from the complementary range
- Convert the first cross-category purchase, then build the habit
- Grow breadth without denting his core routine
- Lift him from Silver toward Gold on total value
One quarter, read against the cohort at quarter start
A single purchase is not success. The cell has to move and stay moved, which is why this is measured as a state change rather than an open rate.
What we already tried
An explainer alone converts a first complementary range purchase.
Result. Awareness moved. Conversion did not.
Decision. The barrier is trial, not understanding. Add an incentive.
A first-purchase credit converts where the explainer did not.
Result. It converted, but mostly customers who were converting anyway.
Decision. Narrow it to the ones the model says have never tried it.
The credit, narrowed, converts without paying the sure things.
Result. Clear on the first conversion. No read on a second.
Decision. Kept it, moved the explainer earlier, set a follow-up on the second purchase.
Each held back 10 per cent, same cohort. Read top to bottom: every decision set the next hypothesis, and that chain is the register's whole job. Without it a programme re-runs what did not work and calls it new.
Whether this cohort actually moved, set against the slice of itself held back, is on Proof.
Who is actually being touched, and who is not
One cohort's plan is above. This is every campaign in flight, laid over the cells the model says are worth targeting, so contact load and coverage are visible in the same place. Gaps are ranked by share of the base, because a gap over a tenth of your customers and a gap over half a per cent are not the same finding.
Where the opportunity is
Cells the model says are worth targeting that no campaign currently reaches, biggest share of the base first.
- Casual / Low-engagement at Bronze41.2% of the base sits in this segment
- Casual / Low-engagement at Dormant41.2% of the base sits in this segment
- Loyal Habitual at Bronze2.7% of the base sits in this segment
- Single-Category Loyalist at Bronze2.2% of the base sits in this segment
- Reactivated at Bronze2.0% of the base sits in this segment
Where the load is
Thirteen weeks in a quarter, so anything past about nine contacts is more than one a week. Not automatically wrong, but it should be a decision rather than an accumulation.
- 11Loyal Habitual at GoldComplementary range cross-sell · Products discovery · Always-on newsletter
- 11Loyal Habitual at SilverComplementary range cross-sell · Products discovery · Always-on newsletter
- 11Rising Customer at SilverMomentum nudge · Products discovery · Always-on newsletter
The tracks off the grid
These never sat on the tier grid, so they carry their own treatment and their own load.
What is in flight
Illustrative and deterministic: a worked programme, not your campaign list. The shape is the point. Point it at your own inventory and the same three findings fall out, because every campaign already declares the value tier and behavioural segment it targets.
That is RFM working on sample data. The service page has the rest: what it needs from you, how long it takes to build, what it pairs with, and how the lift gets proven.
