# Bonus Cost per Retained Player: How to Calculate It in iGaming

How to count bonus cost per retained player: define cost, compute NGR after bonus, test a bonus arm against a no-bonus arm and follow a worked example.

Bonus cost per retained player is the bonus cost of a group divided by the number of players the bonus kept. It is not the bonus cost divided by active players. Active players include those who would have stayed without any offer, and they inflate the denominator.

To count it, you need three numbers from a controlled test: the bonus cost in the bonus arm, the NGR after bonus in both arms, and the difference in retained players between the arms. The method below uses a no-bonus arm as the baseline and ends with a worked example.

The result answers one question: did the bonus buy retention at a price the business can pay? If the NGR after bonus is no higher than in the no-bonus arm, the answer is no, whatever the activity numbers say.

## Why a simple bonus report misleads

Most bonus reports list players who claimed an offer, their deposits and their GGR. They show what happened among claimers. They do not show what the bonus caused.

Two things distort that view. First, players who take an offer are not a random sample. They are more active than average, so they look better than the base. Second, many of them would have deposited anyway. The report credits the bonus with revenue it did not create.

A test fixes both. You split one eligible audience at random into two arms, give one arm the bonus and the other none, and compare results over the same period. The difference between the arms is the effect of the bonus. Gamble Grip measures business results separately from activity for the same reason.

## 1. Define bonus cost once

Choose one definition and use it in every report. This guide uses the following.



- **Bonus cost** = bonus value released into the real-money balance + cost of delivering the offer
- **Bonus credited** = bonus value placed in the bonus balance when the player claims
- **Release rate** = bonus value released ÷ bonus credited



Credited value is not cost. A player who claims a bonus and never completes wagering costs the operator nothing in released value. The release rate tells you how much of the credited value turns into real money.

Wagering rules change the release rate. Recalculate the release rate for every offer when the wagering terms change.

Count partly completed bonuses by the same rule. If you end a relationship for safer gambling reasons, you may pay a proportion of the bonus. Any such payment is released value. Put it in the cost line.

## 2. Compute NGR after bonus

NGR after bonus is the revenue the operator keeps once the bonus has been paid. The [NGR glossary](/glossary/ngr/) gives the full definition. For a bonus test you need only four lines.



- **GGR** = stakes − winnings paid
- **Bonus cost** = as defined in step 1
- **Taxes and fees** = gambling taxes, payment fees and other deductions in your reporting policy
- **NGR after bonus** = GGR − bonus cost − taxes and fees



Calculate it per arm and per player, over a fixed period. Use a fixed window, for example 30 days from the first offer. Choose it before the test and keep it.

Keep the same deductions in both arms. If the bonus arm pays more tax because it generates more GGR, that tax belongs in its NGR.

## 3. Build the two arms

Take one eligible audience and split it at random into a bonus arm and a no-bonus arm. Both arms get the same channel, the same timing and the same creative. Only the bonus differs.

**Test design**

- Before: Fix the rules. Audience, split, period, metric and bonus definition are written down.
- Day 0: Split and send. Random split. The bonus arm gets the offer. The no-bonus arm gets the same message without it.
- Day 30: Close the window. Count retained players, GGR, bonus cost and NGR in both arms.
- After: Decide. Scale, redesign or stop based on the difference between the arms.

Apply the suppression rules to the audience before the split. Players who have self-excluded, withheld consent or shown strong indicators of harm leave the audience, and they leave both arms. The [responsible gambling in CRM](/blog/responsible-gambling-crm/) guide lists the checks.

Keep the no-bonus arm clean. If its members receive the bonus through another journey during the test, the comparison is lost. Pause overlapping bonus journeys for both arms or exclude those players from the audience.



## 4. Count incremental retained players

Define "retained" before the test. For example, at least one deposit in the 30 days after the offer. Use the same rule for both arms.



- **Retention rate of an arm** = retained players ÷ players in the arm
- **Incremental retained players** = (bonus arm rate − no-bonus arm rate) × players in the bonus arm



Only the incremental players belong in the denominator of the cost per retained player. Players who stayed in the no-bonus arm would have stayed in the bonus arm too. Their bonus cost bought nothing.

The [incremental lift](/glossary/incremental-lift/) glossary entry explains the same logic for revenue. Retention and NGR give two readings of one test. Report both.

## 5. Read cost per retained player and decide

