← Strategy on a page

Measurement & Test and Learn

How the programme is measured and what each journey tests: rulings first, then the roadmap, then the headline test per journey. No holdout, no causal read. Roadmap-of-record owner: Owner of the T&L roadmap-of-record = OPEN (Data Strategist role unfilled), Sheran to name

North star: Repeat-transaction rate → ARPU → revenue (the lifecycle north star)
Holdout, RULED: commit (leading indicators allowed interim) Persistent long-term holdout; Analytics sizes the %. Until live: everything is 'attributed, not incremental' and nothing is claimed proven, leading indicators permitted where full significance isn't realistic. Only 1 send is currently proven-incremental (GRW-16 +16.9%); the £4.99M abandoned-auction reads −2.7%.
Live source of truth →Test & Learn plan (Airtable) ↗

The standing measurement rulings

These five govern every journey's test design. Three are ruled, two are not. Read the provenance column before quoting any of them. Reconciled against the ten journey review packs, 27 Jul 2026; each pack remains the current source for its own journey.

RuleWhat it meansStatus & provenance
1 · Attributed, not incrementalUntil the long-term holdout is live, every figure in the programme is attributed. Last-touch attribution is not incrementality, and no attributed number is presented as a result. One exception: the day-before email family (GRW-16) reads +16.9% / +16.3% incremental vs control (confirmed, CRM estate, Apr to Jun 2026). No other moment may borrow that figure.RULED · Sheran, 9 Jul 2026: the long-term-holdout commitment, with attributed-not-incremental labelling until it is live. The holdout STRUCTURE is still open at decision DL-018
2 · One headline test per journey releaseEach journey release carries exactly one headline test. Everything else is a phase-2 row, gated on the headline read.RULED · Sheran, 14 to 20 Jul 2026, the test-discipline rule. Some summaries drop the word release; a journey can have several releases, so the rule is per release, not per journey. Cite it by name: no single decision-log id covers the rule itself, and the per-journey headline tests are logged separately (DL-041 Journey 1, DL-046 Journey 2, DL-062 Journey 3, DL-074 Journey 4, DL-097 Journey 6, DL-117 Journey 10).
3 · The double read: journey lift and model targeting are read separatelyWhere a propensity model both selects and times the sends, a single holdout confounds the model found people who were coming back anyway with the journey brought them back. Two reads, both required: (1) journey lift, a holdout within each propensity band, treated vs untreated; (2) targeting value, propensity-keyed waves vs a batch arm, each with its own holdout. No holdout, no causal claim. The cautionary precedent is the blanket recovery read at −11.8% bids (confirmed, Analytics).RULED for Journey 7 only · decision DL-103, closed as the working assumption by the Journey 7 council, 20 Jul 2026. Owner: Analytics (Ivi) designs and owns, Sheran approves. The general separation rule is carried in every pack; portfolio-wide adoption is asserted in the executive recommendation but no decision record extends DL-103 beyond Journey 7. TBC, Sheran.
4 · Holdout structureThe working assumption the packs design to: a small global always-out control for programme-level reads, plus canvas-level holdouts on the moments carrying a £ claim. Analytics sizes both layers before any test is wired.OPEN · decision DL-018, Ivi (Analytics) recommends, Sheran ratifies, due 31 Jul 2026. Not settled: a late structure decision delays every powered read in the quarter. There is no ruling that says one holdout per journey; three granularities are in play (journey, canvas, wave).
5 · Unsubscribe and opt-out as the standing guardrailEvery shipped test reads unsubscribe, push opt-out and complaint rate per variant. A variant that wins on its primary KPI but spikes opt-outs fails.PRACTICE, NOT RULED · now carried in all ten packs. Journey 5 carried none, and it sends to the never-transacted pool: unsubscribe rate and opt-out rate were added to its Test and Learn guardrails on 27 Jul 2026 (Sheran), baselines TBC: Analytics. Still TBC, Sheran: ratify it as a portfolio-level guardrail, and settle whether the standing term is unsubscribe or opt-out.
⚑ Two flags for Sheran
a. Journey 4: the separation claim is WITHDRAWN (Sheran, 27 Jul 2026). Journey 4 does not run on a propensity model. Its targeting is a rule-based 7-day non-return gate plus value bands, so there is no model whose selection could be mistaken for journey lift. A single within-journey holdout on the D+3 gate is the right design, and it is what the pack now states. Journey 4 pack + decision DL-074. Journey 7 KEEPS the double read (DL-103, closed), because its model both selects and times the sends.
b. Bare ruling numbers are banned (Sheran, 27 Jul 2026). Two numbering systems are in circulation: the Gate-1 rulings of 9 Jul, and the later propagating rules of 14 to 20 Jul. Both use 8 and 9 for different rules, and both use 1. Cite the rule in words plus its decision-log id where one exists; where no id exists, state the rule in words and say so. Never write “ruling 8”. All ten journey packs have been swept for this.

