The measurement layer

Defensible by construction. Honest about its limits.

Three lift measurements, computed from the same session-level substrate, derived from real purchase events. The model is observational — not a randomised experiment — and the page reports it that way.

Two-group modelProduct-scopedLive mode required
Measurement model
attribution.v2· two-group session model30d window
01Session substrate
PDprimary
12,000
BDbaseline
50,000
Compute lift
02Conversion rate lift
Primary4.0%
vs
Baseline1.5%
Lift+167%
Monetise
03Incremental revenue
~£25,500/ mo
From300 incremental orders·£85 AOV
The four counts

Four counts. Two splits.

Sessions sort into one of two cohorts. Orders sort by whether the purchased product matches the clicked product.

Sessions in the date rangeAll sessions
bots filtered
splits into
PDPrimary

Flockr click sessions

Sessions where any product was clicked with a Flockr message visible on a browse surface.

PLP · search · predictive search · recommendation
BDBaseline

All other sessions

Every other session in the same period.

Mutually exclusive with PD
Orders in the date rangeAll orders (deduped)
product-scope test
splits into
PNPrimary order

Same product, same click

The purchased product equals the product Flockr-clicked on browse in this session.

Subset of PD-session orders
BNBaseline order

Everything else

Including “wrong-product” purchases by primary sessions.

Catches the over-claim cases
Why split orders separately

A primary session that clicked product A on the PLP and then bought product B is in PD, but the order is BN. This stops Flockr from claiming credit for purchases it didn’t influence.

Three lifts

Three lifts. One substrate.

All derived from the same session data. None of them collapses into the others — each tells a different story about Flockr’s influence.

1Session level

Conversion rate lift

How much more often does a Flockr-influenced session end in an order, vs. an unexposed session?

Formula
(PN/PDBN/BD)÷(BN/BD)
Worked example+167%
Headline figure on the portal page
2Product impression level

Product CTR lift

For the same product, how much more often is its tile clicked when a Flockr message is visible vs. not?

Paired comparison
with-message CTRvswithout-message CTR
  • tile in viewport— both sides
  • same product set— appeared in both conditions
Like-for-like, controls for product appeal
3Page view level

Page CTR lift

For a given browse page view, how often does it end in clicking a Flockr-influenced product vs. a non-Flockr product?

Share comparison
Are Flockr products winning the click?

None of them collapses into the others.

The full derivation

Six steps. End to end.

From PD/BD/PN/BN to incremental revenue per month. Worked with illustrative round numbers — same example that flows through the hero.

attribution.walkthrough· worked example30-day period · AOV £85
1
Primary order rateorders ÷ sessions
PN÷PD=480÷12,000
4.0%order rate
2
Baseline order rateorders ÷ sessions
BN÷BD=750÷50,000
1.5%order rate
3
Conversion rate liftprimary vs baseline
(4.0%1.5%)÷1.5%=2.5%÷1.5%
+167%lift over baseline
4
Incrementality multiplier1 − (BN/BD ÷ PN/PD)
1(1.5%÷4.0%)=10.375
0.62562.5% of primary
What this is: the fraction of primary orders that are extra — above what the baseline rate would have produced anyway.
5
Incremental orders & revenuemonetise the multiplier
orders =480×0.625=300 orders
revenue =300×£85 AOV=£25,500
£25,500period total · 30 days
6
Monthly run rateextrapolate to 30 days
(£25,500÷30 days)×30
£25,500/ mo · estimate
Why a multiplier, not all primary orders

Some of the orders in the primary group would have happened at the baseline rate anyway. The multiplier credits only the share above baseline — the implicit Flockr contribution.

Methodological locks

Two locks. No over-claim.

Two constraints that prevent the model from claiming credit for things it didn’t influence.

01· Product-scoped

The clicked product must equal the purchased product

A primary-group session that clicked product A on the PLP and then bought product B is still in PD — but the order goes into BN, not PN. Without this constraint, the model would over-claim every purchase made by a Flockr-exposed shopper.