Compute three numbers.



- **Cost per incremental retained player** = bonus cost of the bonus arm ÷ incremental retained players
- **Incremental NGR after bonus** = NGR after bonus of the bonus arm − NGR after bonus of the no-bonus arm
- **Net incremental NGR per retained player** = incremental NGR after bonus ÷ incremental retained players





**Example.** An operator splits 20,000 eligible players into two arms of 10,000. The bonus arm receives a €10 offer. 3,000 players claim it, so €30,000 is credited and €21,000 is released after wagering. Delivery costs are left out. Taxes and fees are 15 percent of GGR.

In the bonus arm, 2,200 players deposit within 30 days (22 percent). In the no-bonus arm, 1,800 do (18 percent). Incremental retained players: (22% − 18%) × 10,000 = 400.

GGR is €96,000 in the bonus arm and €70,000 in the no-bonus arm. NGR after bonus is €96,000 − €21,000 − €14,400 = €60,600 in the bonus arm, and €70,000 − €0 − €10,500 = €59,500 in the no-bonus arm.

Cost per incremental retained player: €21,000 ÷ 400 = €52.50. Incremental NGR after bonus: €1,100. Net incremental NGR per retained player: €1,100 ÷ 400 = €2.75.



**NGR after bonus by arm**

- Bonus arm: €60,600
- No-bonus arm: €59,500
- Difference: €1,100

The offer raised GGR by €26,000 and kept 400 more players. It added only €1,100 of NGR after bonus. A report that showed the bonus arm alone would have shown €60,600 and looked healthy.

Use the result to decide. A positive net incremental NGR means the offer pays for itself in the window. Longer payback depends on how long the extra 400 players keep playing, which the same arms show over 60 or 90 days. A negative result means the offer costs more than it earns, and the options are a lower value, a tighter audience or no offer. The [campaign economics calculator](/tools/campaign-economics-calculator/) models cohort NGR, ROMI and payback over 12 months so you can test a scenario before you run it.

**Cost and return per incremental retained player**

- Bonus cost: €52.50
- Net incremental NGR: €2.75

## Run the test per segment

One result for the whole base hides the groups where the bonus works and where it does not. Run the same two-arm design inside each lifecycle stage you spend bonus budget on: players without a repeat deposit, players showing early signs of churn, and dormant players.

Each segment needs its own retention rule and its own arm sizes. A dormant player and a player in the second week after first deposit have different base rates, so a shared threshold would mislead. Report cost per incremental retained player by segment in one table, and move budget towards the segments with the highest net incremental NGR per retained player. Cut the segments where the figure is zero or negative.

## Common errors in bonus cost reports

- Counting credited value instead of released value, which overstates cost whenever part of the credit is never released.
- Using claimers as the denominator. Claimers are a self-selected group and not a fair baseline.
- Comparing the bonus arm with the previous month instead of a same-period no-bonus arm.
- Leaving taxes and fees out of one arm.
- Sending the no-bonus arm another bonus through a different journey.
- Stopping the test when one arm looks ahead.

Keep one owner for the cost definition and put it in the written bonus policy. If abuse inflates your released value, the [bonus abuse prevention](/blog/bonus-abuse-prevention/) guide covers how to find it.

## FAQ

### How do you calculate bonus cost per retained player?

Divide the bonus cost of the bonus arm by the incremental retained players. Incremental retained players are the retention rate of the bonus arm minus the retention rate of the no-bonus arm, multiplied by the size of the bonus arm. Count only the players the bonus kept, not everyone who was active.

### What counts as bonus cost?

Pick one definition and keep it. This guide counts the bonus value released into the player's real-money balance, plus the cost of sending the offer. Credited value that the player never converts is not cost under this definition.

### Why compare against a no-bonus arm?

Many players would have returned without an offer. A no-bonus arm shows what happens without the bonus, so the difference between the arms is what the bonus caused. Without it, you pay for players who would have come back anyway.

### How large should the test arms be?

Large enough that the difference in retention is larger than normal random variation. Fix the size, the period and the success metric before the test starts, and split the eligible audience at random. Do not stop the test early because one arm looks ahead.

### What if the bonus arm has higher NGR but a negative result after cost?

Then the offer raised activity but lost money. Report NGR after bonus cost, taxes and fees for both arms and use the difference. A bonus that adds gross revenue and loses the same amount in cost has not earned anything.
