Renewal Save playbook
usage_drop_pct > 0.2 AND days_to_renewal <= 90 · 139 accounts
playbook — you wrote it
computed — arithmetic
derived — phrased, cited
Campaign name playbookRenewal Save
Target audience derived139 accounts matching the rule F1
Why this matters derivedThe rule is the reason: usage is down and renewal is within 90 days. Median usage drop 34% F2
Journey playbookusage recap email · success-review invitation · renewal call
Messaging theme derivedGet back the value you already set up. F3
Timing derivedRenewal within 90 days — land before the window closes F1
State computedGlobal
Success metrics computedrenewal rate · reactivation rate · email engagement · product usage lift
Data needed computedusage_drop_pct · days_to_renewal
Compliance computedNo consent data ingested — verify contactability before any send F1
Localization derivedLocalize against the state mix
Assumptions computedRule thresholds as configured · unvalidated ML scores not used
Campaign name playbook
Comes fromA lookup: segment → playbook.yaml. Looked up verbatim, never composed.
Why a lookupIf the model invented the campaign type, two marketers asking the same question would get different campaigns, and neither could be reviewed before it ran. The playbook chooses; the model personalises.
Who owns itYou do — edit the playbook and every future card using this play changes. No engineer, no deploy.
Validatorexists verbatim in playbook.yaml — anything else is rejected.
Target audience derived
Comes fromThe segment rule and the count findings, phrased.
rule → matched accounts counted by the pipeline → phrased as "139 accounts matching…" citing F1
The model's jobTranslation only — it turns predicates into words; it does not decide who is in the audience.
Validatormust not contradict the rule; cites the count findings.
Why this matters derived
Comes fromThe rule is the reason — the model renders it in plain language, it does not invent it.
rule_text → phrased + the median-value finding F2 copied exactly
Blast radiusChanging the rule rewrites this field on every card citing it. Rule edits are versioned, attributed, and previewed with the segment-size delta.
Validatorgrounding check — every number/claim equals a cited finding.
Journey playbook
Comes fromA lookup: the playbook entry's journey steps, verbatim.
Who owns itYou do — same blast radius as the campaign name: edit once, every future card changes.
Validatorverbatim match to the playbook entry.
Messaging theme derived
Comes fromThe inverse of the blocking behaviour.
rule states what's true → behavioural finding F3 states WHERE they stalled → theme = the blocker, inverted
The model's jobPhrasing the inversion as one action, from the customer's point of view. Your content briefs are runtime filters, not just guidance.
Validatorscites the behavioural F#; don't-say filter (the stage's don't-say list from Content by Stage mechanically rejects, e.g. pricing for Trial); one action, customer's point of view — "Discover the power of our platform" fails, "Finish the project you started" passes.
FallbackNo behavioural finding (drop-off data not connected) → theme falls back to the playbook default AND the card flags it: "theme is generic — no drop-off data available." Honest degradation, surfaced as a gap. Never silently generic.
Timing derived
Comes fromRenewal windows and measurement windows in the findings, phrased.
Validatorconsistent with the state finding (windows, calendars); numbers grounded.
State computed
Comes fromThe segment's state aggregate — arithmetic over the matched accounts.
Validatorequals the segment's computed state aggregate.
Success metrics computed
Comes fromThe model does not choose these. Four derivation rules compute them; the model only phrases.
- PRIMARY — conversion rate of the rule's failing predicaterenewal rate
- DOWNSTREAM — the next transition in the lifecycle stage machinereactivation rate
- CHANNEL — health metric of the playbook journey's channelemail engagement
- LEADING — the behavioural columns the rule readsproduct usage lift
Validatorseach metric derivable by rules 1–4 AND measurable from connected data sources. Your data-activation choices in onboarding propagate all the way into this field — no marketing source connected means "email engagement" cannot be claimed. You cannot promise to measure what you cannot see.
Data needed computed
Comes fromThe columns the rule reads — mechanically extracted from the rule itself.
Validatorequals the rule's column set exactly (nothing added, nothing dropped).
Compliance computed
Comes fromThe pipeline's consent-gap calculation.
What it is notNot a gate — turnbrief doesn't send. It makes sure the person carrying this to the sending platform knows.
Validatorequals the pipeline's consent-gap calculation (rephrase ok, numbers and regulation immutable).
Localization derived
Comes fromThe state-mix finding, phrased as what needs localizing.
Validatorconsistent with the state finding.
Assumptions computed
Comes fromFlags the pipeline recorded while unifying your data — nothing else may appear here.
Validatorequals recorded pipeline flags (FX rate+date, unmatched %, suppressed segments).