Introduction
Adding a discount to enrollment rules within the course module can help you create offers that better suit your clients. You can apply many types of discounts, deciding whether they should be added manually or automatically for members who meet specific conditions, e.g. only to members with specific payment plans or other active enrollments.
- This article will show you how to configure discounts within the enrollment rules in the Courses module.
- This article will be helpful for PG Champion, System Administrator and Club Manager
Before you start
Make sure you are familiar with the Enrollment rules within the course module, go to this article to learn more.
Discounts can only be added to enrolments based on the cost per class model.
Make sure, you have appropriate system permissions assigned to your role in PGM. You can check it in PGM -> Clubs -> Employee Permissions. All system permissions for enrolment rules can be found in the following area.
- System administration
- Classes Groups
- Config
- Classes Groups
Feature Description
To access Discounts within Enrolment rules, go to PGM->Classes->Enrolment Rules.
In the enrolment rules screen, select the Discounts tab to access the enrolment rules discount configuration.
This will display a list of all created discounts for Enrolment rules.
Settings
Discount Tab
Name: The name for the discount (e.g., "Early Bird 10%").
Status: A toggle to enable or disable the discount. A disabled (inactive) discount will not be applied to any enrollments.
|
|
|
Value: The value of the discount
Available For: The application the discount can be applied from/
Active From/To : The date range of the discount.
Activate/Deactivate: After selecting … next to the discount, you can activate or deactivate a discount.
Delete: After selecting … next to the discount, you can delete the discount.
Add new discount type: Pressing this button will allow you to create a new discount type.
Add/Edit discount definition
Name: The facing name for the discount (e.g., "Early Bird 10%"). This field is required.
-
Type: A required dropdown menu to select the type of discount.
Example: Choose Percentage (e.g., 10%) or Fixed Amount (e.g., $25).
-
Value: A required numeric field for the discount's value.
Example: Enter
10if the Discount type is "Percentage", or25if it's "Fixed Amount".
Active From: An optional start date for the discount's validity. If blank, the discount is valid immediately (unless a start date is set for the future).
Active To: An optional end date for the discount's validity. If blank, the discount does not expire.
Available for all enrolment definitions: Check box to be used on all enrolment definitions.
Available for enrolment definitions: If Check box of 'Available for all enrolment definitions' is unticked, select the enrolment definitions that can use this discount.
-
Is automatically applied: A toggle that makes the discount apply automatically to all eligible enrolments without manual intervention.
This setting is only visible if it is enabled in the system's settings.
Important: Toggling this On will automatically select all options in the Availability in applications field.
Availability in applications: A multi-select dropdown to control which applications (e.g., PGM, Client Portal, KIOSK, Tablet) this discount is available in.
Additional Conditions
Here is a complete list of all settings available when configuring a user group enrolment discount additional conditions.
-
Additional Conditions Logic: Radio buttons that determine how the conditions (if any) are applied.
Match all conditions: The enrolment must meet every condition listed to get the discount.
Match any condition: The enrolment only needs to meet one of the conditions listed.
-
Policy: This is the full list of available policies you can use to build a discount rule.
-
Family children tags
Description: Checks if any of the member's family children (including siblings) have one or more specific member tags.
Checks:
User.Tagson related children.
-
Member tags
Description: Checks if the member's profile contains (or does not contain) one or more specific member tags.
Checks:
User Tagson the member.
-
Member's parents tags
Description: Checks if any of the member's parents have one or more specific member tags.
Checks:
User.Tagson related parents.
-
Number of active contracts
Description: Checks how many active membership contracts (not course enrollments) the member has at the time of enrollment.
Checks:
Contractcount.
-
Number of active enrollments
Description: Checks how many active or future course enrollments the member has at the time of the new enrollment.
Checks:
UserGroupEnrollmentcount.
-
Number of Children with Active Enrollments
Description: Checks how many of the member's family children (including siblings) have an active or future course enrollment. Crucially, it only counts children who were enrolled before the current member's enrollment, making it ideal for sibling discounts.
Checks:
UserGroupEnrollmentcount for related children.
-
Number of configured payment sources
Description: Checks how many non-deleted payment sources (e.g., credit cards) are saved to the member's profile.
Checks:
UserPaymentSourcecount.
-
Number of Family Members
Description: Checks the total number of active family relationships (parents, children, siblings) linked to the member's account.
Checks:
UserRelationcount.
-
Number of Family Members with Active Enrollment
Description: Checks the total count of all linked family members (parents, children, siblings) who have an active or future course enrollment.
Checks:
UserGroupEnrollmentcount for all linked family members.
-
Number of Parents
Description: Checks the total number of active parent relationships linked to the member's account.
Checks:
UserRelationcount where the member is a child.
-
Number of Parents with Active Contract
Description: Checks how many of the member's parents have an active membership contract on the date of the new enrollment.
Checks:
Contractcount for related parents.
-
Number of Parents with Active Enrollment
Description: Checks how many of the member's parents have an active or future course enrollment at the time of the new enrollment.
Checks:
UserGroupEnrollmentcount for related parents.
-
Payment plans of member's active contracts
Description: Checks if the member has an active membership contract that uses one of the specified payment plans.
Checks:
Contract.PaymentPlan.
-
Payment plans of member's parents active contracts
Description: Checks if any of the member's parents have an active membership contract that uses one of the specified payment plans.
Checks:
Contract.PaymentPlanon related parents.
-
User custom attribute value
Description: Checks the value of a specific custom attribute on the member's profile.
Checks:
UserCustomAttributevalue.
-
-
Comparison Types: This is how the system evaluates the policy against the value you provide.
Equals
Not equals
Less than
Less than or equal
Greater than
Greater than or equal
Contains (Used for lists, like checking tags or payment plans)
Not Contains (Used for lists)
Starts With (Used for text values)
Ends With (Used for text values)
Value: Enter the value representing the discount policy type.
Configuration instructions
How to add a new discount
Navigate to the User Group configuration area and find the "Enrolment Discounts" section.
Click Add New Discount (or select an existing discount to edit).
In the Name field, enter a unique name for your discount.
In the Type field, select either "Percentage" or "FixedAmount".
-
In the Value field, enter the corresponding numeric value for the discount.
Validation: If you selected Type "Percentage", the Value cannot be greater than
100.
(Optional) Set a validity period by entering dates in the Active from and Active to fields.
-
Set the discount's availability:
To make it apply to all enrolments, leave the Available for all enrolment definitions box checked.
To restrict it, uncheck the box and use the AvailableForDefinitionIds list to select specific definitions.
(Optional) Use the AvailableForApps list to restrict which applications can offer this discount.
-
To add logic, click Add Condition.
You must select a Policy from the list (e.g., "Number of Parents").
Validation: A "Discount condition policy has to be selected" error will appear if the Policy is missing.
You must select a Comparison Type (e.g., "Greater than").
You must provide a Value (e.g.,
1), unless the policy is designed to use the current date.Validation: A "Discount condition value has to be provided" error will appear if the Value is missing and required.
If you add more than one condition, select how they are combined using the IsMatchingAllConditions toggle (checked for "AND", unchecked for "OR").
Check the Is automatically applied box if you want the system to add this discount for all eligible users without manual entry.
Click Save.
How to Edit an Existing Discount
Find the discount you wish to edit in the main grid.
Click the Actions (three-dot) menu on the far right of the discount's row.
Select Edit from the dropdown menu.
The Edit discount definition modal will open with the existing data.
Make the necessary changes to any of the fields.
Click Save.
How to Activate or Deactivate a Discount
You can quickly change a discount's status from the main grid. Note: You can only manually activate or deactivate discounts that are not set to be Automatic.
Find the discount in the grid.
Click the Actions menu for that row.
To Deactivate: If the discount is active, select Deactivate.
To Activate: If the discount is inactive, select Activate.
How to Delete a Discount
Find the discount you wish to remove in the grid.
Click the Actions menu for that row.
Select Delete.
The discount will be permanently removed.
Hints
-
System Responses:
After successfully adding a discount, a "Discount successfully created" notification will appear.
After successfully editing, a "Discount successfully edited" notification will appear.
Activating, deactivating, or deleting a discount will also show a corresponding success notification.
Grid Refresh: The discount grid automatically refreshes after you add, edit, activate, deactivate, or delete any discount.
"AUTO" Tag: Discounts with the AUTO tag next to their name in the grid are Automatic discounts. Their active status cannot be toggled manually from the grid's action menu; you must edit the discount and uncheck the Automatic discount setting.
Status Column: The Status column in the grid shows a green check icon for active discounts and a red circle icon for inactive ones.
Use Case Examples
-
Example 1: Standard Early Bird Discount
Goal: To offer a 10% discount for anyone who enrols in a specific course at least 30 days before it starts.
-
Settings:
Name: "Early Bird 10%"
Type: "Percentage", Value:
10DateFrom: (Today's Date), DateTo: (30 days before course start)
AvailableForDefinitionIds: [Select the specific course definition]
Is automatically applied:
true
-
Example 2: Sibling Discount
Goal: To offer a $25 discount for a child if one of their siblings is already enrolled in any active course.
-
Settings:
Name: "Sibling Discount $25"
Type: "FixedAmount", Value:
25-
Conditions: Add one condition:
Policy: "Number of Children with Active Enrolments"
Comparison Type: "Greater than or equal to"
Value:
1
Is automatically applied:
true
-
Example 3: Staff Perk
Goal: To give all staff members a 100% discount on all courses.
-
Settings:
Name: "Staff Perk 100%"
Type: "Percentage", Value:
100-
Conditions: Add one condition:
Policy: "Member tags"
Comparison Type: "Contains"
Value: [Select "Staff" tag]
Is automatically applied:
true
-
Example 4: "Autopay" Incentive
Goal: To give a 5% discount to any member who has at least one payment method saved to their file.
-
Settings:
Name: "Autopay Discount 5%"
Type: "Percentage", Value:
5-
Conditions: Add one condition:
Policy: "Number of configured payment sources"
Comparison Type: "Greater than or equal to"
Value:
1
Is automatically applied:
true
-
Example 5: Corporate Partner Discount
Goal: To give a 15% discount to any member whose membership contract is a specific corporate plan.
-
Settings:
Name: "Corp Partner 15%"
Type: "Percentage", Value:
15-
Conditions: Add one condition:
Policy: "Payment plans of member's active contracts"
Comparison Type: "Contains"
Value: [Select "Corporate-Partner-Plan-A"]
Is automatically applied:
true
-
Example 6: Multi-Course Loyalty Discount
Goal: To offer a $50 discount on a new enrolment for any member who is already enrolled in 2 or more other courses.
-
Settings:
Name: "Multi-Course Loyalty"
Type: "FixedAmount", Value:
50-
Conditions: Add one condition:
Policy: "Number of active enrolments"
Comparison Type: "Greater than or equal to"
Value:
2
Is automatically applied:
true
-
Example 7: "Full Family" Discount (AND Logic)
Goal: To give a 20% discount only if at least one parent and at least two children are enrolling at the same time.
-
Settings:
Name: "Full Family 20%"
Type: "Percentage", Value:
20-
Conditions: Add two conditions:
Policy: "Number of Parents with Active Enrolment", Comparison: "Greater than or equal to", Value:
1Policy: "Number of Children with Active Enrolment", Comparison: "Greater than or equal to", Value:
2
IsMatchingAllConditions:
true(checked)Is automatically applied:
true
-
Example 8: "VIP Parent" Perk
Goal: To give a discount to a child if their parent has a "VIP" tag.
-
Settings:
Name: "VIP Parent Perk"
Type: "FixedAmount", Value:
30-
Conditions: Add one condition:
Policy: "Member's parents tags"
Comparison Type: "Contains"
Value: [Select "VIP" tag]
Is automatically applied:
true
-
Example 9: "Senior" Discount (Custom Attribute)
Goal: To offer a 10% discount to anyone whose "MemberStatus" custom attribute is set to "Senior".
-
Settings:
Name: "Senior 10%"
Type: "Percentage", Value:
10-
Conditions: Add one condition:
Policy: "User custom attribute value"
Comparison Type: "Equals"
Value: "Senior" (assuming this is the text value stored in the custom attribute)
Is automatically applied:
true
-
Example 10: "Win-Back" Campaign (OR Logic)
Goal: To offer a $25 discount to any member whose tag is either "Expired" OR "Cancelled" to entice them back.
-
Settings:
Name: "Win-Back $25"
Type: "FixedAmount", Value:
25-
Conditions: Add two conditions:
Policy: "Member tags", Comparison: "Contains", Value: [Select "Expired" tag]
Policy: "Member tags", Comparison: "Contains", Value: [Select "Cancelled" tag]
IsMatchingAllConditions:
false(unchecked)Is automatically applied:
true
-
Example 11: Manual "Manager's Discretion" Discount
Goal: To create a $50 discount that a staff member can manually apply for any reason (e.g., complaint resolution) but that never applies automatically.
-
Settings:
Name: "Manager Goodwill $50"
Type: "FixedAmount", Value:
50AvailableForAllDefinitions:
true(checked)Conditions: (Leave empty)
Is automatically applied:
false(unchecked)
-
Example 12: "Single Parent" Household Discount
Goal: To offer a 10% discount to members who are children linked to only one parent account.
-
Settings:
Name: "Single Parent Family 10%"
Type: "Percentage", Value:
10-
Conditions: Add one condition:
Policy: "Number of Parents"
Comparison Type: "Equals"
Value:
1
Is automatically applied:
true
-
Example 13: "Family Has Active Membership" Discount
Goal: To offer a discount on a course to a child if their parent has an active membership contract.
-
Settings:
Name: "Active Parent Membership Discount"
Type: "FixedAmount", Value:
20-
Conditions: Add one condition:
Policy: "Number of Parents with Active Contract"
Comparison Type: "Greater than or equal to"
Value:
1
Is automatically applied:
true
-
Example 14: ClientPortal Flash Sale
Goal: To run a 24-hour flash sale for 20% off, but only for enrolments made through the mobile app.
-
Settings:
Name: "Mobile Flash Sale 20%"
Type: "Percentage", Value:
20DateFrom:
18/11/2025 09:00DateTo:
19/11/2025 09:00AvailableForApps: ["ClientPortal"]
Is automatically applied:
true
-
Example 15: "Total Family" Discount
Goal: To give a 10% discount to any member who has 4 or more total family members (parents, children, siblings) linked to their account.
-
Settings:
Name: "Large Family 10%"
Type: "Percentage", Value:
10-
Conditions: Add one condition:
Policy: "Number of Family Members"
Comparison Type: "Greater than or equal to"
Value:
4
Is automatically applied:
true
-
Example 16: "VIP Parent Membership" Discount
Goal: To give a special discount to a child only if their parent has the "Gold Tier" membership plan.
-
Settings:
Name: "Child of Gold Member"
Type: "FixedAmount", Value:
100-
Conditions: Add one condition:
Policy: "Payment plans of member's parents active contracts"
Comparison Type: "Contains"
Value: [Select "Gold-Tier-Membership" plan]
Is automatically applied:
true