For whoever owns the incentive budget at a B2C fintech — and the lifecycle team that spends it
Would they have transacted anyway?
Independent verification of what lifecycle campaigns earn after cashback and referral payouts. A random hold-out per campaign, computed in your warehouse by someone who didn't send the messages. The report finance signs, and the number your lifecycle team takes to finance first.
Built by a CRM data engineer running hold-outs on Customer.io for a multi-brand operator. Customer.io · BigQuery / Snowflake via Parquet import · ClickHouse.
Built by a CRM data engineer, not by the platform that sends.
Two numbers, one budget
What the platform reports
Conversion lift on the event the team picked, measured by the vendor that sends, with a control group that shrinks when results look good, and nothing netted for incentive cost.
What we verify
Incremental revenue after incentive cost, per campaign and segment, with a confidence interval and a hold-out that keeps its history — from your warehouse, independent of who sent.
Same data. The difference is who counts it, and whether incentives are subtracted.
Why a second opinion
The team that spends the incentive budget reports what it earned.
Not a conflict of interest — a missing second opinion. Finance signs a number nobody outside lifecycle has checked.
"Best campaign" usually means "biggest cashback to customers who'd transact anyway".
Conversion lift hides it; only a hold-out with incentive cost subtracted shows it.
Control groups that shrink and reset.
Platform control groups auto-shrink after a few runs and lose history on reset. Last quarter's baseline is gone by the time the board asks.
How it works
- 01
Assign.
A deterministic random share of each campaign's audience (10 % by default, 0 % for segments you protect) is flagged in your CRM and receives nothing from that campaign. Service, security and regulatory messages are never held out.
- 02
Observe.
Both groups are followed for 14 days (7 and 30 reported too): active days, transactions, volume, revenue — interchange, FX margin, fees or subscription, whichever you earn — and every incentive paid: cashback, referral bonus, fee waiver.
- 03
Measure.
Intent-to-treat on everyone assigned, variance reduction on the 6-week pre-period, outliers trimmed on the pooled sample, split-ratio check after every wave. Result: incremental revenue net of incentives, per campaign and per segment, with a confidence interval and a verdict.
- 04
Keep it.
Models, result tables and the dashboard live in your warehouse. Pseudonymous ids only; no PII leaves your perimeter, and nothing leaves at all when we run inside it.
Incentive leakage estimate
Fintech baselines we see are 60–85 % for active users.
Monthly incentive budget going to customers who would have transacted anyway
€82,353
≈ €82,353 of your monthly incentive budget goes to customers who would have transacted anyway (82 %). A hold-out measures the real number in three weeks.
Formula: budget × (share who would transact anyway ÷ share transacting). An estimate, not a measurement.
Measure it on one campaignWho it's for
Finance / Head of Growth who owns cashback
An outside number on the cashback line before the next budget is signed.
Head of Lifecycle
The number you take to finance first. You see every result before anyone else.
What you get
Incentive P&L audit
from €3,000 · 3 weeks
2–3 campaigns from the last quarter, verified after incentive cost. Export Parquet to your bucket, we read it from ClickHouse in your cloud or ours under NDA. Report: how much incentive spend was non-incremental, by campaign and segment.
Verification programme
from €12,000 · 4–6 weeks
Hold-out assignment, CRM flag, models and dashboard in your warehouse, split checks, team training, runbook.
Monthly verification
from €2,500 / month
Every campaign under verification, split checks after each wave, one report for whoever owns the incentive budget.
Proof without logos
A split that looked fine was running on a third of the audience. Our pre-send snapshot caught it; the platform's report would not have.
In the programmes we have measured, the biggest line is incentives paid to customers who would have transacted anyway — invisible in conversion lift, obvious after incentive cost.
Variance reduction on the pre-period cut the audience needed for a money-grade answer by about a third.
FAQ
We already run hold-outs in Customer.io / Braze.
Good — keep them. They report lift on a conversion event and are scored by the platform that sends. We use your split and compute revenue net of incentives independently, in your warehouse, with a split-ratio check after every wave.
We already have control groups in Braze / Customer.io / Iterable.
Keep them; we use your split. Three things they don't answer: what share of last quarter's campaigns had a significant effect in money after incentive cost; whose uplift it is when a customer gets ten campaigns a week; whether the auto-shrinking control stopped on an early false positive. We answer those from your warehouse.
Is this an audit of the lifecycle team?
No — it's the number that defends their budget. The Head of Lifecycle sees every result first, one on one. The first campaign is one they're confident in.
Is holding customers out fair / compliant?
The hold-out only applies to marketing messages. Service, security, regulatory and collections communications go to everyone. Customers flagged as vulnerable, blocked or under KYC review are excluded from both groups by a rule that cannot be switched off in configuration.
What data do you need?
Customer ids (pseudonymous), campaign sends, transactions with amounts and type, revenue per customer-day (or the inputs to compute it), incentives paid, restriction flags. No names, emails, card or account numbers.
We are on BigQuery / Snowflake.
Export the tables to Parquet in your bucket; we read them directly. Full in-warehouse operation on BigQuery/Snowflake is scoped per project.
How big does a campaign need to be?
We compute the minimum detectable effect before starting. Typical: a money-grade answer needs tens of thousands of recipients or a longer window; activity-grade answers come from smaller ones. We tell you which you will get before you commit.
How is revenue defined?
Whatever you earn per customer: interchange, FX margin, fees, subscription, interest. You map it once in the staging layer; the method does not change.
Who sees the results first?
The person who ran the campaign — one on one, before anyone else. Measurement is a tool to defend the budget, not to audit a team.
Timeline?
Audit: 3 weeks from data access. Implementation: 4–6 weeks. First real-wave number: within the first month of implementation.
Start small
Each step is useful on its own. None commits you to the next.
- 1Open calculator
Estimate your incentive leakage
Three numbers, no form, above.
- 2Open the sample
See a sample audit report
Synthetic data, the same layout your report will have.
- 3Request the note
One-page method note
How the hold-out, the revenue join and the verdict work. No call needed.
- 4Book the call
20-minute call
Bring one campaign. Leave with its minimum detectable effect and a test plan.
- 5Ask for a quote
Incentive P&L audit
2–3 campaigns from the last quarter, 3 weeks. From €3,000.
Start with one campaign.
Pick a lifecycle campaign you believe in. We hold back 10% for two weeks and show you what it earned, net of incentives. Then decide about the rest.
We reply within 24 hours on working days. English, Polish, Russian.