Loyalty points software is the system that issues, stores, expires and redeems reward points, keeping a ledger of every point a customer earns or spends so that balances stay accurate across every channel. Most buyers judge it by the widget their customers see. The part that decides whether a program makes or loses money sits underneath, in the points engine.
This guide opens that engine up in plain language: how the points ledger records every movement, how accrual rules decide who earns what, how expiry logic works, what happens to a balance when an order is refunded, and how outstanding points show up on the balance sheet. It finishes with the part most articles skip: why float and expiry policy change program economics more than the earn rate does.
What is loyalty points software?
Loyalty points software is the layer that turns customer actions into a points balance and turns that balance back into rewards. It takes events from your store, app or point of sale, applies your earning rules, writes the result to a ledger, and answers one question in real time for every channel: how many points does this customer have, and what can they spend them on?
It is usually one module inside a wider platform. To see how points fit alongside tiers, referrals, campaigns and reporting, read our companion guide to loyalty management software, which maps the full stack and how to choose between vendors. This page goes one level deeper, into the points engine itself.
Why the points engine matters more than the widget
The points engine matters because it is where the money is. Retention is the cheapest growth lever a brand has: acquiring a new customer is anywhere from five to 25 times more expensive than retaining an existing one, and Bain research found that lifting retention by 5% raises profits by 25% to 95%. A points program is how most brands try to capture that, and the engine decides whether the program is accurate, fair and affordable.
When the engine is weak, the failures are quiet. A customer returns an order and keeps the points. A double points weekend stacks with a tier bonus nobody meant to stack. Points never expire, so the outstanding balance grows every month until finance asks why. None of these show up in a widget demo, and all of them show up in the loyalty program ROI a year later.
How a points engine works: the points ledger
A points engine works by recording every change to a balance as its own ledger entry, rather than overwriting a single balance number. Each earn, spend, reversal, adjustment and expiry is written as a line with a timestamp, an amount, a reason and a link to the order or event that caused it. The balance a customer sees is simply the sum of those lines.
That design is what makes everything else possible. Because each earned batch of points is kept as its own lot with an issue date and an expiry date, the engine knows exactly which points expire next month. Because each earn is tied to an order, a refund can reverse the exact points that order created. And because nothing is overwritten, support and finance can always explain how a balance got to where it is.
Here is the life of a single batch of points, from the order that creates it to the moment it is spent or expires.
Accrual rules: how a loyalty points system decides who earns what
Accrual rules are the instructions that convert a customer action into a number of points. A simple loyalty points system has one rule, such as one point per dollar or per riyal spent. A mature one layers several rules on top of each other, and the engine has to know which ones stack, which ones cap, and what counts as the qualifying amount.
| Rule type | Example | What the engine needs to know |
|---|---|---|
| Base earn | 1 point per $1 or per SAR 1 spent | Order value net of tax, shipping and discounts, so points are not earned on money the store never keeps |
| Multiplier | Double points on a category or a weekend | Product category, the campaign window and whether it stacks with other bonuses |
| Tier bonus | Gold members earn 1.5x | The member's tier at the moment of the order, not at the moment the points post |
| Action based | 200 points for a review or a referral | The event source and a cap per member to stop farming |
| Pending points | Points held until the return window closes | The return window per channel, and what releases or cancels the hold |
Two details separate a solid engine from a fragile one. The first is the qualifying amount: earning on the gross total, including tax and shipping, quietly raises the cost of every point. The second is stacking. If a tiered loyalty program gives Gold members 1.5x and a campaign gives everyone 2x, the engine needs an explicit rule for whether that becomes 3x, 2x or 3.5x. If you are still designing the earn and burn side itself, our guide to setting up a points reward system covers the customer facing choices.
Brands selling across the GCC add one more requirement. A store that takes orders in riyals and dirhams needs the engine to convert each currency into points at a deliberate rate, so a customer in Riyadh and a customer in Dubai earn the same value for the same spend. Our comparison of loyalty program software in the UAE covers what to check for multi currency setups.
Expiry logic: how points expire and why it matters
Expiry logic is the set of rules that removes unused points from a balance after a period of time or inactivity. It exists for two reasons: to create urgency that brings customers back, and to stop the outstanding balance from growing forever. Most engines support one of four models.
Whichever model you choose, the engine also needs a consumption order. Most use first in, first out: when a customer redeems, the oldest lot is spent first, so the points closest to expiry are used before they lapse. Pair expiry with reminder messages through marketing automation, so members hear about expiring points while there is still time to come back and spend them. Expiry rules also vary by market and by industry, so check local consumer rules before you set them.
What happens to loyalty points when an order is refunded?
When an order is refunded, a well built engine reverses the exact points that order earned, by linking the reversal to the original ledger entry. The hard case is when the customer has already spent those points. Then the engine has to decide whether the balance can go below zero, whether to claw the points back from future earnings, or whether to absorb the loss.
| Scenario | What a good engine does | Risk if it does not |
|---|---|---|
| Refund before points are spent | Reverses the exact accrual linked to that order | The customer keeps points for an order they returned |
| Refund after points are spent | Posts a negative entry, so the balance goes below zero and future earnings repay it | The program quietly funds a free reward |
| Partial refund | Reverses points in proportion to the refunded amount | Over or under correction, and a support ticket either way |
| Points were redeemed on the refunded order | Restores the redeemed points to the member's balance | The customer loses value they paid for with earlier purchases |
| Points still pending | Cancels the pending lot so nothing ever posts | None, which is why pending points are worth enabling |
Pending points are the cleanest fix. Holding earned points until the return window closes means most refunds never touch a live balance. That matters most for categories with high return rates, such as fashion, and for markets where cash on delivery orders can be refused at the door. For multi location brands, the same logic has to hold in store, which is one of the reasons we list return handling among the features every chain needs in our guide to retail loyalty software.
Points liability: how loyalty points hit the balance sheet
Outstanding loyalty points are a liability, because every point you issue is a promise of a future discount or free product. Under the revenue standards ASC 606 and IFRS 15, points that give the customer a material right are treated as a separate performance obligation, so part of the sale is deferred and the business recognises revenue when those future goods or services are transferred or when the option expires.
Breakage, the share of points that will never be redeemed, is estimated up front. Under ASC 606, a business that expects breakage should recognize the expected breakage amount as revenue in proportion to the pattern of rights exercised by the customer, and reassess that estimate every reporting period. For planning, one loyalty vendor's accounting guide sizes the exposure as outstanding points multiplied by cost per point multiplied by redemption rate, and notes that threshold based programs with expiry usually see a redemption rate of 30% or less.
This is why the ledger matters to finance as much as to marketing. Estimating breakage needs clean history: how many points were issued, redeemed and expired in each period, by cohort. An engine that only stores a current balance cannot produce that. This section is general information rather than accounting advice, so agree the treatment with your auditor before launch.
Why float and expiry change program economics more than earn rate
Float and expiry change program economics more than earn rate because the real cost of a program is not what you issue, it is what gets redeemed. The earn rate sets the face value of every point. The redemption rate, which is driven by thresholds, expiry rules and how long points sit unspent as float, decides how much of that face value ever turns into a real cost.
A simple model shows the effect. Take a store with $1M in annual sales and a program that returns 1% of spend in points. At a 30% redemption rate, the program costs about $3,000 a year in rewards. Doubling the earn rate to 2% doubles that to $6,000. But keeping the 1% earn rate and removing expiry, which in this model lifts redemption to 60%, also costs $6,000. Tightening expiry so redemption falls to 20% cuts the cost to $2,000.
The lesson is not to make points hard to redeem. A program nobody redeems is a program nobody values, and it will not change behaviour. The lesson is that expiry window, redemption threshold and float are economic levers in their own right, and they deserve the same modelling as the earn rate. Track redemption by cohort alongside the other loyalty program success metrics, and use loyalty analytics to see how changes to expiry move both liability and repeat purchase.
What to look for in points program software
The best points program software makes the ledger visible and controllable, not just the widget. Use this checklist when you evaluate vendors, and ask each one to show the feature live rather than describe it.
Developers will also want to read the API documentation before signing. Gameball publishes its developer documentation openly, and our post on Gameball SDKs and APIs explains when to use each. For the commercial side of the evaluation, the customer loyalty platform buyer's guide includes a scorecard you can copy.
How Gameball helps
Gameball's loyalty points engine holds pending points during the return window, auto adjusts rewards on refunds, and lets you decide how long points stay valid, while handling more than 15 million API calls a day at under 300ms latency. The same ledger powers gamified challenges, referral rewards and program analytics, so you can book a demo to see it on your own data or compare plans and pricing.
Related reads
- Loyalty Management Software: What It Is and How to Choose One
- Customer Loyalty Platform: The 2026 Buyer's Guide
- How To Calculate Your Loyalty Program ROI
Frequently asked questions
What is loyalty points software?
Loyalty points software is the system that issues, tracks, expires and redeems reward points for a brand's customers. It receives events such as orders and reviews, applies earning rules, records each change in a ledger, and keeps one accurate balance available on the website, app and point of sale so customers can earn and spend anywhere.
What is a points engine?
A points engine is the core of loyalty points software. It combines a rules engine, which decides how many points an action earns, with a ledger, which records every earn, redemption, reversal and expiry as a separate entry. Because nothing is overwritten, the engine can explain any balance, reverse refunds precisely and report outstanding points to finance.
How do loyalty points expire?
Loyalty points usually expire in one of four ways: a fixed period after each batch is earned, after a period of member inactivity, on a fixed calendar date each year, or on a schedule that depends on tier. Most engines spend the oldest points first, and sending reminders before points expire brings members back to redeem them.
What happens to loyalty points when a customer returns an order?
A good points engine reverses the exact points the returned order earned by linking the reversal to the original ledger entry. If the customer already spent those points, the balance can go negative and be repaid from future earnings. Holding points as pending until the return window closes avoids most of these cases entirely.
Are loyalty points a liability on the balance sheet?
Yes. Under ASC 606 and IFRS 15, points that give customers a material right are a separate performance obligation, so part of each sale is deferred until the points are redeemed or expire. Expected breakage is estimated and recognised over time. Businesses should confirm the exact treatment for their program with their auditor.
What is a typical redemption rate for a points program?
Redemption rates vary widely by industry and program design. One loyalty vendor's accounting guide reports that threshold based programs with expiry usually see redemption of 30% or less. A very low rate cuts cost but often means members do not value the rewards, so track redemption by cohort rather than chasing a single target.
Ready to grow?
Get in touch with our sales team today.
The loyalty vendor checklist your CTO
will thank you for
Discover engineering challenges, essentials, and more from global brands.


Gameball Staff
Stay ahead on retention
Subscribe to our newsletter and get all the latest updates as we post.
Ready to level up your customer loyalty?
Level up your customer loyalty!
.avif)
.avif)
.avif)
.avif)




_compressed%2520(1)%2520(1).avif)



