- Published
- Byline
- GoHighLevel Partners Editorial
- Filed under
- GoHighLevel Automation
The amount is the least important field on a coupon; duration, limits and scope are what decide its real cost.
Coupon code setup: the settings that decide what a discount actually costs you
A coupon looks like a one-field decision — how much off — and it is not. The amount is the least interesting part. What determines whether a code grows revenue or quietly erodes it is the set of boundaries around it: what it applies to, how many times it can be used, how long it lives, and on a subscription, how many billing cycles it keeps discounting. Those settings are easy to get wrong once and hard to notice for months.
This is a setup guide in the sense of decisions rather than clicks. The mechanics differ between checkout systems, but every one of them exposes the same handful of choices, and the choices are where the money is.
Fixed amount or percentage
The two behave differently as the cart changes, which matters more than the headline number.
| Type | Behaves like | Watch for |
|---|---|---|
| Percentage off | Scales with the order — the discount grows as the cart grows | On a large order or a bundle, the amount given away can be far more than you pictured when you set it |
| Fixed amount off | A constant, so its weight shrinks as the order grows | On a small order it can approach or exceed the item’s value unless a minimum is set |
| Percentage on a subscription | Repeats on every discounted cycle | The real cost is the amount multiplied by the number of cycles, not the first payment |
| Fixed amount on a subscription | Same, but flattens as the plan price changes | A later price increase silently changes what the discount is worth |
Percentages suit small carts and single products. Fixed amounts suit high value orders where a percentage would give away more than the margin allows. Neither is right in general, which is why the amount should be the last thing you decide, not the first.
Duration on a subscription is the setting people get wrong
On a one-off purchase a coupon is a single event. On a recurring plan it is a policy, and there are three quite different things it can mean:
- The first payment only. An acquisition incentive. The customer is on the full price from the second cycle, so the cost is bounded and known before you publish the code.
- A set number of cycles. A discounted onboarding period. The cost is still bounded, and there is a defined moment when the price rises — which is a moment you should plan a message around rather than discover through a cancellation.
- Every cycle, indefinitely. A permanent price change for that customer, dressed as a discount. Sometimes that is exactly what you want for an early cohort. It should never be what you get by accident because a duration field defaulted that way.
Before setting duration, be clear which billing model the product is on at all. The distinction between a one-time charge and a recurring one changes what a coupon even means, and a discount attached to the wrong one is the most expensive misconfiguration in this whole article. If the product is a subscription, the mechanics of how the recurring charge is set up determine how the discount is applied on each cycle.
Limits: the three that matter
Every coupon should carry boundaries even when you do not expect it to need them. Codes travel — they get shared, posted to deal sites, and pulled out of an old email eighteen months later.
- Total redemptions. A cap on how many times the code can be used across everyone. This is your ceiling on the whole promotion.
- Per-customer redemptions. Usually one. Without it, a single buyer can apply the same code to repeat orders indefinitely.
- An expiry date. Set one on every code, including internal ones. An open-ended code is a liability you will forget about, and the cost of setting a date you later extend is nothing.
Product scoping belongs in the same conversation. A code that applies to everything will be used on your highest-value item, not the one you were promoting. Scope it to the product or the group you meant, and check what happens when the cart also contains something else — particularly an order bump, where the interaction between a cart-wide discount and an add-on is easy to assume and worth verifying with a test order.
Public codes and private codes are different tools
A public code is one you print in a campaign: short, memorable, reused by everybody. Its risk is leakage — it will end up somewhere you did not put it, and people who would have paid full price will find it. Cap it and date it.
A private code is generated per person or per campaign, often single-use, and is the right choice for a negotiated discount, a service recovery gesture, or a partner arrangement. It is more work to issue and it does not leak. When the discount is meaningful, prefer the private form.
Naming codes so you can read a report later
Give codes a structure that carries the campaign and the period, so that months later the report tells you what happened without archaeology. A code named after the campaign and month is legible; a code named after an inside joke is not. Never reuse a retired code name for a new promotion — the old one is still in somebody’s inbox, and the report will merge two campaigns into one line.
Where discounts fit in the offer, and where they do not
A discount is one of several ways to lower the barrier to a first purchase, and it is the one that costs margin permanently in the customer’s mind: it resets what they believe the thing is worth. The alternatives change the shape of the risk instead of the price. A trial lets someone experience the product before committing. A clearer product page often removes the hesitation the discount was being used to overcome. Segmenting first — with something like a short qualifying quiz — sends the right offer to the right person rather than discounting the same offer for everyone.
None of that means never discount. It means know which problem you are solving. If people are hesitating because they do not understand the offer, a code does not fix it; it just makes the misunderstanding cheaper.
Testing a code before it goes out
Place a real test order for every code you publish, and check all of it:
- The code is accepted, and the total falls by the amount you expected.
- It is refused after the expiry date, and refused once the per-customer limit is reached.
- It does not apply to products outside its scope, including anything added at checkout.
- On a subscription, the second cycle charges what you intended — check the scheduled amount, not just the first payment.
- The order record shows which code was used, so the campaign can be reported on afterwards.
That last point is the one skipped most often, and it is what turns a promotion into something you can learn from. A discount you cannot attribute is a cost with no matching lesson.
Common ways coupon setups go wrong
- An indefinite duration on a subscription code. The intended one-month incentive becomes a permanent price for everyone who used it.
- No expiry. The code resurfaces during an unrelated campaign.
- No per-customer cap. One buyer, many discounted orders.
- Scope wider than intended. Applied to the premium item you never meant to discount.
- Two active codes with overlapping scope. Whichever the checkout picks, it will not be the one you meant, and support cannot explain the total to the customer.
- No record of the code on the order. The promotion cannot be measured, so the next one repeats the same guess.
Frequently Asked Questions
Should a coupon be a percentage or a fixed amount?
It depends on how the discount should behave as the order changes. A percentage scales with the cart, which suits small carts and single products but can give away a lot on a large order or a bundle. A fixed amount stays constant, which suits high-value orders, but on a small order it can approach the item’s value unless you set a minimum order requirement. Decide the behaviour first and the number second.
What happens to a coupon on a recurring subscription?
That depends entirely on the duration setting, which is the single most consequential field on a subscription coupon. It can apply to the first payment only, to a set number of billing cycles, or to every cycle indefinitely. The third option is a permanent price change for that customer rather than a promotion, so it should always be a deliberate choice and never something a default leaves in place.
Should every coupon code have an expiry date?
Yes, including internal and test codes. Codes outlive the campaigns they were made for: they sit in old emails, get shared between customers and are posted to deal sites. An expiry date costs nothing and can always be extended, while an open-ended code is a liability that resurfaces at the least convenient moment, often in the middle of an unrelated promotion.
How do I stop a discount code from being shared?
Assume a public code will be shared and design around it: cap total redemptions, cap redemptions per customer, set an expiry and scope it to the products you meant. When the discount is large enough that leakage would hurt, use single-use codes generated per person instead of one memorable public code. That is more work to issue, and it is the only approach that genuinely does not leak.
Can two coupon codes be used on the same order?
Whether stacking is possible depends on the checkout system, but the more common problem is not stacking at all: it is two active codes with overlapping scope, where whichever one the checkout chooses is not the one you intended. Before publishing a code, list the other codes that are still live and check for overlap in products and dates, then place a test order that has both in play.
What should I test before publishing a coupon code?
Place a real test order and verify the whole set: the code is accepted and the total falls by the expected amount, it is refused after expiry and after the per-customer limit, it does not apply to products outside its scope including anything added at checkout, and on a subscription the next scheduled charge is what you intended. Finally, confirm the order record stores which code was used.
Is a discount always the right way to win a hesitant buyer?
Not always, because a discount changes the price while most hesitation is about risk or clarity. A trial lets someone experience the product before committing, and a clearer product page often removes the objection a code was being used to paper over. Work out which problem you are solving first: if buyers do not understand the offer, a code only makes the misunderstanding less expensive.
We build your GoHighLevel account for you
CRM, pipelines, funnels, SMS and automation — configured for your business, not left for you to figure out.
- Setup (one-time)$850
- Ongoing (per month)$38.80
No obligation quote · reply within 1 business day
This site is independently operated and is not officially affiliated with, endorsed by, or sponsored by HighLevel LLC. We do not receive referral commissions — this is our own flat-fee implementation service.