fbpx Skip to main content


Accounting for Customer Loyalty Points by Retailers under IFRS 15

When compared to IAS 18 ‘Revenue’, IFRS 15 ‘Revenue From Contracts With Customers’ provides more significant guidance, that can be applied to various situations retailers need to face, such as the treatment of customer loyalty points.

The core principle of IFRS 15 is that the timing of revenue recognition depends on the timing of fulfilment of promises by the entity.

In a situation whereby a customer participates in a customer loyalty points scheme, there are two promises that the entity is fulfilling to abide by the contract (for simplicity, let’s assume that the customer can use points to redeem goods provided by the same entity from which goods were originally purchased):

  • Promise 1: The transfer of goods to the customer when the customer purchases goods. As a result, customer loyalty points are earned by the customer.
  • Promise 2: The transfer of goods to the customer when the customer redeems the points.

Assuming that the promises are fulfilled on two separate dates, the entity receives consideration only when the first promise is fulfilled. However, since there are multiple promises, it is incorrect to record the consideration entirely on the date of the first promise. Rather, in line with IFRS 15 ‘Revenue from Contracts with Customers’, the entity must allocate the transaction price to the promises. To do this, the entity must determine the stand-alone selling price of each promise in isolation, and recognise revenue accordingly.

Suppose a supermarket gives customers 1 loyalty point for every €1 spent. 500,000 loyalty points were distributed during 2018 and these have no expiry date. For simplicity, we assume that cents don’t exist. However, the accumulation of 1,000 points gives rights to €10 of goods. Management initially estimates that 90% of loyalty points shall be utilised. How much revenue is recognised if 50% of loyalty points are actually redeemed by the end of 2018?

In the above scenario, it can be concluded that the transaction price is €500,000, given that customers are assigned 1 loyalty point for every €1 spent.

It is inaccurate to account for €500,000 revenue in 2018 since, for unredeemed points, only one out of two promises has been fulfilled.

The stand-alone selling prices are determined as follows:

  • Promise 1: The stand-alone selling price is €500,000, since this is still the consideration received if there isn’t a loyalty points system.
  • Promise 2: The stand-alone selling price is €4,500, because:
    • 500,000 points are distributed.
    • 90% are expected to be redeemed, that is, 450,000 points.
    • For every 1,000 points, €10 of goods can be redeemed.

The next step is the allocation of the transaction price to the promises:

Promise Stand-Alone Proportion Revenue
1 500,000 99.11%         495,540
2 4,500 0.89%         4,460
504,500         500,000

When we add up the individual stand-alone selling prices, we find out that:

  • 11% (that is, 500,000/504,500) relates to promise 1.
  • 89% (that is, 4,500/504,500) relates to promise 2.

Promise 1 was fulfilled in 2018, and therefore €495,540 is undoubtedly recognised as revenue in 2018. However, we still received cash of €500,000 from sales.

The journal entry is as follows:

Dr        Cash                           €500,000

Cr        Revenue                                           €495,540

Cr        Contract Liability                             €4,460

Therefore, not all cash is booked to revenue. Rather, a portion is credited to a contract liability account, representing sales made in 2018 for which the entity will be obliged to provide goods upon redemption.

The contract liability account needs to be adjusted further. Points redeemed in 2018 are in fact released to revenue. In 2018, 50% of points issued in 2018 were redeemed. The transaction price allocated to the second promise (the points) is multiplied by the ratio of points redeemed to total points expected to be redeemed. Therefore, the following journal entry needs to be booked in 2018:

Dr       Contract Liability    €2,478

Cr        Revenue                                            €2,478

Being points redeemed in 2018 (50/90 * €4,460)

Now let’s assume that at the start of 2019, the entity revises its redemption estimate from 90% to 95%. Actual redemptions in 2019 (on 2018 loyalty points) accumulate to 75% of total points issued.

In 2019, we adjust in relation to the 500,000 loyalty points distributed to customers in 2018, since some of them are redeemed in 2019:

  • Expectation of total redemptions has been revised from 90% to 95%. Therefore, we expect that 475,000 points (rather than 450,000 points) shall be ultimately redeemed.
  • Total points redeemed cumulatively amount to 375,000 (75% of total points issued in 2018). These are made up of:
    • 2018: 250,000 points redeemed.
    • 2019: 125,000 points redeemed.

Our original contract liability as per allocation of transaction price to stand-alone selling prices was €4,460.

The cumulative revenue to be recognised up to the end of 2019 in relation to the second promise (the points) amounts to €3,521. This is calculated as follows: Original contract liability * Cumulative Total Points Redeemed / Total Points Expected to be Redeemed:

= €4,460 * €375,000 / €475,000

= €3,521

The journal entry for 2019 will be a further release from the contract liability, and takes into consideration the journal entry for 2018. In 2018 we released €2,478 from the contract liability to revenue; therefore in 2019 we release a further portion to arrive at a total release of €3,521. Therefore:

Dr       Contract Liability    €1,043

Cr        Revenue                                            €1,043

What is important is that the remaining contract liability represents always the points that we expect will be redeemed in future periods.

Does your customer points scheme appear to be more complex than the one appeared above? Do you require a tailor-made solution?