KPI tree: objective → metric

O1 · Drive the 1st win
new → first-transaction rate
23% (confirmed)
ACT-19, ACT-24, ACT-07→first-win
O2 · Funnel friction
step-recovery CVR (bid-add / confirm-abandon)
bid-add 48% drop ~34k/mo; confirm-abandon ~10.3k/mo (confirmed)
ACT-02, ACT-05, ACT-08
O3 · Habit loop
2nd-transaction rate · M0→M1 retention
~93% never re-bid; M0→M1 20.15%→7.47% (confirmed)
GRW-01, GRW-04
O4 · Lifecycle engine
CRM opt-in rate · contactability · % of moments incrementally-measurable
reachable ~40% new / 55% dormant / 82% buyers (confirmed)
ACT-13, the foundations

Measurement P0 fixes (gate results, not design)

Correlation token on ~20 transactional auction pushestoday they fire unmeasured end-to-endP0: per-moment dependency
Iterate survey deep-link (opens Iterate, not the app)post-trip surveys get ~10-40 responses, not thousandsP0
Opt-in IAM capture → Tableauthe consent keystone is unmeasurableP0

Experiment roadmap, 11 sized tests (Jun → Oct 2026)

Bar = build → live window; ▸ = results read. Colour = V2MOM objective. Snapshot of the hub roadmap (live version linked above).

JunJulAugSepOct
Lost-bid moment trigger vs holdoutO1 · 1st Win · 📝 Backlog
Early lapse-save nudge vs holdout (61 to 90d)O3 · Habit loop
Value-tiered win-back vs holdout (lapsed 91 to 240d)O3 · Habit loop · 📝 Backlog
Post-win 30-day programme vs holdoutO3 · Habit loop
Welcome-back app re-open trigger (+ first-win variant)O3 · Habit loop · 📝 Backlog
Cooling never-buyers re-engagement (61 to 90d)O1 · 1st Win · 📝 Backlog
Churn-risk-timed lapsing-prevention vs holdoutO3 · Habit loop · 📝 Backlog
Cold never-buyers selective touch (91 to 120d)O1 · 1st Win · 📝 Backlog
No-bid drop-off & availability-alert retargetingO1 · 1st Win · 📝 Backlog
Churned seasonal + anniversary wavesO3 · Habit loop · 📝 Backlog
Seasonal first-win waves: never-transacted churnedO1 · 1st Win · 📝 Backlog

When results land: the read calendar

Holdout-proven reads with a scheduled date. Standing cadence on every shipped test: +1wk · +2wk · +4wk (holdout-proven) · +3mo (scale / iterate / kill).

Read dateTestSample · significance
2026-09-14Early lapse-save nudge vs holdout (61 to 90d)n=430 · 95%
2026-09-21Value-tiered win-back vs holdout (lapsed 91 to 240d)-
2026-09-28Post-win 30-day programme vs holdout- · 95%
2026-10-06Churn-risk-timed lapsing-prevention vs holdoutn=550 · 95%

The headline test per journey

One per journey release, per the test-discipline rule above (rule 2 in that table). Everything else in a journey is a phase-2 row gated on this read. Each journey's review pack is the current source for its own design; open it from the 10-journey list on Strategy on a page.

