April 24, 2018

Integrated scalable reward system for S7 Airlines

S7 Airlines sells tickets through a network of its own and independent agents and partners, cooperating with all the market participants: agents, traveling portals, tour operators. Clients are both individual travelers and corporate clients. To stimulate sales, the airline utilizes several reward systems and loyalty programs for agents and clients. They were created on separate occasions, enkindled by different airline divisions, and each program has independent accounting.

As a result, getting a summary of all the loyalty systems' costs and efficiency used to be quite problematic, since it was done manually.

Introduction of uniform metrics and accounting policies enabled not only automating the process and getting a real time analysis, but also planning development of specific loyalty tools considering efficiency of the whole system.

We developed a reward condition constructor, practically a billing system that allows configuring any condition for any program and calculating the overall loyalty system economy based on archived sales (or services) data for the past periods.   

Condition constructor

The product is an algorithm for calculating rewards and a web service (website) where company managers can assign rewards to clients and partners, and calculate their solution’s economy based on historical data.


To create the condition constructor, we built an "absolute catalogue" of the service features essentially, split the reward system "into atoms".

  1. We identified the whole list of sales (service) features: basically, what type of service we're selling, which agent is selling, if the sale is performed offline or online, performed by ourselves or under contact with[SF2]  another airline, etc.  
  2. We identified accrual strategies: whether we are granting increased or decreased rate, bonuses, or money.
  3. We defined how the policies can work: add a condition, remove a condition, set a priority.

And now we can configure whatever reward with these atoms.

Web service

The workplace has become an automated portal.

  • On the Template Constructor page, the person in charge formulates a policy for bonus accrual. The correct form of policy creation is already embedded in the template along with the possible options for filling in the variable data. The staff member simply picks from the list. At the final stage, the service verifies the parameters provided by the staff for completeness and consistency, and saves them.
  • In the Reward condition constructor section, the specialist assigns (applies) the ready template to a partner or a client, or to a whole group.
  • Model calculation function

Before a condition is applied, the specialist can calculate an economy of conditions they apply using archive data.

  • Condition application

The condition constructor is directly connected to the airline's accounting system. It reports the current conditions for agents online. Based on this data, the accounting system issues invoices to the agents (or accrues bonuses, if it's about the loyalty systems).

  • Adding new loyalty program

It doesn't matter now how many loyalty programs exist in the company simultaneously, and whether any new ones are launched. Since the service (sale) is already split into "atoms", then each new loyalty program simply uses a relevant feature set and applies the appropriate rewarding strategies. And the model goes on calculating the overall economy of all the loyalty systems.

That's how our solution helped bring together all the reward systems and loyalty programs, and unified all payment services. The model calculation allows comparing costs of different conditions and selecting the most significant for the airline.

Original version published on

April 24, 2018

See also