I am making an app for my beauty salon, which will eventually replace the conventional loyalty card. I plan to implement a reward points system. Every service or treatment will carry points. When a customer collects enough points, they can redeem the points for free services.

Besides writing receipt note or invoice, my cashier will also update the transaction to the customer's account via the app. The app would then send a notification to the customer's mobile phone, and they would collect the points when they accept it.

I would face a problem with this approach because I still have random guests come in and get the treatments or services. The cashier could game the system by creating false names and giving the points to their friends or family.

How can I prevent such gaming?

  • 1
    @Goofy_Phie if you ever need advice, you can ask for it in the Water Cooler in chat. There are always people around willing to help Apr 20, 2017 at 13:55
  • 1
    If you want to discuss whether this question is on-topic, use the meta post. Apr 20, 2017 at 19:13
  • How do you know when someone just takes money out of the register and puts it in their pocket. Giving away rewards is basically the same thing.
    – user8365
    Apr 21, 2017 at 14:22
  • @JeffO , its different, i easily know if cashier stealing money, because i pay commission based on the receipt. my stylists has their own notes, they make their own calculation too, so every payday, we can match it.
    – Goofy_Phie
    Apr 21, 2017 at 14:36
  • @EdwinLambregts i actually not looking for technological information here, i am here asking for suggestion, because unlike programming forum, the workplace is the place to discuss, i think no exact answer here. that's why i hope i can get advice from experienced worker or bussiness owners here
    – Goofy_Phie
    Apr 21, 2017 at 14:44

3 Answers 3


Firstly, update their contracts to ensure that tampering with points is not allowed and against company policy. That should add a handy preventative measure to the whole thing first and foremost so they know it's wrong to do such a thing.

Next, you should look into making sure that each transaction is validated with a receipt so there is a paper trail of why points were added. That way you know that 10 points were given to Mrs Smith for xyz service.

You could also implement a review aspect to the system where random people validate each other's actions and spot check certain points. Ensure there is a paper trail for every transaction and points awarded. This will help make the system safer and also is just generally a good business technique.

Lastly; hire honest and hard working staff. There may well be times when staff award family points legitimately and you should not penalise them for that. You just need to ensure that everything is checked and that staff are honest and doing the work professionally. You can help prevent this kind of thing but sometimes there will always be someone who finds a way to cheat and manipulate the system.

  • thanks, you're right about contract, i need to specify this more clearer. how random customer validate each other action? random customer sometimes don't care for loyalti card or anything, they even won't tell us their name, they pay and go right away.
    – Goofy_Phie
    Apr 20, 2017 at 14:29
  • @Goofy_Phie you can just record each service transaction and give it a unique identifier (i.e. Transaction 12345 which wanted xyz doing) and go from there. You wouldn't necessarily need customer details. Essentially you need to look out for patterns like Employee A who always earns 125 points each Friday etc and making sure employees earn points when they're actually there working.
    – user66194
    Apr 20, 2017 at 14:33
  • 1
    i do have unique identifier, but its useless because my cashier could gaming the system by replacing random customer to other person. as if that person really come and deserve the point reward. i can't depend on asking to my stylist either, because they possibly forget or don't really know their customer.
    – Goofy_Phie
    Apr 20, 2017 at 14:59
  • 1
    @Goofy_Phie in that case you need someone to oversee what they're doing by approving the awarding of points or having someone in charge of it that takes no benefit from the points. If the system is being abused by staff, you need to be looking into whether you want to continue to employ a dishonest employee.
    – user66194
    Apr 20, 2017 at 15:01
  • 3
    The last paragraph by itself could be the answer. Nicely written IMHO.
    – Neo
    Apr 21, 2017 at 11:26

Hire honest people. I mean really, your question boils down to "How do I stop my employees from stealing from me?". If the worker is honest, they won't. If they aren't, they'll steal in one way or another. Trying to solve social problems with technological solutions generally leads to failure.

  • Then why have locks or tills, or safes? Apr 21, 2017 at 17:23
  • 1
    To prevent people on the street/customers from stealing. Do you think any of those prevent your employees? They have to open them all the time. Apr 21, 2017 at 17:24
  • No, in most cases, only management has access to the safes, for example. Some use a two key system where the safe can't be opened unless two employees enter their passcodes or have physical keys to open the safes, for example. Apr 21, 2017 at 17:29
  • 5
    And that's why they just steal from the register instead. Or walk off with product. Or give away product for tips. If they're dishonest, they'll steal in the easiest way. You can't block them all, and attempting to do so is cost prohibitive, doomed to failure, and a giant game of whack a mole. Stop playing the game and address the actual problem (you'll still get it wrong occassionally, but that's the cost of doing business. Fire them and move on). Apr 21, 2017 at 17:32
  • I'm giving you +1 You may want to put some of these comments into your answer. It makes it more robust, IMO. Apr 21, 2017 at 17:43

I'd assume that checking the app vs the date of booking in the registry would be a simple way.

If the customer was not booked into the system for that date and time, no points would be sent.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .