How Turnbrief works

Every field on a recommendation traces to a source you can inspect — click any field to see exactly where it comes from
Try it in the chat → ES
Nothing on a recommendation card is free-written. Every field is one of three things: a playbook lookup you wrote, an arithmetic result the pipeline computed, or a derived phrasing the model produced from a cited source under a validator. Click any field to see where it comes from.

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.
  1. PRIMARY — conversion rate of the rule's failing predicaterenewal rate
  2. DOWNSTREAM — the next transition in the lifecycle stage machinereactivation rate
  3. CHANNEL — health metric of the playbook journey's channelemail engagement
  4. 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).