Points System
The points system is the foundation of your loyalty program. Customers earn points through orders and staff bonuses, then spend them on vouchers and surprise boxes. Every point movement -- earning, spending, adjustments -- is permanently recorded as a transaction, so you always have a complete audit trail.
This page is the complete reference for the points system. If you are setting up points for the first time, start with the Configure Points guide and come back here when you need details.
Points System Fields Reference
This section documents every setting you encounter when configuring the points system.
Enable Automatic Points
| What it is | Master toggle that turns automatic point earning on or off |
| Valid values | On or Off |
| Default | Off |
When On, customers automatically earn points from every qualifying order. When Off, no points are earned from orders (but staff can still award points manually).
Turning this off does not delete existing points or transactions. It only stops new orders from generating automatic points. Customers keep their current balance and can still spend points.
Percentage of Order Amount
| What it is | The earning rate -- what percentage of the order total is converted to points |
| Valid values | Any positive number |
| Default | 10 |
This is the core of your points economy. A rate of 10 means the customer earns 10 points for every 100 units of currency spent. Put another way: 10% of the order total becomes points.
How the math works:
Points earned = (Order total) x (Percentage / 100)
The result is rounded down to the nearest whole number. Points are always whole numbers.
Examples at different rates:
| Order total | 5% rate | 10% rate | 15% rate | 20% rate |
|---|---|---|---|---|
| $10.00 | 0 pts | 1 pt | 1 pt | 2 pts |
| $15.00 | 0 pts | 1 pt | 2 pts | 3 pts |
| $25.00 | 1 pt | 2 pts | 3 pts | 5 pts |
| $50.00 | 2 pts | 5 pts | 7 pts | 10 pts |
| $100.00 | 5 pts | 10 pts | 15 pts | 20 pts |
Start with a simple rate like 10%. It is easy for customers to understand ("I earn 1 point for every 10 spent") and easy for you to explain. You can always adjust later based on how quickly customers are accumulating points.
Minimum Order Amount
| What it is | Orders below this amount earn zero points |
| Valid values | Any positive number, or 0 for no minimum |
| Default | 0 (no minimum) |
Use this to prevent very small orders from earning points. Without a minimum, a $2 order at a 10% rate still earns 0 points (due to rounding), but this setting gives you explicit control.
When to set a minimum:
- Your restaurant has low-value add-on orders (a single drink, a side item) that you do not want to reward.
- You want to encourage customers to meet a spending threshold before earning points.
When to leave at 0:
- Every order matters to your business and you want to reward all purchases.
- Your average order is already well above any reasonable minimum.
With a 10% rate and a minimum of 5.00:
- Order of $3.00 -- 0 points (below minimum)
- Order of $5.00 -- 0 points (meets minimum, but 10% of 5 = 0.5, rounds down to 0)
- Order of $25.00 -- 2 points
- Order of $100.00 -- 10 points
If you also set a maximum of 8 points, the $100.00 order would earn 8 points instead of 10.
Maximum Points per Order
| What it is | Optional cap on points earned from a single order |
| Valid values | Any positive integer, or empty for no cap |
| Default | Empty (no cap) |
This prevents exceptionally large orders from earning a disproportionate number of points.
When to set a maximum:
- You serve large group orders or catering orders that can have very high totals ($200-$500+).
- You want to prevent a single order from earning more points than a week of regular visits.
When to leave uncapped:
- Your order values are relatively consistent.
- You want large orders to be fully rewarded.
Example: With a 10% rate and a max of 15 points:
| Order total | Calculated points | Cap applied? | Points earned |
|---|---|---|---|
| $50.00 | 5 | No | 5 |
| $100.00 | 10 | No | 10 |
| $150.00 | 15 | No (exactly at cap) | 15 |
| $200.00 | 20 | Yes | 15 |
| $500.00 | 50 | Yes | 15 |
Quick Award Buttons
| What it is | Preset point amounts for one-tap manual awarding by staff |
| Valid values | Up to 5 buttons, each with a positive integer |
| Default | +50, +100, +200 |
Quick award buttons appear as one-tap buttons in the Waiter Dashboard and the Give Points modal. They speed up the process of manually awarding points during service.
Tips for configuring:
- Match button values to common reward scenarios. If you give 25 points for leaving a review, make one button "+25".
- Use escalating values (e.g., +10, +25, +50, +100, +200) to cover a range of situations.
- Fewer buttons are faster. Three well-chosen values are better than five that require scanning.
Staff can still type any custom amount -- the buttons are just shortcuts, not limitations.
How Points Are Earned
Customers can earn points in two ways: automatically from orders, or manually from staff.
Automatic Points (Per Order)
When enabled, points are calculated as a percentage of the order total and awarded when the order is completed (status CLOSED). The customer who pays receives the points. In group orders, the group owner (who places the order) gets the points.
Step-by-step calculation:
- Customer places an order with total = $32.50.
- System checks: is automatic points enabled? Yes.
- System checks: is order total at least the minimum order amount ($5.00)? Yes ($32.50 is above $5.00).
- System calculates: $32.50 x 10% = 3.25, rounded down = 3 points.
- System checks: is 3 within the maximum points per order (no cap set)? Yes.
- Order completes. 3 points are added to the customer's balance.
- A transaction record is created: type = Points, action = ADD, amount = 3.
If a customer uses a discount voucher, points are calculated on the discounted total, not the original price. A $50 order with a 20% discount voucher becomes $40, and points are earned on $40. Free Item vouchers reduce the subtotal by the item's price before points are calculated.
Manual Points (Staff Awarded)
Staff can award (or deduct) points at any time through the Give Points modal. This is useful for:
- Rewarding loyal customers during a visit
- Compensating for a service issue
- Running in-store promotions
- Correcting a mistake
The modal is accessible from three places in the CRM:
| Location | How to open |
|---|---|
| Chat panel (User Info) | Click the Give button next to the customer's balance |
| Waiter Dashboard (Lobby Detail) | Click a quick award button on the active user card |
| Kitchen Dashboard (User Info Widget) | Click Give Bonus Points in the selected user's widget |
Configuring Points in Merchant Settings
All points configuration lives in Settings under two sections: Automatic Points Earning and Award Points Buttons.
Setting Up Automatic Points
- Go to Settings.
- Scroll to Automatic Points Earning.
- Toggle Enable Automatic Points on.
- Set the Percentage of Order Amount (e.g.,
10for 10%). - Optionally set a Minimum Order Amount so small orders do not earn points.
- Optionally set a Maximum Points per Order to cap large orders.
- Click Save Settings.
The Calculation Examples section at the bottom updates in real time as you adjust the settings, so you can verify the math before saving.
Configuring Quick Award Buttons
- Go to Settings.
- Scroll to Award Points Buttons.
- Edit existing button values or click Add Button to add more (up to 5 buttons).
- The Preview section shows how the buttons will look.
- Click Save Settings.
Quick award buttons only set the amount. Staff can still type any custom amount in the Points Amount field of the Give Points modal.
Awarding Points Manually
From the Chat Panel
- Open a conversation with a customer (or click on a user in any panel).
- The User Info Panel opens on the right, showing the customer's current balance.
- Click the Give button (orange, next to the balance).
- The Give Points modal opens with:
- The customer's name and current balance
- A Give / Deduct toggle
- A Points Amount field
- Quick preset buttons (if configured)
- An optional Reason field
- A New Balance After Transaction preview
- Enter the amount, optionally add a reason, and click Give Points (or Deduct Points).
Deducting points reduces the customer's balance. The customer will see this in their transaction history. Always add a reason when deducting points so the record is clear.
From the Waiter Dashboard
- Open the Waiter Dashboard.
- Click on a table/printer card to open the Lobby Detail modal.
- The active user's card shows their current points and the quick award buttons.
- Click a button (e.g., +100) to instantly award that many points.
- To award points to a different user, click their name in the user list to make them the active user.
Viewing Customer Points
In the Chat Panel (User Info)
When you open a customer's profile in the chat panel, you see:
- Current balance at the top (with a coin icon)
- Transactions section (expandable) showing all point movements with amounts, dates, and sources
- Vouchers section showing active vouchers
- Orders section showing recent and active orders
In the Kitchen Dashboard
The User Info Widget displays the selected customer's points balance. Click on any order card to select that customer and see their balance, visit count, and last visit date.
Syncing the Balance
If you suspect a balance is out of sync, click the Sync balance button (circular arrow icon) in the User Info Panel. This recalculates the balance from the full transaction history, ensuring accuracy.
The sync operation:
- Reads every transaction ever recorded for the customer.
- Replays them in order to calculate the correct balance.
- Updates the displayed balance to match.
This is a safe operation -- it does not create or delete any transactions. It only recalculates the projection.
Transaction History
Every point movement creates a permanent transaction record. Transactions are the source of truth for the points system -- the balance is a projection derived from the transaction log.
Transaction Fields
Each transaction shows:
| Field | Description |
|---|---|
| Type | What generated the transaction (Points, Voucher, Surprise Box, Wheel Spin, Visit, Promo Viewed) |
| Action | Whether points were added or reduced |
| Points | The number of points (green for added, red for reduced) |
| Source | The challenge or battle pass name, if applicable |
| Date & Time | When the transaction occurred |
| Transaction ID | Unique identifier for support reference |
Transaction Types
| Type | Description | Action |
|---|---|---|
| Points | Direct point award or deduction (manual or automatic from orders) | ADD or REDUCE |
| Voucher | Points spent to purchase a voucher | REDUCE |
| Surprise Box | Points spent to open a surprise box | REDUCE |
| Wheel Spin | Points from a fortune wheel spin | ADD |
| Visit | Visit tracking (no points movement) | -- |
| Promo Viewed | Customer viewed a promotional story | ADD |
Editing a Transaction
If a transaction was recorded incorrectly, you can edit it:
- Click on the transaction in the Transactions list.
- The Transaction Details modal opens.
- Click Edit Points.
- Change the point value.
- Click Save Changes.
The original transaction is updated. The customer's balance recalculates automatically.
Editing a transaction modifies the historical record. Use this only for genuine errors. For routine adjustments, create a new manual award or deduction instead.
Cancelling a Transaction
To reverse a transaction entirely:
- Click on the transaction in the Transactions list.
- Click Cancel Transaction.
- Confirm by clicking Yes, Cancel It.
This creates a compensating transaction -- a new, opposite transaction that zeroes out the original. Both the original and the compensating transaction remain in the history for a complete audit trail.
Cancelling a transaction cannot be undone. The compensating transaction is permanent. If you need to restore the points, create a new manual award.
Points Spending
Customers spend points through the mobile app. Staff do not need to take any action -- the system handles everything automatically.
| Spending method | How it works |
|---|---|
| Voucher purchase | Customer buys a voucher with points. A REDUCE transaction is created. |
| Surprise box | Customer opens a surprise box with points. A REDUCE transaction is created. |
When a customer spends points, you will see the transaction in their history with the type set to Voucher or Surprise Box.
Cancelled Orders
When an order is cancelled, the system automatically handles the points:
- If the order had already earned automatic points, a compensating transaction is created to reverse those points.
- The customer's balance is reduced by the exact amount that was originally earned.
- Both the original earning and the reversal appear in the transaction history.
No manual action is required from staff. The audit trail clearly shows what happened: "Order #123 earned 5 points" followed by "Order #123 cancelled, 5 points reversed."
Frequently Asked Questions
Are points awarded on the pre-discount or post-discount amount?
Points are awarded on the post-discount amount (the amount the customer actually pays). If a customer uses a 20% discount voucher on a $50 order, the order total becomes $40, and points are calculated on $40. Similarly, if a Free Item voucher is applied, the free item's value is deducted from the total before points are calculated. This prevents customers from earning points on money they did not spend.
Do group orders split points?
No. In a group order, the group owner (the person who places and pays for the entire order) receives all the points. Individual group members do not receive points for their portion. This is because the group owner is the one completing the transaction. Points are always tied to the person who completes the order.
Can I award points retroactively?
Not automatically. If a customer should have earned points from an order but did not (for example, if automatic points were disabled at the time), you can manually award the equivalent points using the Give Points feature. Add a reason like "Retroactive points for Order #456" so the audit trail is clear. There is no way to attach manual points to a specific historical order.
What happens if I change the earning rate?
The new rate applies to all future orders. Past transactions are not recalculated. If you change from 10% to 15%, customers earn more points per order going forward, but their existing balance and past earnings remain unchanged. The change takes effect after you click Save Settings.
Can points go negative?
No. When deducting points (manually or through a purchase), the system checks that the customer has sufficient balance. If they do not, the deduction is rejected. A customer cannot spend more points than they have.
How do points interact with the Battle Pass?
Points earned from orders automatically count as XP toward active Battle Passes. The earning rate is the same -- if an order earns 5 points, it also earns 5 XP. However, points and XP are tracked independently. Spending points (buying a voucher) does not reduce XP. XP only increases.
Are points tied to a specific merchant?
Yes. Points are scoped to the merchant that awarded them. A customer's balance at Restaurant A is completely separate from their balance at Restaurant B, even if both use OKeep. Points cannot be transferred between merchants.
What is the maximum points a customer can accumulate?
There is no system-imposed limit on a customer's total balance. Points can accumulate indefinitely. If you are concerned about large balances, use voucher expiration dates and compelling point-shop offerings to encourage spending.
How quickly do points appear after an order?
Points are added to the customer's balance when the order reaches CLOSED status. This happens when the kitchen marks the order as completed and it is picked up. Orders that are still being prepared or waiting for pickup have not yet earned points. The customer sees the updated balance immediately after the order is closed.
Can I disable points for specific orders?
No. When automatic points are enabled, all qualifying orders (above the minimum amount) earn points. You cannot exclude individual orders. If you need to reverse points for a specific order, cancel the order (which auto-reverses the points) or manually deduct the equivalent amount.
Troubleshooting
Customer did not receive points for an order
Symptoms: A customer placed an order but their balance did not increase.
Checklist:
- Is automatic points enabled? Check Settings > Automatic Points Earning. If the toggle is off, no automatic points are earned.
- Was the order completed? Points are only awarded on order completion (CLOSED status). If the order is still being prepared, points have not been credited yet.
- Was the order above the minimum? If you set a minimum order amount, orders below it earn zero points.
- Was the order total very low? At a 10% rate, an order of $4.00 calculates to 0.4 points, which rounds down to 0.
- Was the order cancelled? Cancelled orders auto-reverse any points that were earned.
- Try Sync Balance. Click the sync button in the User Info panel to recalculate from transaction history.
Points balance seems wrong
Symptoms: The customer's displayed balance does not match what you expect.
Steps:
- Open the customer's Transaction History in the User Info panel.
- Review all transactions, checking for unexpected deductions (voucher purchases, surprise boxes) or compensating transactions (order cancellations).
- Click Sync Balance to recalculate from the full transaction history.
- If the balance is still unexpected, check whether the customer spent points on vouchers or surprise boxes that you may not be aware of.
Manual award not working
Symptoms: You click Give Points but nothing happens or you get an error.
Possible causes:
- No customer selected. The Give Points modal requires a selected customer. Make sure you opened the modal from a customer's profile, not from an empty context.
- Zero amount. You cannot award 0 points. Enter a positive number.
- Deducting more than balance. You cannot deduct more points than the customer has. The system will reject the transaction.
Points Economy Strategy Guide
Designing a healthy points economy is crucial to the long-term success of your loyalty program. If points are too easy to earn, you give away too much. If they are too hard to earn, customers lose interest.
Recommended Rates by Business Type
| Business type | Suggested rate | Reasoning |
|---|---|---|
| Coffee shop | 10-15% | Low average order ($5-8), customers visit frequently. Higher rate compensates for small orders. |
| Fast casual | 8-12% | Medium orders ($10-20), moderate frequency. Standard rate works well. |
| Full-service restaurant | 5-10% | Higher average order ($25-50+), lower frequency. Lower rate prevents large point accumulation. |
| Bar / nightlife | 5-8% | High per-visit spending but infrequent visits. Lower rate balances large tabs. |
| Bakery / deli | 12-20% | Very small orders ($3-10). Higher rate needed for points to feel meaningful. |
Balancing Earning vs. Spending
The key question: how many visits should it take to earn a meaningful reward?
| Visits to earn reward | Customer perception | Risk |
|---|---|---|
| 2-3 visits | "Too easy" -- feels like you are just giving things away | High cost, low retention effect |
| 5-10 visits | The sweet spot -- achievable but requires commitment | Moderate cost, good retention |
| 15-25 visits | "Getting there slowly" -- motivating for regulars, boring for casuals | Low cost, but many give up |
| 30+ visits | "I will never get there" -- most customers disengage | Minimal cost, but program feels pointless |
Example calculation:
You run a coffee shop. Average order: $6. Points rate: 10%. Your cheapest voucher (Free Cookie) costs 15 points.
- Points per visit: $6 x 10% = 0.6, rounds to 0. Problem: customers earn nothing per visit.
Solution 1: Increase the rate to 20%. Points per visit: $6 x 20% = 1.2, rounds to 1. Customer needs 15 visits for the cookie. That works but is on the slow side.
Solution 2: Increase the rate to 20% and lower the voucher price to 8 points. Customer needs 8 visits. Better.
Solution 3: Lower the cookie voucher to 5 points and set the rate at 15%. Points per visit: $6 x 15% = 0.9, rounds to 0. Still a problem at low order values.
The takeaway: for businesses with low average orders, you need either a high rate, low voucher prices, or both. Always test the math with your actual average order value.
The Points Audit
Review your points economy quarterly:
- Average balance per active customer. If it is very high, customers are not spending. Create more attractive vouchers or surprise boxes.
- Redemption rate. What percentage of earned points are eventually spent? Healthy range: 60-80%. Below 40% means your rewards are not compelling.
- Time to first redemption. How many visits before a new customer spends points for the first time? If it is more than 10 visits, lower your entry-level voucher prices.
- Points liability. Total unredeemed points across all customers. This represents a future cost. If it is growing faster than redemptions, adjust earning rates down or create more spending opportunities.
Best Practices
Keep the earning rate simple. A round percentage like 10% is easy for customers to understand: "I earn 1 point for every 10 spent." Fractional rates like 7.3% create confusion.
Set a reasonable minimum. If your average order is 20-30 in your currency, a minimum of 5-10 prevents tiny orders from earning points while still rewarding most purchases.
Use quick award buttons strategically. Set your preset amounts to match common reward scenarios. For example, if you give bonus points for leaving a review, set one button to that exact amount.
Always add a reason for manual adjustments. Reasons appear in the transaction history and help you audit point movements later. Good reasons: "Birthday bonus", "Compensation for wait time", "Review reward".
Review transactions periodically. Check the transaction history of active customers to spot unusual patterns. The Sync Balance button can help if numbers seem off.
Communicate the program to customers. Make sure your staff knows the earning rate and can explain it. Display signage at the counter or on table cards so customers know they are earning points.
Do not change the rate frequently. Changing the earning rate confuses customers and undermines trust. If you must change it, do so no more than once per quarter, and communicate the change clearly.
Related Pages
- Configure Points -- Step-by-step setup guide
- Vouchers -- What customers buy with their points
- Surprise Boxes -- Mystery boxes customers buy with points
- Challenges -- Goals that can award bonus points
- Battle Pass -- Progression system powered by the same earning rate
- Choosing the Right Tool -- Compare all loyalty features