JourneyThe headline testState
J1 First win to 2nd winThe win-moment one-job rework (receipt plus in-app: realised-value-led, referral stripped, single next-best action) vs the current 5-CTA send.Guardrail floor is hard: open/click must not fall below 71.3% / 12.2% (confirmed, Braze/Lisa). Blocked until the 2nd-transaction KPI is standardised (TBC, Analytics/Ivi).
J2 Pre-travel & travel dayGRW-16 reassurance reframe A/B. Defensive: the day-before email is the only proven-incremental send, so the reframe must clear a non-inferiority floor. Current creative stays as control. Replace only on a win or a tie.Headline pick still open (DL-046, Sheran picks, Ivi designs). Rollback floor TBC, Ivi + Lisa (DL-054). Three cells can hit one trip, so Analytics owns one interaction design.
J3 Funnel abandonACT-02 bid-add reassurance vs holdout; first-bid rate among never-bid dwellers.Blocked on the dwell event and sizing. Baseline, MDE, significance and runtime all TBC, Analytics.
J4 Loss recoveryThe D+7 gate itself: gated recovery vs a powered no-send control among 7-day non-returners.DL-074. Guardrail: overall bid volume must not drop (the prior blanket read was −11.8%, confirmed). Ship-blocked on the pinned return definition (DL-069), which moves holdout power about 2.5x.
J5 Never-transacted, first winThe state-aware onramp as one release (upgrade-now copy plus the practice tile) vs holdout. Read conversion, never sessions.Precondition: declare a winner on the existing education message or fold its control into this holdout. No unsubscribe or opt-out guardrail is set: see flag 5 above.
J6 Post-trip habit & advocacyA journey-level holdout on the whole post-trip spine; next transaction within 60 days of a positive completed trip.Baseline TBC, Analytics (Ivi). The broken survey link fix is a P0 before-and-after read, not a test cell.
J7 Lapsed win-backThe double read. Propensity-keyed waves vs a batch arm, each against a holdout within its own propensity band.DL-103, adopted by the Journey 7 council 20 Jul. Band cut-offs and the decision rule fixed before launch. Cannot be sized until the churn-propensity model lands (launch-blocking, Analytics).
J8 First slip, early lapse-saveFrog voice vs brand voice, carried through the whole episode and read at episode level, plus a no-acknowledgement cell if volumes allow.Cells TBC on volumes. A behavioural win that spikes opt-outs fails: the voice read gets a qual twin (sentiment and support themes per variant).
J9 Seasonal reactivation wavesWave 1 vs its no-contact holdout. This is the funding read: if wave 1 cannot beat organic plus costs, the calendar does not scale.Measured against an organic reactivation baseline of 0.84% (confirmed, Jul 2026). One baseline and pool definition must be published before the holdout is sized.
J10 Home re-entryRecognition on vs off: state-resolved recognition card and tiles feed vs the current generic Home. Read transaction rate, never sessions.DL-117, DESIGN stage. Needs a shared experiment calendar with Product so live product tests do not contaminate it.

Per-moment: metric · baseline · band · measurable?

MomentMetricBaselineBandMeasurable?
GRW-16anxiety-contact rate / CSAT + conversion76.5% pre-travel neg; +16.9% incremental (confirmed)PROVENMeasurable: proven
ACT-13push opt-in capture rate among not-opted in-lead bidders32% not opted (~79k/yr); M29 rate TBCCAPTUREBlocked: needs opt-in→Tableau (P0)
GRW-012nd-transaction rate5% → 7.5% targetPLAUSIBLENeeds holdout + correlation token
ACT-24opt-in capture + first-txn comprehensionclarity 54.7% 'somewhat clear'; 56% not opted at winCAPTUREBlocked, RFM segment + correlation token
ACT-07re-bid / recovery ≤30d159k losers/yr; current read −vePLAUSIBLENeeds holdout (mandatory)
ACT-19new → first-transaction rate23%; Beginner's Luck 68.6% (confirmed)PLAUSIBLENeeds the never-bid walk + segments
GRW-17anxiety-contact / missed-coach tickets4,776 on-train value-failure ticketsPLAUSIBLENeeds holdout + trip-state surface

The 7 P1 tests: in detail

Full test design for the locked P1 moments. MDE, significance and runtime are set up front by Analytics, never post-hoc (post-hoc gave Q1 a 0-of-7 significance rate).

ACT-13 CAPTURE

Primary KPIpush opt-in capture rate among not-opted-in in-lead biddersBaselineM29 opt-in rate TBC, AnalyticsHypothesisA value-framed transactional alerts ask at the post-bid in-lead moment, branched by permission state + outcome, increases push opt-in capture among not-opted-in bidders vs the current generic M29 slideup, and downstream makes the lost-bid / re-bid NBA eligible to fire.HoldoutAnalytics-sized (no fixed %); incremental arm held out, in-app surface fires for allGuardrailOpt-in rate must NOT drop on the marketing-copy variant vs transactional default; slideup completion / dismissal rate muMDE · significance · runtimeTBC: Analytics (set with baseline) · TBC: Analytics (set up front, not post-hoc) · TBC: Analytics (flag if runs past Q3)Start-gateSnowflake sizing + (where applicable) BRZ-83 / RT events

ACT-19 PLAUSIBLE

Primary KPIbuy-vs-bid resolution / BUN-step drop (comprehension, not revenue)BaselineBUN-step drop TBC, AnalyticsHypothesisA certainty-led primary CTA plus a price-sensitive secondary line and an explicit comparison anchor in the existing BUN box improves buy-vs-bid resolution and reduces BUN-step drop vs the current generic copy, measured as a comprehension/UX play, not a revenue play.HoldoutAnalytics-sized (no fixed %); incremental arm held out, in-app surface fires for allGuardrailMust not cannibalise higher-LTV bidding (watch bid-vs-buy mix); accidental-bid / complaint rate must not rise; no pull-fMDE · significance · runtimeTBC: Analytics (set with baseline) · TBC: Analytics (set up front, not post-hoc) · TBC: Analytics (flag if runs past Q3)Start-gateSnowflake sizing + (where applicable) BRZ-83 / RT events

