RFM segmentation to help you personalize in-game offers

Segmentation in Balancy

The focus of attention of any game developer is always on users who bring money in – paying users. You must treat them very carefully and keep them engaged as long as possible.

To take better care of your paying users, you need to understand their needs and be able to personalize their experience to satisfy them and to take the best out of it.

Most of you are probably familiar with RFM segmentation. However, at Balancy we prefer using RFMM-analysis.

What is RFMM?

RFMM stands for Recency, Frequency, Monetary, and MaxPay:

Recency – how long ago a user made their last purchase.
Frequency – how often a user makes purchases.
Monetary – how much a user paid in total.
MaxPay – the maximum one-time payment a user can afford.

There are several built-in templates for segmentation, which you can use in Balancy. You can add new segmentation types and change the ones we give out of the box.

Recency – how long ago a user made their last purchase.

  • None (never)
  • R0 (<1 day)
  • R1 (1-2 days)
  • R2 (2-7 days)
  • R7 (7+ days)

Frequency – how often a user makes purchases.

  • F0 (none)
  • F1 (daily)
  • F3 (2-4 a week)
  • F7 (weekly)
  • F14 (once per 2 Weeks)
  • F30 (monthly)
  • F60 (rarely)

Monetary – how much a user paid in total.

  • Killer Whale ≥$1500
  • Whale ≥$500
  • Orca ≥$150
  • Dolphin ≥$30
  • Minnow ≥$1
  • None $0


Defines the maximum one-time payment a user can afford. If the user made < 5 purchases, MaxPay equals the purchase with the highest price. Otherwise, we exclude the 2 purchases with the highest prices and take the most expensive purchase from the rest.

  • $5
  • $10
  • $20
  • $50
  • $100

Once the segmentation is working, it’s time to start creating personalized experiences. You can start with personalizing your in-game shop and special offers, and then work with FTUE.

How to use segmentation to personalize pricing?

After segmenting your users, it’s becoming obvious you can’t sell goods in your game at the same price to everybody. Let’s say you decide to launch a ‘booster pack’ for players, once they reach level 10. Most of your users might not pay a penny yet, so to convert them to paying customers, you need to offer them the sweetest deal. 

The first idea developers have is to sell at different prices. The idea is reasonable, however, it might lead to some problems in the future. Users might find out that you sell them the same goods at a higher price, and they won’t like it. The more your game grows – the higher chances for them to find out about this.

To save you some time, I’ll share a trick big companies have learned during many years of running live operations. You keep the price equal for everybody, but you segment the discount each user gets. As simple as that! For example, you can offer non-paying users a huge discount (80-90%) to force them to convert.

Alternatively, you can add some gamification here: users complete some quests to get a higher discount. It may be hard to believe, but users are happy with such a personalized approach as long as the original price stays the same for everybody.

How to set it up in Balancy?

In the Balancy dashboard, we have a template project, which does exactly what you need. Feel free to try the demo and check how dynamic discounts work: https://balancy.dev/