analyst_crew / CRM incrementality

For whoever owns the bonus budget at an iGaming operator — and the CRM team that spends it

Would they have deposited anyway?

Independent verification of what your CRM programme earns after bonus cost. 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 CRM takes to finance first.

Customer.io today. Optimove, Smartico, Braze, Xtremepush, Fast Track next. No player data leaves your infrastructure.

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 bonus cost.

What we verify

Incremental NGR after bonus 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 bonuses are subtracted.

How much of your bonus budget goes to players who would have deposited anyway?

A rough estimate from three numbers you already know. The exact figure needs a holdout — that is what we measure.

12%
9%

If you do not have a holdout, the second rate is a guess. Marketing audiences in our data deposit at roughly 8–18% in 14 days without any message.

Estimated bonus spend on non-incremental deposits

€150,000

About 75% of the budget is paid to players who were already going to deposit.

Formula: budget × (baseline rate ÷ campaign rate). An estimate, not a measurement. The measured figure depends on holdout size and window.

Measure it on one campaign

Why a second opinion

The team that spends the bonus budget reports what it earned.

Not a conflict of interest — a missing second opinion. Finance signs a number nobody outside CRM has checked.

"Best campaign" usually means "biggest bonus to players who'd deposit anyway".

Conversion lift hides it; only a hold-out with bonus 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

A measurement layer that sits beside your CRM, not inside it. Installed in your warehouse in 4–6 weeks.

  1. 01

    Assign holdouts

    5–10% of each campaign audience is held back, assigned deterministically in your warehouse before send and pushed to the CRM as one profile flag.

  2. 02

    Join deliveries to money

    Sends and clicks come back through the platform's warehouse sync and are linked to deposits, GGR and bonus cost per player.

  3. 03

    Measure the difference

    Sent versus holdout, intent-to-treat, with CUPED variance reduction, outlier trimming, a split-ratio check and confidence intervals.

  4. 04

    Report in your KPIs

    Incremental NGR, ROI, Bonus-to-GGR, by campaign, lifecycle flow and segment, with a verdict: works, no effect, loses money.

Proof without logos

We are early and do not list clients. Here is what you can check instead.

Method, published

Nothing is a black box

  • Deterministic holdout by salted hash, fixed before send, never reassigned
  • Intent-to-treat: delivery failures cannot flatter the result
  • CUPED on 6 weeks of pre-period, p99 trimming on the pooled sample
  • Split-ratio check, Welch and bootstrap intervals, minimum detectable effect
  • Self-excluded and restricted players excluded on both arms; cannot be switched off
Sample report, synthetic data

What a result looks like

CampaignDeposit upliftNet NGR / playerVerdict
Reactivation+2.1 pp [0.9; 3.4]+€0.70works
Reload bonus+1.5 pp [0.4; 2.6]−€3.69loses money
VIP weekly+0.2 pp [−1.1; 1.5]+€0.10no effect

In the programmes we have measured, the biggest line is bonuses paid to players who would have deposited anyway — invisible in conversion lift, obvious after bonus cost.

Illustrative numbers from our synthetic test stand, where the true effect is planted and recovered.

Who builds it

An operator-side data engineer

Built by a CRM data engineer who runs Customer.io and Smartico pipelines for a multi-brand, multi-licence operator: warehouse sync, money joins, segment reconciliation and the first holdout programme. Based in Poznań, working across EU and UK time zones.

Prefer to test us? Give us a campaign where you already know the answer. We will recover it blind.

Platforms

PlatformNative control groupsWhat we addStatus
Customer.ioHoldout tests, conversion onlyNGR net of bonuses, per flow and segmentAvailable
OptimovePer-campaign, auto-shrinking controlProgram-level, independent, fixed holdoutNext
Smartico / XtremepushControl %, conversion comparisonRevenue uplift and significanceNext
Braze / Fast TrackGlobal control (Braze); undocumented (Fast Track)Cross-vendor single numberRoadmap

Questions CRM teams ask first