ACT-07 PLAUSIBLE

Primary KPIreturn-to-bid / BUN conversion among 7-day non-returnersBaseline7-day organic return 74 to 79% confirmed; day-1 loser −3.73% confirmedHypothesisFiring recovery (M35) only on 7-day non-return, targeting mid/low value + the zero-return cohort and suppressing power users, drives incremental return-to-bid / Buy Upgrade Now (BUN) conversion vs the current blanket recovery, without depressing overall bid volume.HoldoutAnalytics-sized (no fixed %); incremental arm held out, in-app surface fires for allGuardrailOverall bid volume must not drop (the prior blanket recovery read -11.8% bids); opt-out / complaint rate must not rise; MDE · significance · runtimeTBC: Analytics (set with baseline) · TBC: Analytics (set up front, not post-hoc) · TBC: Analytics (flag if runs past Q3)Start-gateSnowflake sizing + (where applicable) BRZ-83 / RT events

ACT-24 PROVEN

Primary KPIopt-in capture rate (non-contactable first-winners) + downstream re-bidBaselineTBC: Analytics (IW first-transactor opt-in not in evidence base)HypothesisA dynamic, value-accurate Instant Win celebration plus a single-job peak-trust opt-in ask increases opt-in capture among non-contactable first-win winners and downstream re-bid / 2nd-win rate vs the current operational confirmation.HoldoutAnalytics-sized (no fixed %); incremental arm held out, in-app surface fires for allGuardrailWin-celebration completion rate must not drop; opt-out / complaint rate must not rise; no double-messaging of users who MDE · significance · runtimeTBC: Analytics (set with baseline) · TBC: Analytics (set up front, not post-hoc) · TBC: Analytics (flag if runs past Q3)Start-gateSnowflake sizing + (where applicable) BRZ-83 / RT events

GRW-01 PROVEN

Primary KPI2nd-transaction rate (M1 repeat-bid 7.03%→8.8% target)BaselineM1 repeat-bid 7.03% confirmedHypothesisA one-job win-to-2nd-win send (realised-value-led + single NBA) with referral stripped from first win, plus a peak-trust opt-in capture, increases 2nd-bid conversion and opt-in capture among winners vs the current 5-CTA T31, and delivers measurable incremental £ within the proveHoldoutAnalytics-sized (no fixed %); incremental arm held out, in-app surface fires for allGuardrailWin-send open/click must not drop below as-is (71.3% / 12.2%); opt-out / complaint rate must not rise; demoting referralMDE · significance · runtimeTBC: Analytics (set with baseline) · TBC: Analytics (set up front, not post-hoc) · TBC: Analytics (flag if runs past Q3)Start-gateSnowflake sizing + (where applicable) BRZ-83 / RT events

GRW-16 PROVEN

Primary KPIpre-travel CSAT / anxiety-ticket deflectionBaselineTBC: Analytics (pre-travel CSAT baseline)HypothesisA proactive, product-accurate pre-travel confirmation push (travel −1d, persona-weighted, Avanti-scoped, deep-linked to the live ticket) reduces pre-travel 'did it work?' anxiety contacts and lifts pre-travel CSAT vs no proactive confirmation, without raising opt-out / complaint HoldoutAnalytics-sized (no fixed %); incremental arm held out, in-app surface fires for allGuardrailPush opt-out / complaint rate must not rise; frequency fatigue must not increase for repeat commuters (one-per-trip cap MDE · significance · runtimeTBC: Analytics (set with baseline) · TBC: Analytics (set up front, not post-hoc) · TBC: Analytics (flag if runs past Q3)Start-gateSnowflake sizing + (where applicable) BRZ-83 / RT events

GRW-17 PROVEN

Primary KPIrepeat-bid / LTV retention; anxiety-ticket deflectionBaselinewon-bid LTV £115.62 vs £22.92 confirmed; anxiety 1,753 ticketsHypothesisA morning-of wayfinding comm (platform + coach) for upgrade-won transactors reduces last-mile travel anxiety and lifts repeat-bid / lifetime-value retention vs no morning-of guidance; the iOS Live Activity lifts these further than a plain cross-platform push by enough to clear itHoldoutAnalytics-sized (no fixed %); incremental arm held out, in-app surface fires for allGuardrailPush opt-out / notification-disable rate must not rise; complaint rate must not rise; no double-message in a single jourMDE · significance · runtimeTBC: Analytics (set with baseline) · TBC: Analytics (set up front, not post-hoc) · TBC: Analytics (flag if runs past Q3)Start-gateSnowflake sizing + (where applicable) BRZ-83 / RT events