You can offer Discounts on packages, retail products, and fees & miscellaneous products, all from one central builder. Discounts can be applied by staff at the point of sale or redeemed by athletes and leads themselves using a discount code on the Athlete App, the Sales Portal, or in Kilo GMS.
This article walks through how to build a discount, how it's applied at checkout across every sales channel, and what to expect from usage limits, pricing math, invoices, and reporting.
What You Can Do with Discounts
Create percentage-off or fixed-amount-off discounts from a single Discount Builder
Map a discount to specific packages, retail products, or fees & miscellaneous products
Apply a discount at the point of sale (staff-applied), or let athletes and leads redeem a code themselves (self-service)
Limit a discount to one use per athlete, or allow unlimited redemptions
Turn a discount on or off without deleting it, and archive discounts you no longer need
See exactly how much a discount has saved athletes and how often it's been used
View discounted pricing on invoices, email receipts, and revenue dashboards
Setting Up a Discount
Everything involved in building a discount lives in one place, from naming it to choosing which products it applies to.
Where do I create and manage discounts?
Go to Products → Discounts to open the Discount Builder. This is the central hub for every discount in your gym.
The master list shows all of your discounts in a table with the following columns: Name, Type, Value, Code, Limits, Usage, Status, and Actions.
A few things to know about the list:
It defaults to showing your Active discounts, with the most recently created at the top
You can filter by status: Active, Inactive, or Archived
You can search by discount name or code
Archived discounts always sit at the bottom of the list, below active and inactive ones
How do I create a new discount?
Click the "+ Discount" button in Products → Discounts to open the Create Discount drawer, then fill in three sections: General Settings, Eligible Products, and Availability Settings.
Go to Products → Discounts.
Click + Discount.
Under General Settings, enter a unique Name and a Code (8 to 12 characters, letters and numbers only). Click the wand icon to auto-generate one.
Choose a Value Type: Percentage (%) or Fixed Amount ($).
Enter the Value (whole numbers for percentage, decimals allowed for fixed amount).
Under Eligible Products, select which Packages, Retail products, and Fees & Miscellaneous products the discount applies to.
Under Availability Settings, confirm the Status (Active/Inactive) and One-Time Use (On/Off) toggles.
Click Save.
Note: Apply to All Invoices is a staff-only setting available at the point of sale. It isn't part of the athlete or lead self-checkout flow. A discount code redeemed through the Athlete App or Sales Portal only applies to that initial purchase.
If the code you entered is already in use, includes special characters, or falls outside the 8 to 12 character range, you'll see an error and need to adjust it before saving.
What products can I map a discount to?
You can map a discount to any combination of Packages, Retail products, and Fees & Miscellaneous products. A discount only applies to the categories and items you select.
When you open the Eligible Products step, you'll see three separate selectors, one each for Packages, Retail, and Fees & Miscellaneous. All items in a category are selected by default. From there, you can:
Click a selector to open a list of every item in that category, all pre-checked
Uncheck individual items to exclude them, or click Unselect All to clear the whole category
Click Select All to restore every item once you've unselected them
Note: Discounts are automatically hidden from free items and free packages, even if the discount is active and would otherwise be eligible.
Does a discount turn on automatically once I create it?
Yes. As soon as you map the first product to a discount, it automatically switches to Active status and turns One-Time Use on. You can change either setting afterward if you'd rather the discount be unlimited-use or start out Inactive.
Applying a Discount at the Point of Sale
Staff can apply a discount during an in-person or phone checkout, whether the sale is a package, a retail item, or a fee.
How do I apply a discount to a package at the point of sale?
Go to the athlete's package assignment screen and select the discount from the dropdown next to the package. Staff can apply one discount per transaction.
Go to Users → [Athlete Name] → Packages → Add Package.
On the Package Details screen, open the discount dropdown.
Select an Active discount that's eligible for this package.
Decide whether the discount should apply to just the first invoice, or to every future installment within that package or billing plan.
Review the updated pricing summary, then click Submit.
Only discounts that are currently Active and eligible for that package appear in the dropdown. If an athlete has already used up a One-Time Use discount, it won't show in their dropdown at all. The system also double-checks that the discount is still Active right when you click Submit, so if something changed in the moment, you'll be notified before the charge goes through.
What does "Apply to All Invoices" do?
By default, a discount applied to a package only affects the first invoice. Checking "Apply to All Invoices" extends the discount to every future installment on that billing plan.
The checkbox is unchecked by default to protect long-term revenue from being discounted further than intended.
Note: The discount does not carry over on renewals. If you want a discounted rate to continue beyond the current plan, create a billing plan at the discounted rate instead.
How do I apply a discount to a retail or fees & misc. item at checkout?
Open the item in the shopping cart, click the "Available Discounts" link below the item name, and toggle on the discount you want to apply.
Add the item to the cart in the Retail or Fees & Misc. view.
Look for the blue Available Discounts link under the item name. This only appears for items that have an eligible discount, and won't show on ineligible or free items.
Click the link to expand the list of eligible discounts for that item.
Toggle on the discount you want to apply.
Repeat for other items in the cart as needed.
Only one discount can be active per item at a time. Toggling on a new discount automatically turns off the previous one. Retail and Fees & Misc. discounts always apply to that single charge only; they don't recur.
Letting Athletes Redeem a Code
Athletes and leads can enter a code themselves during online checkout, without any staff involvement.
How do athletes and leads redeem a discount code themselves?
Athletes and leads can enter a discount code directly during checkout in the Athlete App or Sales Portal, and the price updates immediately once the code is validated.
During package checkout, find the Discount Code field below the billing summary.
Enter the code and click Apply.
If the code is valid, you'll see a confirmation like "Code applied! You saved $X," and the price recalculates automatically.
If the code is invalid, expired for that athlete, or not eligible for the package, you'll see an "Invalid Code" message and the original price stays unchanged.
The Sales Portal works the same way and is available to both existing athletes and new leads, so this is also where prospects can redeem a first-time or promotional code during their initial sign-up. In both cases, the code is re-checked one more time right when the athlete submits payment, in case anything changed since they first entered it.
Note: Apply to All Invoices is a staff-only setting available at the point of sale. It isn't part of the athlete or lead self-checkout flow. A discount code redeemed through the Athlete App or Sales Portal only applies to that initial purchase.
How does One-Time Use work, and what happens if someone tries to reuse a code?
A One-Time Use discount can only be successfully redeemed once per athlete. After that, it's automatically hidden from staff at the point of sale and rejected as an "Invalid Code" on self-service checkout.
The usage counter only increments once a transaction is actually marked Paid. If a payment fails, for example a declined card, the attempt doesn't count against the limit, and the athlete or staff member can try again.
If you'd rather a discount be reusable, turn One-Time Use off in the discount's Availability Settings. It can then be redeemed an unlimited number of times.
How Pricing and Totals Work
Discounts change the math on an invoice in a few specific ways, including how tax is calculated and what happens at the low end.
How does pricing recalculate when a discount is applied?
The discount is applied to the pre-tax price first, and tax is then recalculated on the reduced amount. You'll see the original price crossed out, with the new discounted price and updated total shown right below it.
A couple of things worth knowing:
If a fixed-amount discount is larger than the item or package price, the total is floored at $0.00. It never goes negative.
If you're paying staff commission as a percentage of sales, that commission is calculated on the original, pre-discount price, so discounts don't reduce staff payouts.
What happens if a discount brings the total to $0.00?
The invoice is created for $0.00 and is automatically marked as Paid. No payment method is required to complete checkout. You'll see a warning at the point of sale before this happens: "Discount exceeds item price; total will be set to $0.00."
A few related details:
Totals are never allowed to go negative. A $0.00 floor always applies.
Any leftover discount value isn't carried over to another invoice or package.
If a payment fails on a discounted transaction, for example a declined card, it doesn't count as a completed redemption, and the code stays available to use again.
Editing, Pausing, and Archiving
Some parts of a discount can be changed after it's created, and some are locked to keep billing history accurate.
Can I edit a discount after it's created? What can and can't be changed?
You can update a discount's eligible products, Status, and One-Time Use setting at any time. The Name, Code, Value Type, and Value are locked once the discount is created. Locking those fields keeps billing history accurate, since changing the underlying value of a discount after it's been used could make past invoices inconsistent with the discount's current settings.
To edit a discount:
Go to Products → Discounts.
Find the discount and click Actions → Edit.
Update the Eligible Products, Status, or One-Time Use setting as needed.
Click Save.
Changes sync in real time across Kilo GMS, the Athlete App, and the Sales Portal. Anything already applied to an existing invoice stays exactly as it was. Edits only affect future redemptions.
What happens if I turn a discount Inactive while athletes are still using it?
Setting a discount to Inactive only blocks new redemptions. It doesn't remove the discount from athletes who already have it applied to a recurring package. Existing recurring installments continue receiving the discount as configured; it's never pulled retroactively.
What happens if I change a discount's eligible products while an athlete is mid-checkout?
The discount is re-validated one more time right when the athlete or staff member submits payment, so if the discount no longer applies by then, the transaction is blocked and the athlete is notified before anything is charged. This applies whether the change happens on the Athlete App, Sales Portal, or at the point of sale.
How do I archive or restore a discount?
Use Actions → Archive in the master list to retire a discount without deleting it, and Actions → Unarchive to bring it back. Discounts can't be permanently deleted, since doing so would break the billing history tied to past invoices.
Archived discounts always appear at the bottom of the master list, below both Active and Inactive discounts, and won't be available anywhere at checkout until you unarchive them.
Reporting and Invoices
Every redemption is tracked, and discounted pricing appears everywhere an athlete or staff member sees a total.
Where can I see how a discount has been used?
Click "Usage Report" from a discount's row in the master list to see total redemptions, how many athletes used it, and how much it's saved them.
The Usage Report drawer shows:
Total Uses, Athletes, and Total Saved (Total Saved only counts Paid invoices)
A Redemption History table listing the athlete, date, product, and where it was redeemed (Kilo GMS, Athlete App, or Sales Portal)
A date range selector. New discounts, under 30 days old, default to showing activity since creation, while established discounts default to the last 30 days.
An Export button to download the filtered results as a CSV
Will discounts show up on invoices and receipts?
Yes. Anywhere an athlete or staff member sees pricing, the discount is clearly broken out as its own line item, with the original price crossed out. This includes:
Invoices in Kilo GMS, and the Invoice drawer for a specific transaction
Athlete App invoice details and email receipts
Revenue and payment dashboards (Total Revenue, Upcoming Revenue, Pending Payments, and Past Due Payments), which all reflect discounted totals
From the Invoice drawer, staff can also add or remove a discount after the invoice has already been created. Select a discount from the line item's dropdown and click Apply Discount, or click Remove Discount to restore the original price. If the price or tax rate on that line item changes afterward, the discount recalculates automatically against the new value.
Staff-Applied Discounts vs. Self-Service Discount Codes: Which Should You Use?
Staff-Applied (Point of Sale) | Self-Service (Athlete App / Sales Portal) | |
|---|---|---|
Who applies it | Staff, during in-person or phone checkout | Athletes or leads, on their own during online checkout |
Where | Package assignment screen, or the Retail/Fees & Misc. cart | Package Checkout Modal (Athlete App) or Review screen (Sales Portal) |
How it's applied | Selected from a dropdown or toggle | Entered as a code in a text field |
Best for | In-person sales, phone enrollments, adjusting an existing invoice | Online sign-ups, promo campaigns, first-time offers for leads |
Validation timing | Checked when selected and again at Submit | Checked when the code is entered and again at final Submit |
Helpful Tips
A discount's Name, Code, Value Type, and Value can't be changed after creation. Double-check these before saving, since only Eligible Products, Status, and One-Time Use can be edited later.
Use the Usage Report regularly to spot discounts that were created but rarely redeemed. That's often a sign athletes don't know the code exists.
Archive discounts you're no longer running instead of leaving them Active. It keeps your master list and dropdowns easier to scan.
Discounts are automatically hidden on free items and free packages, so you don't need to manage that manually.
A few things this feature doesn't support yet, in case an athlete or your team asks: bulk-generating multiple codes at once, setting an expiration date on a discount, automatic triggers like "buy one get one," and integrations with outside coupon or loyalty platforms.
When This Feature Is Most Helpful
Running a limited-time promotion and tracking exactly who redeemed it
Offering a first-visit or sign-up discount to new leads through the Sales Portal
Giving staff a fast, consistent way to apply a discount during an in-person sale
Letting athletes self-serve a promo code without needing to call or visit the front desk
Keeping billing history clean by editing eligibility or pausing a discount instead of creating a new one
Reviewing exactly how much revenue was discounted, and by whom, during a reconciliation or audit
If you have questions about discounts in Kilo GMS, our Support team is happy to help. Reach us at hello@usekilo.com.