Doesn't a holdout leave money on the table?

Only if the campaign works, and then the loss is 10% of one campaign for two weeks. If it does not work, the money was already being lost to the campaign, not to the holdout. A flat result is the first honest number your programme has produced.

Our audience is small. Will 10% be enough?

We compute the minimum detectable effect before the test starts. If 10% cannot see the effect you care about, we raise the share, extend the window, or measure the whole programme with a global holdout instead of one campaign.

Optimove / Braze / Customer.io already has control groups.

They report conversions and events, not NGR, and never subtract the bonus you paid. The control is also sized and read by the vendor that sends the message. We use their split when it is sound, and compute the money independently in your warehouse.

We already have control groups in Optimove / Braze.

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 bonuses; whose uplift it is when a player 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 CRM team?

No — it's the number that defends their budget. The Head of CRM sees every result first, one on one. The first campaign is one they're confident in.

What about wagering requirements and bonus breakage?

We use realised bonus cost from your bonus tables, not the nominal amount. The gap between nominal and realised is reported separately, because it is where bonus abuse shows up.

Can we keep VIPs out of it?

Yes, as a segment with its own holdout share, including zero. The report then says what was measured and what was not. In practice VIPs are the segment most likely to deposit without the message, so they are also where bonus spend leaks most.

Does any data leave our warehouse?

No. Everything runs inside your own warehouse: ClickHouse today, BigQuery and Snowflake on request for your project. We need player id, timestamps, amounts and campaign ids, not PII. Access is read-only except for our own result tables.

Is this allowed under our licence conditions?

Holdouts apply to marketing messages only. Transactional and responsible-gambling messages are never withheld. Self-excluded, cooling-off and otherwise restricted players are excluded from both arms by a filter that cannot be disabled by configuration.

How long until the first number?

A retrospective audit of last quarter takes 2–3 weeks. A live holdout on one campaign gives a first read after 14 days and a stable one after 4–6 weeks.

What if the result is not significant?

Then the report says so, with the interval and the effect size you could have detected. We size tests to expect at least twice the minimum detectable effect, so this is rare, and when it happens it is still information.

Do you touch our sending or deliverability?

No. The only change in your CRM is one condition on the segment: do not send if the holdout flag is set. Content, timing and channels stay with your team.

Who it's for

Finance / P&L owner

An outside number on the bonus line before the 2027 budget is signed.

Head of Promotions

Which bonuses pay for themselves, by segment, before the next cap cuts them.

Head of CRM

The number you take to finance first. You see every result before anyone else.

Prices

Bonus P&L audit

from €3,000 · 3 weeks

Last quarter's campaigns verified after bonus cost: bonus leakage by campaign and segment, in a report for whoever owns the bonus budget.

Verification programme

from €12,000 · 4–6 weeks

Hold-out assignment, CRM flag loop, models and dashboard in your warehouse, so every key campaign is verified, not just reported.

Monthly verification

from €2,500 / month

Every campaign under verification, split checks after each wave, a monthly report and a quarterly review with the budget owner.

Start small

Each step is useful on its own. None commits you to the next.

  1. 1

    Estimate your leakage

    Three numbers, no form, above.

    Open calculator
  2. 2

    Get the method note and sample report

    Four pages, no call.

    Request the note
  3. 3

    Free 30-minute holdout design review

    Bring one campaign. Leave with a test plan and its minimum detectable effect.

    Book the review
  4. 4

    Bonus P&L audit, fixed price

    Last quarter's campaigns, bonus leakage by segment, 2–3 weeks. From €3,000.

    Ask for a quote
  5. 5

    Verification programme and monthly verification

    Assignment, CRM flag loop, models and dashboard in your warehouse. From €12,000, then from €2,500 a month.

    Discuss scope

Start with one campaign.

Pick a regular marketing campaign you believe in. We hold back 10% for two weeks and show you what it earned, net of bonuses. Then decide about the rest.

We reply within 24 hours on working days. English, Polish, Russian.