Effect — in practice
clickedA· boughtAPN
clickedA· boughtBBN
02· Browse surfaces only

PDP, cart and checkout don’t qualify a session for primary

Browse surfaces are where Flockr influences product selection. Downstream surfaces confirm decisions already made. Restricting attribution to browse makes “Flockr was involved in the choice” the explicit claim.

Effect — in practice
Qualifying
PLPsearchpredictiverecommendation
Not qualifying
PDPcartcart drawercheckout
Operational layer

Built to stay honest.

Three operational properties that keep the model defensible at run-time — not just on paper.

01· Bot filtering

Excluded from both groups

Sessions classified as bots are dropped before the model runs — they don’t inflate the baseline or the primary count. Detection runs against the standard exclusion list maintained for the analytics pipeline.

BotsReal sessions · primary + baseline
Same exclusion list as analytics
02· Paired comparison

Like-for-like for Product CTR

Product CTR lift only includes products that appeared in both conditions — with and without a Flockr message. Same product, both genuinely seen.

same product settile in viewportboth conditions
Controls for product appeal
03· Live mode

Required for attribution figures

Attribution requires Flockr in live mode — rendering messages, firing visibility events, recording browse-surface clicks. In data mode the conversion fields are empty by design, not misrepresented.

Liveattributionpopulates
Dataattributionempty by design

Honest at run-time. Not just on paper.

The empirical anchor

Every engagement starts with a holdout.

Every new client begins with a true 50/50 holdout test. Half of shoppers see Flockr, half don’t — run to statistical significance, reported as a full causal picture. The observational model is what runs after. The randomised test is what anchors it.

holdout.experiment· 50/50 splitEvery new client
1Setup

50/50 random split

Every shopper deterministically assigned at session start. Half see Flockr — messages render, signals act. Half don’t — genuine holdout, never exposed to a Flockr message during the test.

50%Holdout
50%Treatment
2Run

Until statistically significant

Duration isn’t fixed — the test runs until lift figures clear a p < 0.05 significance threshold. Larger catalogues hit significance faster; smaller stores take longer. No arbitrary stop dates.

Confidence95%· significant
50%p < 0.0599%
3Report

Full causal report

Not a single number. The result returns the full causal picture — conversion lift, revenue per visitor, AOV impact, and more — each with the confidence interval and significance flag attached.

Conv. rate lift+ 41%sig
Rev / visitor+ 38%sig
AOV impact+ 4%sig
After significance
Option AFold the holdout into live — full traffic on Flockr from there.
Option BKeep the holdout running — ongoing causal truth, calibrating live figures continuously.

Observational from there. Anchored from start.

Honest about what this is

The ongoing model is observational. The anchor is randomised.

The 50/50 onboarding holdout is the empirical anchor — that’s the causal truth. Once it ends and the holdout folds into live (Option A), steady-state attribution returns to observational measurement.

The primary group is then self-selecting — clickers are higher-intent than average shoppers. Some share of ongoing reported lift is intent-driven, not Flockr-driven. The product-scoped constraint partially compensates by stopping the model from claiming downstream unrelated purchases. It does not eliminate it.

Ongoing lift figures should be read as commercial-grade estimates anchored to the empirical holdout result — directionally reliable, useful for tracking change over time, but not themselves a randomised result.

Clients who want continuous causal truth keep the holdout running (Option B) — the randomised comparison stays live indefinitely, calibrating attribution against ground truth on a rolling basis.

Attribution in the portal

See it on your data.

Attribution figures live on the Conversion & Attribution page in the Portal — alongside daily charts, message-quality validation, and per-product diagnostics.

Conversion & Attribution pageLive
From this page4 KPIs
Conversion rate lift
Incremental revenue / mo
Product CTR lift
Page CTR lift
Diagnostics also in portal3 views
Daily orders & revenue split
Message quality validation
Per-product attribution table
Live data ·1-hour cache