Are loyalty points a liability? (2026): the accounting reality for Shopify merchants
Short answer: yes. When your store hands out loyalty points, you are not giving away marketing, you are creating an obligation, and formal accounting treats it exactly that way. Under the international revenue standard IFRS 15, which absorbed the older loyalty-specific rule IFRIC 13, and under the US equivalent ASC 606, part of every sale that earns points is deferred revenue: a liability you carry on your books until the customer redeems the points or they expire. This is the single most under-explained thing about running a loyalty program, and almost nobody neutral writes it down for merchants. Below is the plain-English version: how points become a liability, what "breakage" is and why expired points quietly turn into revenue, and why your expiry policy is a genuine trade-off between customer goodwill and your balance sheet. One thing up front, in bold, because it matters: this is general education, not accounting or legal advice. The specifics depend on your accounting framework, your size, and your jurisdiction, so talk to your accountant before you set anything in stone.
Redemption is when you finally earn it: when a customer redeems points, you draw down the liability and recognize the revenue; the cost of the reward itself becomes COGS.
Breakage = expired points become revenue: points that expire unredeemed turn into "breakage revenue," recognized with no cost of goods attached, estimated from your historical redemption rate.
Escheatment can override breakage: in some jurisdictions, unclaimed-property (escheatment) law can require you to remit unredeemed balances to the state instead of keeping them as revenue.
Your expiry policy is a real trade-off: shorter expiry converts stale liability into breakage revenue, but set it too aggressively and you erode the very trust the program was built to earn.
This is education, not advice: the exact treatment depends on your framework, scale and country. Confirm the specifics with your accountant.
Why a point is a liability, not a giveaway
Here is the mental model most merchants start with, and why it is wrong. It feels like loyalty points are free: you invented them, they are not real money, so handing them out costs nothing until someone cashes them in. Accounting sees it the opposite way. The moment a customer earns points on a purchase, you have made a promise to give them something of value later, and a promise you are obligated to honor is a liability, the same category as unearned revenue or an unshipped pre-order.
The formal rule is the revenue-recognition standard. Under IFRS 15, a contract with a customer is broken into separate "performance obligations," and the transaction price is allocated across them. Loyalty points are treated as one of those obligations, a "material right" the customer paid for as part of the sale. So when someone spends $100 and earns points, you cannot book the full $100 as revenue today. You allocate a slice of it, the estimated value of the points, and park that slice as a contract liability. It only becomes revenue when you satisfy the obligation, which happens when the points are redeemed or when they expire. This is not an obscure edge case; it is the core of how the loyalty-specific rule IFRIC 13 worked before IFRS 15 absorbed it, and the US standard ASC 606 lands in the same place.
What this means for your store: a large, growing balance of outstanding points is not a marketing win sitting idle, it is a growing obligation on your books. If you run generous points and long or no expiry, that liability compounds quietly. It does not mean the program is bad, it means you should know the number exists and roughly how big it is, especially before a financing round, a sale of the business, or an audit.
The lifecycle of a point, from issue to redeem or expire
The clearest way to see it is to follow one point through its whole life. It is issued as a liability, then it exits your books in exactly one of two ways: the customer redeems it, or it expires. Both remove the liability, but they are recorded very differently, and the second one is where breakage lives.
| Event | Accounting treatment (plain English) |
|---|---|
| Customer earns points on a sale | Part of the sale price is carved off and recorded as a contract liability. You do not recognize that slice as revenue yet. |
| Points sit unredeemed | The liability stays on your balance sheet and grows as you issue more points than customers redeem. |
| Customer redeems points for a reward | You draw down the liability and recognize the deferred revenue. The cost of the reward you give (product, discount value) is recorded as an expense / COGS. |
| Points expire unredeemed | The obligation is gone, so the remaining liability is released as breakage revenue, with no cost of goods attached. |
| Estimating breakage in advance | Under IFRS 15 / ASC 606 you can recognize expected breakage proportionally as other points are redeemed, based on a historical redemption estimate, updated over time. |
| Unclaimed balances (some jurisdictions) | Escheatment / unclaimed-property law may require remitting the unredeemed balance to the state rather than booking it as revenue. Check local rules. |
What is breakage, and why it is quietly profitable
Breakage is the accounting term for value that customers never claim. AccountingTools defines it as the revenue from unclaimed prepaid balances or unused gift cards, and loyalty points behave the same way. At issuance, the points are a liability. As customers redeem, the liability is drawn down and turned into ordinary revenue. But some fraction of points always dies unused, people forget, churn, or never reach the threshold, and that unredeemed remainder becomes breakage revenue. Because there is no product going out the door against it, breakage carries no cost of goods, which is why it lands as high-margin revenue.
You do not simply wait years to find out how much broke. The standards let you estimate the breakage rate from your own history, how many points, on average, never get redeemed, and recognize that expected breakage gradually, in proportion to actual redemptions, rather than in one lump when points formally expire. The estimate gets refined as real behavior comes in. Practically, that means a mature program with a stable redemption pattern can forecast the slice of its points liability that will never be claimed, and treat it accordingly. It is legitimate, it is normal, and it is one reason big retailers watch their points liability closely.
Breakage is the quiet economics of every points program: the points nobody redeems become revenue with no cost attached. But you cannot bank on it dishonestly, you estimate it from real history, and in some places the state, not you, has the claim on what goes unused.MerchantStack, from IFRS 15 and AccountingTools on breakage
The escheatment catch: sometimes it is not your money
Here is the wrinkle that trips people up. In some jurisdictions, unclaimed customer balances do not simply become your revenue when they lapse. Unclaimed-property law, often called escheatment, can require a business to hand unclaimed balances over to the state after a dormancy period, where the original customer can theoretically still reclaim them. AccountingTools notes this explicitly for breakage: state governments can claim it under escheatment laws, and the company forwards the unused funds rather than keeping them.
Whether this reaches loyalty points specifically depends heavily on your jurisdiction and on how your points are structured, some places treat pure promotional points differently from stored monetary value or gift cards. This is exactly the kind of thing that varies by country and even by US state, and it is exactly the kind of thing you do not want to guess about. It is one more reason the honest version of this article ends where it does: name the issue, then send you to a professional who knows your local rules.
Your expiry policy is a trust-versus-books trade-off
Now the practical decision this all leads to. Expiry is the lever that sits directly on the seam between accounting and customer experience, and it pulls in two directions at once.
On the books, expiry is useful. Points that never expire are a liability that only grows, and a large, ageing points balance can weigh on your balance sheet and complicate any future audit, financing, or sale. A sensible expiry policy, say points lapsing after 12 months of account inactivity, caps that liability and converts stale, forgotten points into breakage revenue. From a pure accounting standpoint, some expiry is healthy hygiene.
On the customer side, expiry is a tax on goodwill. The entire point of a loyalty program is to make people feel rewarded for coming back. Aggressive expiry, points vanishing after 90 days, or with no warning, does the opposite: it feels like a bait-and-switch, and it can burn exactly the repeat customers the program was built to keep. The research on whether loyalty programs even pay off is already sobering (we cover it in do loyalty programs actually work?), and a punitive expiry policy makes the honest case worse.
The balanced setting most stores land on: expire points on inactivity, not on a hard clock from issue, so engaged customers effectively never lose them while dormant accounts clean themselves up. Give clear warning before points lapse (an email nudge doubles as a re-engagement touch). Match point value and expiry to what you can genuinely afford to fund, since that funded amount is the liability. In short: use expiry to keep the liability honest, not to claw back rewards from your best customers.
Where you set this in a Shopify loyalty app
The good news is you do not manage any of this in a spreadsheet. Every serious Shopify loyalty app exposes point value and points-expiry controls in its settings, which is the practical lever behind everything above. Apps like Smile.io, Rivo, Loloyal and Appstle Loyalty all let you set how points are earned, what they are worth at redemption, and whether and when they expire, typically on an inactivity timer. Setting the point-to-currency value deliberately is the single biggest driver of how large your liability grows, so it is worth treating as a finance decision, not just a marketing dial. For how the apps themselves compare on price and features, see our best Shopify loyalty apps ranking, and the cost guide for the per-order pricing math. What no app will do is tell you how to book any of it; that is your accountant's job.
Frequently asked questions
Are loyalty points really a liability on the balance sheet? Yes. Under IFRS 15 (which absorbed the older loyalty rule IFRIC 13) and the US ASC 606, points earned on a sale are a performance obligation, so part of that sale's revenue is deferred and carried as a contract liability until the points are redeemed or expire. This is general education; confirm how it applies to you with your accountant.
What is breakage revenue? It is the value of points (or gift cards) that expire unredeemed. Because you no longer owe anything, the liability is released as revenue, and since no product goes out against it, it carries no cost of goods. AccountingTools explains it for prepaid balances; loyalty points follow the same logic. Breakage is usually estimated from your historical redemption rate, not guessed.
Do I have to defer revenue on a tiny store? The formal standards apply to formal financial statements, and the practical rigor scales with your size and who reads your books. A large or funded business, or one being audited or sold, needs to get this right; a very small sole trader on cash-basis bookkeeping may be simpler. The threshold and method depend on your framework and jurisdiction, which is precisely why you should ask your accountant rather than assume.
Can I just keep the money from expired points? Often yes, as breakage revenue, but not always. In some jurisdictions, unclaimed-property (escheatment) law can require you to remit unredeemed balances to the state instead. Whether it reaches promotional loyalty points depends on local rules and how your points are structured, so check locally.
Should my points expire? From an accounting angle, some expiry keeps the liability from growing forever and converts stale points into breakage. From a customer angle, aggressive expiry erodes trust. The common middle ground is expiry on account inactivity with a warning email, which caps the liability without punishing engaged customers.
Is this accounting advice? No. This is general education from a Shopify app buying-guide, not accounting, tax, or legal advice, and it cannot reflect your specific situation. Before you set point values, expiry, or how you record any of this, consult a qualified accountant in your jurisdiction.
Bottom line
Are loyalty points a liability? Yes, and it is one of the most useful facts a Shopify merchant can internalize before scaling a rewards program. Points are deferred revenue: part of every points-earning sale is an obligation you carry on your books until the customer redeems or the points expire, under IFRS 15 and the US ASC 606. Expired points become breakage revenue, high-margin because there is no cost against it, but estimated from real history, not wished into being, and in some places subject to escheatment. And your expiry policy is a genuine trade-off: tight enough to keep the liability honest, generous enough to keep the trust the program exists to build. None of this is a reason to avoid loyalty, plenty of great stores run points programs profitably. It is a reason to set your point values and expiry deliberately, know roughly how big your outstanding liability is, and, because the specifics turn on your framework and country, run the actual numbers past your accountant. For choosing the app that runs the program, start with the best Shopify loyalty apps guide.