Stacking & budgets
Order and Combine decide who wins and whether they stack; budgets cap runaway discounts.
The more rules you switch on, the more likely two of them clash on a single booking. This article explains exactly what Mountify does then: who wins, when discounts add up, what they are calculated on, and where to put the safety nets so a promo doesn’t eat your margin.
Everything described here lives in the rule editor — the Meta card (the Order field) and the Advanced card.

1. The two kinds of rule: solo and combinable
The only switch that matters is Combine with other rules in the Advanced card.
| State | How the rule behaves |
|---|---|
| Off (default) | Solo. It applies alone — it beats every combinable rule |
| On | Combinable. It stacks with other combinable rules |
The hint under the switch says exactly this: “Off — applies on its own: it overrides combinable rules, and ties between solo rules are settled by order. On — it stacks with other combinable rules (discounts add up), but a solo rule still wins if one applies.”
2. The algorithm, step by step
Here is what the system does when several rules apply to one booking:
- Filter. Rules that don’t qualify are dropped (wrong client, wrong service, expired date, minimum spend not reached, cap exhausted).
- Split into two groups — solo and combinable.
- If there is at least one solo rule with a real discount — it takes the whole stage. Every combinable rule is recorded as “would have applied” but voided immediately. The client gets only the winner’s discount.
- If there is no solo rule — every combinable rule is applied one after another, ordered by Order, highest first.
How the winner among solo rules is chosen
In priority order:
| # | Criterion |
|---|---|
| 1 | Higher Order (0–100) |
| 2 | On a tie — the bigger discount in money |
| 3 | On a complete tie — the more recently edited rule |
A rule that gives no real discount does not win. If a solo rule would give 0 (because the discount is 0 %, the ceiling is 0, or the budget is spent), it is skipped and the combinable rules get their turn. Otherwise one “dead” rule would block all the others.
3. How combinable rules stack
The key detail: each subsequent rule works on the remainder, not on the original price.
Example — a 100 service and two combinable rules (−20 % with order 60 and −10 % with order 40):
| Step | Calculation | Remainder |
|---|---|---|
| Start | — | 100 |
| Rule A (−20 %, order 60) | 20 % of 100 = 20 | 80 |
| Rule B (−10 %, order 40) | 10 % of 80 = 8 | 72 |
Total discount 28, final price 72. Not 30 and 70.
That is why Order matters for combinable rules too: the higher-order rule bites into the bigger number.
4. Where loyalty sits in the price
This is the most commonly missed part, and it explains why a deposit is sometimes smaller than expected.
The price is built like this:
- Base price of the service
- → replaced by the per-specialist price, if you set one
- → multiplied by the day/time surcharge (if a price-modifier rule matches)
- → multiplied by the number of seats (group class) or number of slots (rental)
- = the base the loyalty discount is calculated on
- → the loyalty discount is subtracted
- → the add-ons are added
| Part of the price | Counted in the discount base |
|---|---|
| Base price | Yes |
| Per-specialist price | Yes |
| Day / time surcharge | Yes |
| Seats / slots | Yes |
| Add-ons | No |
Example: a 60 service + a 20 add-on with a −50 % rule → the discount is 30 (half of 60) and the total is 50, not 40.
An asymmetry that surprises people: the Minimum spend field in “Who qualifies” is measured on the service plus add-ons, while the discount is computed on the service alone. So an order of 40 + a 15 add-on clears a “minimum 50” gate, but the discount only lands on the 40.
5. A promo code on top of an automatic discount
The public flow runs two separate passes:
- First the automatic rules apply (first visit, stamps).
- Then, if the client typed a promo code, the code is applied to the remainder — not to the full price.
So with a price of 100, an automatic −20 and a combinable −10 % promo code, the code gives 10 % of 80 = 8, not 10.
If the promo code is solo (Combine off) and wins, the automatic discount is voided and only the code remains.
6. The four safety nets in “Advanced”
| Field | Empty means | What it limits |
|---|---|---|
| Max uses per customer | unlimited | How many times one client can collect the reward. Promo codes only |
| Total budget · uses | unlimited | How many times the rule can fire in total |
| Discount ceiling | no ceiling | The maximum discount per single application. “−50 %, but never more than 20” |
| Total budget · money | unlimited | The total amount the rule may ever give away |
How “Total budget · money” really behaves
It is not an abrupt kill switch but a clamp. If 12 of the budget remains and the rule would give 30, the last application is trimmed to 12 and the budget closes on exactly the figure you typed. After that the rule stops firing altogether.
Cancelled bookings still count
Every cap counts voided applications too — from a cancellation, a no-show or a manual void. Otherwise the “book → take the reward → cancel → book again” loop would drain the budget forever.
One exception: the numbers in the stats strip above the list (Applications · 30d, Discount given · 30d) are decremented on cancellation, so they reflect currently-live discounts. Caps and statistics deliberately count differently.
7. Practical recipes
| Situation | Setting |
|---|---|
| ”Only one discount per booking” | Leave Combine off everywhere. That is the default behaviour |
| ”Stamps always beat the promo code” | Both solo; give stamps Order 70 and the code 50 |
| ”The code may add on top of the punch card” | Turn Combine on for both |
| ”A campaign with a 500 budget” | Total budget · money = 500 |
| ”The first 100 clients” | Total budget · uses = 100 |
| ”Once per person” | Max uses per customer = 1 (promo codes only — see the identity note in Promo codes) |
| “A big discount, but capped” | Percent off = 50 + Discount ceiling = 20 |
8. How to check what actually happened
Open the booking and look at the price breakdown — applied rules appear as separate lines.
For more detail: Clients → the client → the “Loyalty” tab → Applications. Each row shows the rule, the amount, the date and whether it is live or voided. The voided ones include the “losing” combinable rules that would have applied had a solo rule not won — that is the audit trail explaining why the client got one discount and not two.
9. If something isn’t working
| Symptom | Check |
|---|---|
| Two discounts don’t add up | Combine with other rules must be on for both |
| They add up and I don’t want that | Turn Combine off on at least one |
| The discount is smaller than the percentage | Rule on the remainder (§3), add-ons outside the base (§4), or Discount ceiling |
| The rule suddenly stopped | Check Total budget · money and Total budget · uses |
| The wrong rule wins | Compare Order on the two. Higher wins |
| The rule shows as applied but with 0 | The budget is spent, or the ceiling is 0 |
What’s next
- Promo codes — the rule most often involved in a clash.
- Punch cards (buy N, get one) — how the card behaves next to other discounts.
- Loyalty rule types — the three conditions and two rewards.
- Pricing & modifiers — the steps that come before loyalty in the sum.