Hello, how can we help you today?

Loyalty Programme – August 2026 Version

  • Updated

 

What is it?

The MatchPoint loyalty programme allows the centre to reward its customers for using the facilities. It is based on two mechanisms that can be activated independently:

  • 1. Points system: The customer earns points when they purchase, book, register, sign up, etc. The points place them in a tier (for example Bronze, Silver, Gold). The tier automatically rises and falls.
  • 2. Tier-based pricing: The centre’s pricing conditions can filter by tier: "Gold customers pay less to book courts", "Silver customers get a discount in the shop", etc.

When a customer reaches a higher tier, they immediately receive the associated benefits without anyone having to do anything manually.

 

How to activate it

The programme has three activation levels:

1. Licence (managed by TPC)

The Modulofidelizacion module must be active in the customer’s licence. If the licence does not include it, the screens do not appear in the back-office menu. It is activated from MatchPoint Monitor.

2. Global module configuration

Once the licence allows it, the centre admin goes to Loyalty Programme > Configuration and ticks:

  • Loyalty programme active: master switch. If off, nothing happens even if tiers and actions are defined.
  • Generate points from sales: if ticked, each invoice/ticket payment generates points.
  • Amount/points ratio: how many euros equal 1 point. Default is 1 (1 € = 1 pt). If set to 10, 1 pt is given for every 10 €.
  • Expiry days: lifespan of points. Default 180. 0 = no expiry.

3. Tiers and actions

The admin defines the tiers (Bronze, Silver, Gold...) and the actions that earn points. Without configured tiers, the system works but all customers are "no tier".


 

What is configured from the back-office

ScreenPurpose
ConfigurationActivate/deactivate module, adjust global parameters, manually trigger cleaning of expired points
Tier list + Tier detailsCreate and edit tiers (Bronze, Silver, Gold...). The details of each tier show associated pricing benefits
Actions list + Action detailsCatalogue of point-earning events: customer sign-up, booking, registration, etc.
AVAILABLE SOON
Customer listView all customers in the programme with their points and current tier
Customer detailsIndividual detail: points, tier, full history of movements
History listCross-customer movements (all customers)
DashboardKPIs: total accumulated, distribution by tier, time evolution

 

How a customer earns points

A. From purchases

Any invoice or ticket paid by an identified customer automatically generates points. The amount is Total to pay / Amount-points ratio.

If the invoice is later cancelled, the points are returned (negative entry). The customer’s tier does not drop due to a cancellation: the tier is based on lifetime points earned, not current balance.

B. By manual actions (admin) 

  1. From the customer details, you can assign them a Tier.
  2. From the customer details, the admin can record a manual movement: "Birthday gift 50 pts", "Compensation for issue 20 pts", etc.  AVAILABLE SOON

C. From system events (coming soon) AVAILABLE SOON

It is planned that the customer earns points when signing up, booking a court, registering for an activity, enrolling in school, inviting a participant. The engine is written but not yet connected (see "Current status"). When activated, simply defining the actions in the catalogue will start awarding points for each event.

Types of action AVAILABLE SOON

When the event engine is active, catalogue actions can be of five types:

TypeWhat it doesExample
Simple eventGives X points each time the event occursCustomer sign-up: 100 pts
Conditioned eventLike simple but only if time condition is metBooking between 23:00 and 08:00: 5 extra pts
CumulativeGives bonus on reaching N events in X days5 bookings in 30 days: 50 pts bonus
ReferralWhen a customer brings a new onePending implementation
ManualNot triggered by event, only by adminGifts / compensations

 

Each action can have:

  • Validity: start and end dates. Useful for temporary campaigns ("double points in July").
  • Limits: per day, per month, in total. 0 = no limit. Useful to avoid abuse.
  • Expiry: whether points generated by this action expire or not.



     

Tier-based pricing

Any pricing condition in the back-office (in bookings, courses, packages, services, global discounts and top-up offers) has a "Loyalty tier" field. If filled, the condition only applies to customers in that tier.

Practical example:

  •  12 €.
  •  "Must be Gold tier" -> price 9 €.
  •  A Gold customer sees 9 €, a Silver sees 12 €.

Important: the match is exact. If you want "Gold and above", you must create a condition per tier (Gold 9 €, Platinum 9 €). Adding a "≥ tier" mode for easier scaling is pending.

 

Points expiry

If expiry days > 0, each positive entry is born with an expiry date. When that date arrives, it is automatically cancelled with a negative movement.

There are three mechanisms that trigger this:

  • 1. Automatic active customer: when a customer buys or admin adds points, pending expiries are processed first.
  • 2. Automatic every night: at 00:00 every day, an internal process checks all customers and cancels expired points. Activated by default.
  • 3. Manual: on the Configuration screen there is a "Process expiries" button to force an immediate run.

     

How the customer sees it

