Service Equality templates
A Service Equality Template lets your members use the service credits in their membership on different but comparable services — not just the single service the credit was created for.
For example, if a membership includes credits for a 60-minute massage, an equality template can allow those same credits to be used toward a 30-minute massage, a facial, or a hot stone treatment instead. You decide which services can stand in for one another, and how much credit each one uses.
Templates are reusable. Build one template, then attach it to as many memberships as you like. This removes the need to issue a separate membership for every service variant you sell, while you keep full control over the “exchange rate” between services.
In short: One template = a list of “this service can be redeemed as that service” rules. Attach the template to a membership, and members can swap between the listed services at checkout.
Key terms
Term | What it means |
|---|---|
Template | A named, reusable set of equivalence rules. It has a name, a unique code, and an optional description. |
Base service | The original “anchor” service a member has credit for — the starting point of a rule. Its equality multiplier is always 1.0. |
Associated service | An alternative service the member is allowed to receive instead of the base service. |
Equality multiplier | How much credit the alternative uses compared to the base service (for example, 0.5, 1, or 2). Also called the equivalence factor. Must be greater than 0. |
Service Equality Template code | A unique short identifier for the template (unique within your organization). |
Active flag | Controls whether the template is available for new memberships. |
How the equality multiplier works
The multiplier sets the value of an associated service relative to the base service:
Multiplier of 1 — a one-for-one swap. One credit of the base service is used for one of the associated service.
Multiplier less than 1 (e.g. 0.5) — the associated service is “smaller.” One base credit can cover two of the associated service.
Multiplier greater than 1 (e.g. 2) — the associated service is “larger.” It takes two base credits to cover one of the associated service.
Multipliers are set in steps of 0.25, from 0.25 up to 20. Two additional values — 0.33 and 0.67 — unlock three-way equivalencies; see “Fractional multipliers” below.
Example: Base service “60-min Massage,” associated service “30-min Massage,” multiplier 0.5. A member with 2 credits for the 60-minute massage could instead book up to 4 of the 30-minute massages.
Fractional multipliers: 3-for-1 and 3-for-2 equivalencies
Standard 0.25-step multipliers cover most cases, but some businesses need to map three of one service to one (or two) of another — for example, “3 haircut credits = 9 blowouts,” or “3 haircut credits = 4 deep-conditioning sessions.” The natural ratios for these are one-third and two-thirds, which don’t divide evenly into a clean decimal.
To support them, Zenoti offers two special multipliers:
0.33 — a 3-for-1 model. Redeeming one associated service uses 0.33 of a base credit, so 3 credits stretch to about 9 redemptions.
0.67 — a 3-for-2 model. Redeeming one associated service uses 0.67 of a base credit.
Enablement: Fractional multipliers are turned off by default and are enabled by the Zenoti Product team through a master setting. Business admins can see whether it is on, but cannot change it. Once enabled, 0.33 and 0.67 appear in the multiplier dropdown in your Service Equality Templates. This feature was introduced in the Chickadee (June 2026) release and applies across Web, ZMA, the Webstore, and the Customer Mobile App.
Configuration examples
Base service | Associated service | Multiplier | What the member gets |
|---|---|---|---|
Haircut (3 credits) | Blowout | 0.33 | About 9 blowouts from 3 credits (3-for-1) |
Haircut (3 credits) | Deep Conditioning | 0.67 | About 4 deep-conditioning sessions from 3 credits (3-for-2) |
How the repeating cycle keeps balances exact
Because one-third and two-thirds can’t be written as exact decimals, Zenoti applies the multiplier in a repeating three-redemption cycle. The third redemption in each cycle is adjusted slightly so that credits always add up to whole numbers:
0.33: 0.33 + 0.33 + 0.34 = 1.00 per cycle
0.67: 0.67 + 0.67 + 0.66 = 2.00 per cycle
This guarantees that credit balances, recognized revenue, and commissions always reconcile exactly to the amount collected — no leftover pennies. Zenoti tracks each member’s position in the cycle automatically; staff don’t need to do anything.
When you pick 0.33 or 0.67 in a template, an inline note reminds you of the cycle, for example: “Redemptions follow a repeating cycle: 0.33, 0.33, 0.34 per credit — ensuring exact balance.”
What members see
To keep things clear for guests, fractional balances are shown as clean fractions rather than decimals: 0.33 and 0.34 display as ⅓ (one-third), and 0.66 and 0.67 display as ⅔ (two-thirds). All other balances are shown as-is. This display is consistent across the Webstore, Customer Mobile App, and booking confirmations.
Note: For other decimals such as 0.25 and 0.5, the decimals are displayed as is and not shown as fractions.
Good to know
A single base credit at 0.67 yields 2 redemptions, not 3 — a full 0.67 cycle needs 2 whole credits. Keep this in mind when configuring.
While any active membership is using a 0.33 or 0.67 configuration, the fractional-multiplier setting cannot be switched off. Remove those configurations first.
Changing the multiplier on a template that active memberships already use will affect their benefit calculations; Zenoti asks you to confirm before saving.
Example template
Base service | Associated service | Multiplier | Meaning |
|---|---|---|---|
Swedish Massage 60 min | Swedish Massage 60 min | 1.0 | Consumes 1 credit |
Swedish Massage 60 min | Deep Tissue 30 min | 0.5 | Consumes 0.5 credit |
Swedish Massage 60 min | Hot Stone 90 min | 1.5 | Consumes 1.5 credits |
What happens at booking and checkout
When a member with an eligible membership books a service that exists in the attached template:
Zenoti looks up the member’s redeemable services from the template.
It filters the list to services that are actually available at the member’s chosen center.
The member can pick the original (base) service, or any of the associated services you linked to it.
The credit to deduct is calculated as 1 × the equality multiplier, and applied to the invoice automatically.
If there isn’t enough credit to cover an alternative at its multiplier, that option isn’t offered. If a service isn’t in the template, normal pricing applies.
Rules and limits to keep in mind
The Service Equality Template code must be unique within your organization.
The equality multiplier must be greater than zero — zero or negative values are rejected.
A service cannot be both a base service and an associated service within the same template.
The same service cannot be used as an associated service for two different base services in one template.
Duplicate base services are not allowed — each base service appears once.
For two-way equivalence, use reciprocal factors (for example, 0.5 one way and 2.0 the other), not the same value on both sides. Zenoti blocks circular associations that could let a member gain credit indefinitely.
Only services available at the booking center appear as redemption options — no per-center maintenance is needed.
Removing an association is a soft delete. Historical invoices keep their original multiplier for audit purposes.
Only active templates are offered to members at the time of redemption. A template still in use by active memberships should not be deactivated until those memberships are expired or moved.
The 0.33 and 0.67 multipliers appear only when Zenoti has enabled fractional multipliers for your organization, and the setting cannot be turned off while active memberships still use them.
Common scenarios
Massage variants
You sell five massage modalities at 30, 60, and 90-minute durations. Instead of creating 15 separate membership options, create one template with all 15 services and let the equality multiplier handle the price differences.
Three-for-one add-ons
A “3 haircuts a month” membership can let members swap each haircut credit for three quick blowouts using a 0.33 multiplier — about 9 blowouts from 3 credits — without issuing a separate blowout membership.
Tiered service redemption
A membership sold as “1 facial” can be redeemed for any facial in the template — an express facial at multiplier 0.5 (uses half the credit), or a premium facial at multiplier 1.5 (the member pays the difference).
Center-specific catalog
A template listing 20 services automatically shows only the services available at the member’s chosen center. No manual maintenance per center is required.
Troubleshooting
Problem | Likely cause | Fix |
|---|---|---|
“ Service Equality Template code already exists” | The code is in use by another template | Choose a different code |
“Equality multiplier must be positive” | Entered 0 or a negative number | Enter a value greater than 0 |
0.33 or 0.67 not in the dropdown | Fractional multipliers are not enabled for your organization | Ask Zenoti to enable the fractional-multiplier setting |
Can’t turn off fractional multipliers | Active memberships still use a 0.33 or 0.67 configuration | Remove those configurations first, then disable |
Service not appearing as equivalent at checkout | Service is not mapped to the template, or not available at the current center | Add the service to the template, or enable it at the center |
Can’t deactivate a template | Active memberships still reference it | Expire or change those memberships first |
Unexpected credit deduction | Wrong multiplier on the association | Edit the association and correct the multiplier |
Frequently asked questions
Can one membership use several templates?
No. A membership is linked to one template at a time. That single template can, however, contain many base services and rules.
Will editing a template change existing memberships?
Yes. Templates are shared, so updating the rules affects every membership linked to it. Zenoti warns you when active memberships are involved.
Why do my members see ⅓ or ⅔ instead of a number?
When a benefit uses the 0.33 or 0.67 multiplier, Zenoti shows the remaining balance as a clean fraction (⅓ or ⅔) so members aren’t confused by repeating decimals. The underlying balance is still tracked precisely.
How do I stop a template from being used?
Clear the Active checkbox on the template. Inactive templates are no longer offered to members, but your existing rules are kept for later.
Who can create or edit templates?
Staff with the appropriate membership and resource permissions. Support logins and inactive-center views are read-only and cannot make changes. The fractional-multiplier setting itself is managed by the Zenoti team.
Need more help? Contact your Zenoti administrator or Zenoti Support.
Credit deduction logic — repeating 3-redemption cycle
cycle_position = redemption_count_for_this_multiplier % 3. Positions 1 and 2 deduct the standard amount; position 0 (every 3rd) deducts the adjusted amount.
Multiplier | Redemption 1 | Redemption 2 | Redemption 3 (adj.) | Per cycle |
|---|---|---|---|---|
0.33 | 0.33 | 0.33 | 0.34 | 1.00 |
0.67 | 0.66 | 0.67 | 0.67 | 2.00 |
Fallback rule: if the remaining balance is > 0 but < the next expected deduction, deduct the full remaining balance (handles incomplete / mixed cycles).
Recognized residuals (redemption allowed below the multiplier): for 0.67 → {0.33, 0.66}; for 0.33 → {0.34, 0.67}. Arbitrary low balances from other multipliers do NOT qualify and are blocked.
Cycle position is tracked per multiplier, per benefit line — independent counters when 0.33 and 0.67 are both used against the same credit pool.
All balances and deductions stored/computed to exactly 2 decimal places using decimal / fixed-point arithmetic — no floating point. Balance must never go negative.
Renewal: counter resets to 0 when credits fully reset; carries forward (does not reset) on carry-forward renewal of a partial balance.
Edge case: 1 base credit at 0.67 yields 2 redemptions (0.67 + 0.33 fallback) — a full 0.67 cycle needs 2.00 credits.
Edge case: 0.20 residual from mixed-multiplier usage when attempting a 0.67 service is blocked (not a recognized residual): “Insufficient benefit balance to redeem this service.”
Revenue recognition
Revenue per redemption is proportional to credits consumed: (credits_deducted / total_credits) × benefit_price, rounded to 2 dp. The final redemption of the entire benefit uses “total price − sum of all prior revenue” to absorb any cumulative rounding residual. Cancelled mid-cycle: recognize revenue only for redemptions actually performed.
Worked example | Per-redemption revenue | Total |
|---|---|---|
$100 membership, 1 credit, 0.33 (3 redemptions) | $33.33, $33.33, $33.34 | $100.00 |
$200 membership, 2 credits, 0.67 (3 redemptions) | $66.66, $66.67, $66.67 | $200.00 |
Commission
Commission is calculated on the actual revenue recognized per redemption, not a flat average. The “last redemption gets the balance” approach also closes any sub-penny gap in total commission.
Asymmetry: the direction of the penny difference depends on price, credit count, and multiplier — it is NOT always in the employee’s favor. Example: $100 / 1 credit / 0.33 / 10% → $3.33 + $3.33 + $3.33 = $9.99. Example: $200 / 2 credits / 0.67 / 10% → $6.67 + $6.67 + $6.67 = $20.01.