From the centre’s mobile app, the customer has a loyalty screen showing:

  •  Accumulated points (lifetime) and available points (spendable balance when redemption exists).
  •  Their current tier with its configured colour and icon.
  •  The next tier and a progress bar indicating how much is left.
  •  The date they reached their current tier.
  •  Their history of the last 200 movements (what they earned, when and why).
  •  The complete catalogue of tiers in order.

Reduced tier pricing is applied automatically when the customer buys or books – no action needed.

Test mode (pilot) AVAILABLE SOON

The module has a native mechanism to test without affecting all customers:

  •  In Configuration, tick Test mode.
  •  In Test customers enter the IDs of pilot customers separated by commas: 123, 456, 789.
  •  Only those customers participate in the programme. Others behave as if the module were off for them.

This allows testing the mechanism with selected customers (employees, regular customers who gave consent) before general launch.

Warning: if Test mode is ticked but the Test customers list is empty, no one receives points. To activate the programme for all, untick Test mode.


 

Common use cases

"I want a classic points programme"

  •  Activate the programme, ratio 1, expiry 180.
  •  Define 3-4 tiers: Bronze (0-499), Silver (500-1499), Gold (1500-4999), Platinum (5000+).
  •  Each euro spent gives 1 point.
  •  The mobile app shows progression to the customer.

"I want discounts for top customers"

  •  Define tiers as above.
  •  In the pricing condition for court fees (or courses, or whatever), add the tier.
  •  Create a condition per tier with increasing discount.

"I want to run a temporary campaign"

  •  Create a "conditioned_event" type action with limited validity (e.g. all July).
  •  When the engine is activated: each booking in July between 22:00 and 24:00 gives extra points.

"I want to reward loyalty" (loyalty measured by frequency)

  •  Create cumulative action: "5 bookings in 30 days -> 50 pts bonus".
  •  Customers who book weekly trigger the bonus each month.

"I want to pilot the programme with a group only"

  •  Activate Test mode, list pilot customers.
  •  Check results in Customer list and Dashboard.
  •  When validated, untick Test mode and leave the list empty -> the whole centre participates.

Current status of the module

What works today

  •  Points accumulation from purchase/payment of invoices and tickets.
  •  Automatic cancellation upon invoice return.
  •  Automatic tier change when crossing thresholds.
  •  Automatic expiry (lazy + nightly).
  •  Tier-based pricing in all areas (bookings, courses, packages, services, discounts, offers).
  •  Admin screens: configuration, tiers, actions, customers, history, dashboard.
  •  Server-side validations on all forms (inconsistent configuration cannot be saved).
  •  Mobile app: programme screen with points, tier, progress, history.

What’s coming

  • Test mode with whitelist. 
  • Event action engine: so that sign-up, bookings, registrations automatically generate points. Code exists, final activation pending.
  •  Referral system: Referral Code field already exists in each loyalty account, needs capturing at new customer sign-up and awarding points to referrer.
  •  Rewards/redemption catalogue: customers redeem points for discounts, products or balance. This is the largest pending block.
  •  Notification on tier upgrade: send automatic email/push when customer reaches Gold.
  •  Tiered pricing: ability to say "Gold and above" without creating a condition per tier.
  •  Manual movements from admin.

Known limitations

  •  Tier is calculated on lifetime (points earned since always), not on balance. This was deliberately chosen so that returns/expiries do not degrade the customer. If any centre requests otherwise, notify development.
  •  Tier matching in pricing is exact — no "≥".
  •  If an installation runs on multiple servers with load balancing, the nightly expiry job runs on each — may double-process. This is not the usual MatchPoint case (each customer has their own unique instance) but is worth keeping in mind.

     

Frequently asked questions

• If a customer returns a purchase, do they lose their tier?

No. The tier is based on lifetime points. The return removes available points but keeps the tier.

• What happens if I change the "Amount/points ratio" after some time?

Old movements are not recalculated. The change only applies to new purchases.

• What happens if I delete a tier with customers in it?

Current validation does not block this. Those customers must be reassigned manually first. This is noted as an improvement.

• Why does a test customer not receive points?

Check: is the module activated? Is their ID in the Test customers list (no spaces between commas)? Was the payment made to an invoice/ticket of an identified customer, not to "final customer"? The list caches for 20 minutes, please be patient after changes.

• Why don’t customer points expire even though the time has passed?

If the customer is inactive (no purchases), expiries are not applied until the nightly job. The job only runs if the AppPool is alive at 00:00. After a server restart at midnight, a day may be skipped.

• Can I configure different ratios or expiry times by customer category?

Not today, parameters are global for the centre. If needed, request development.

• Does it work with anonymous customers / final customer?

No. Purchases by "final customer" (without identified customer) do not generate points. The sale must be associated with a specific customer.

• Can I import points massively from a previous programme?

There is no importer. A custom script would be needed or manual adjustment from the customer details. Request development if necessary.

• Are points shown on invoices?

No. The customer details and mobile app are the points reference. To print them, templates must be customised.

 

Was this article helpful?

0 out of 0 found this helpful

Have more questions? Submit a request