Overage Billing Explained
Introduction
In Full mode, a finalised colour formula that uses more product than the service's pricing allows for automatically stages a colour overage line on the appointment's transaction. On the till that line reads Extra colour used. This tutorial walks through every stage of that line's life â from the formula finalising to the transaction completing â and what happens when edits, reverts, or refunds hit.
Who this is for: Owner, Admin, Manager, Receptionist â anyone responsible for how colour revenue reaches the till What you'll learn:
- What makes a formula produce an overage line
- How the line reaches the draft transaction
- Why the line on a draft is system-managed (and what you can and can't change)
- How completion locks everything
- What refund and a same-day edit can each change afterwards
Time to complete: 15 minutes
Prerequisites
- Salon colour formula mode set to Full (Tutorial 20.2)
- At least one active Colour Charge Rule configured (Tutorial 20.2)
- Services have Colour grams included in service price set where an Overage-only rule should apply (Tutorial 7.1)
- Read Tutorial 20.6 for the formula dialog
Step-by-Step Instructions
Step 1: Understand when a line is staged
An overage line is staged automatically when all of these are true:
- Salon mode is Full
- The appointment's service is flagged as a colour service. (For an Overage only rule it must also have Colour grams included in service price set â see the callout below)
- A colour formula on the appointment is finalised (not a draft plan, not mid-mix)
- An applicable charge rule is active â either the formula's chosen rule, or the salon's active default
- The calculated charge is non-zero â qualifying grams are at or above the rule's Minimum overage, AND the calculated amount is at or above the rule's Minimum charge
If any condition fails, no line is staged and no charge appears.
A formula pinned to a rule does not fall back to the default
Condition 4 has a detail worth knowing. If a formula names a specific charge rule and you later clear that rule's Active tick, the formula does not quietly switch to the salon default â it stops charging altogether. Any line already on the open draft is removed and the formula returns to
pending. Re-tick Active, or point the formula at a different rule, to bring the charge back.
Two rule types â how the threshold applies
Conditions 2 and 5 hide a subtlety. Only the Overage only rule type uses Colour grams included in service price as a deductible, and that rule type requires the threshold to be set â without it, nothing is charged. A Full usage rule ignores the threshold entirely and qualifies every gram, so it bills even on a colour service that has no included-grams value. See Tutorial 20.2 for the rule-type comparison.
The threshold is the service's included grams, not the formula's target total. A 75 g formula on a service that includes 60 g bills 15 g of overage, whatever the target says.
Step 2: The lifecycle â where the charge lives
Every finalised formula has a projection_status â a label for where its overage charge lives right now:
| Status | Meaning |
|---|---|
unfinalised |
Formula hasn't been finalised; no charge yet |
pending |
Finalised, but the appointment has no draft transaction yet. The charge will "land" on the next draft created for this appointment |
in_draft |
Charge is an emerald line item on the appointment's current draft |
committed |
Charge is on a non-draft (pending / completed / refunded) transaction. Formula becomes read-only |
The status informs whether the formula can still be edited or reverted.
You don't have to read the status name to see this. Open a finalised formula and the dialog tells you where its charge is: while it's pending it prints "Charge will appear on the next transaction for this appointment." under the totals.
Step 3: Watch the status change as you work
A typical flow:
Formula created, plan saved â unfinalised
Mixed and finalised â pending (no draft yet) OR in_draft (draft exists)
Customer reaches the till â receptionist creates draft â formula transitions to in_draft
Receptionist hits Complete â formula transitions to committed
The receptionist sees the emerald Extra colour used line in the cart while the transaction is in_draft; it locks once completed.
Step 4: Editing while the draft is open
While the formula is in_draft, the way you change the charge is to change the formula, not the line on the till:
- The stylist can open the formula â the button on the Colour Formulas panel reads View once a formula is finalised â and click Revert. Stock returns, the overage line disappears, and the formula reopens in mixing mode so the actuals can be corrected. The confirmation dialog spells all three out: "This will unlock the formula for editing, return the stock that was marked as used, and remove any overage charge from a draft transaction."
- The stylist can re-finalise with different actuals â the line rebuilds with the new amount and a fresh rule snapshot.
The overage line on a draft is system-managed. It belongs to the formula and the charge rule, not to the till operator, and the till reflects that: the line carries a padlock where other lines have a trash icon, it has no quantity stepper, and its price can't be edited. Hovering the padlock explains why â "Colour overage is calculated from the weighed formulas and cannot be edited here".
- You can't edit the line's price at the till. The amount shown is always the formula's calculated charge. To change what's charged, change the formula (Revert and re-mix, or re-finalise with corrected actuals).
- You can't delete the line at the till either. The charge is owed for as long as the formula is finalised. To remove it for good, Revert the formula or make the rule produce no charge (see the FAQ). Abandoning the draft only defers it â see below.
If you abandon a draft that carried an overage line, the charge isn't lost â the formula drops back to
pendingand the line re-applies to the next transaction created for that appointment. The till says so as it discards the draft: "Draft discarded. Any colour overage will re-apply to the next transaction for this appointment."
Revert the formula vs trying to delete the line
| Action | Stock | Overage line | Formula state |
|---|---|---|---|
| Revert the formula | Returned in full | Removed | Reopens for mixing â actuals editable again |
| Re-finalise with new actuals | Re-decremented to the new usage | Rebuilds at the new amount, fresh snapshot | Stays finalised |
| Edit / delete the line on the draft | Untouched | Not possible â the line is padlocked | Unchanged â the line is system-managed |
Use Revert when the actuals were wrong. The formula is the source of truth until the transaction is completed, which is exactly why the till doesn't offer a way to overrule it.
Step 5: Completion locks everything
When the transaction is completed (or even left as pending, partly paid):
- Formula
projection_statusbecomescommitted - Formula
can_editbecomesfalseâ unfinalise and edit are refused - Revert disappears from the formula dialog
- The overage line's
rule_snapshot(the rule's name, markup type and markup value as they stood the last time the charge was calculated) is frozen â future changes to charge rules do NOT change historical charges - Stock decrements are now permanent
Step 6: Refund or modify to change a committed charge
Need to change a committed formula? You can't edit the formula any more â go through the transaction. Both paths need the refund-transactions permission, so they are open to Owner, Admin, Manager and Receptionist. Staff hold neither button.
- Edit (modify) â only available the same day the transaction was completed (the salon's business day, not UTC). You can edit the other lines on the transaction (services, products, tip, discount) and save â the transaction stays completed; this is an in-place edit, not a return to draft. The colour overage line itself is system-managed here too: just like on a draft, it is preserved exactly as committed when you save an edit. Changing its price or deleting it on the edit screen will not stick. Edit is also withheld from a combined checkout, where one payment was split across several customers' sales â correct those through Refund.
- Refund â the only way to change what was charged for the overage itself. It reverses the transaction; the formula stays
committedagainst the refunded transaction, so the audit record persists. To then re-bill the customer at the right amount, create a fresh transaction; if the formula itself needs different actuals first, see the note below.
Re-pricing a committed formula completely
The cleanest path when a finalised formula itself needs to change after the bill is paid is: refund the original transaction â create a new draft for the appointment â Revert and re-finalise the formula so the new charge stages onto the new draft. The original transaction stays in the audit log as refunded. Bulk re-pricing is intentionally not supported â see "Can I bulk re-price old formulas?" below.
See Tutorial 8.2 for the full refund / modify flow.
Worked example: edit a formula after finalise
This example uses a deliberately simple illustrative rule â Overage only, Per-gram rate at ÂŖ0.20/g, no minimums â so the arithmetic is easy to follow. Your salon's shipped default rule is different (see the box below it).
- Formula finalised: actuals 75g, threshold 60g â 15g overage â ÂŖ3.00 charge â
pending(no draft yet) - Receptionist creates the draft transaction â formula moves to
in_draft, emerald ÂŖ3.00 line appears - Colourist realises they miscounted one bowl â clicks Revert, corrects actuals to 68g, re-finalises
- Line rebuilds: 8g overage â ÂŖ1.60 â
in_draft - Receptionist completes the transaction â formula moves to
committed, line locks at ÂŖ1.60
What the shipped default rule actually charges
A fresh salon comes seeded with one default rule, named Default â charge overage at 2Ã cost: Overage only, Percentage of cost at 200% (i.e. 2Ã the cost of the over-threshold product), with a ÂŖ1.00 Minimum charge and a 5g Minimum overage. That rule prices on the cost of the extra grams, not a flat per-gram rate, so the numbers above won't match it gram-for-gram.
Worked against the same 15g overage: a tube costing ÂŖ3.50 for 60g works out at about ÂŖ0.058 a gram, so 15g of product costs ÂŖ0.88, and 200% of that is ÂŖ1.75. That clears the ÂŖ1.00 minimum charge, so the line stages. Tutorial 20.2 covers tailoring the rule to your salon.
Worked example: customer pushes back after completion
Needs the refund-transactions permission â Owner, Admin, Manager or Receptionist.
- Transaction completed earlier today with a ÂŖ6.00 overage line
- Customer pushes back: "I only agreed to a ÂŖ4.00 add-on"
- The overage line is system-managed everywhere â on a draft and on a completed transaction's edit screen â so its price cannot simply be typed over
- The manager refunds the transaction (Tutorial 8.2), then re-bills the customer on a fresh transaction at the agreed amount
- The refunded transaction stays in the audit log; the formula stays
committedagainst it
If instead the formula itself was wrong (different products, very different grams), refund the transaction outright, recreate a draft for the appointment, then Revert and re-finalise the formula. The new charge stages cleanly onto the new draft.
Common Pitfalls
"No overage line appeared"
Walk through the five conditions in Step 1 in order. Nine times out of ten it's condition 2 (an Overage-only rule on a service with no Colour grams included in service price) or condition 5 (the calculated charge is below the rule's Minimum overage or Minimum charge).
"The overage line has a beaker icon and emerald colour â is that deliberate?"
Yes. The Extra colour used line uses a distinctive emerald row and beaker icon so receptionists and customers can tell it apart from regular services and products.
"I changed the overage line's price on the till and it changed back"
That's expected â on a draft and on a completed transaction's edit screen. The line is system-managed: the saved transaction always reflects the formula's committed charge. To change the amount before completion, change the formula (Revert and re-mix, or re-finalise). After completion, refund and re-bill â see Step 6.
"A stylist changed the formula after the customer paid"
They shouldn't be able to â a committed formula is read-only. If it happened somehow, report it to support. The audit log will still show what changed.
"Our rule changed but old charges are different"
Correct â each formula snapshots the rule at the moment its charge was last calculated. Historical charges are frozen on purpose so your audit trail is accurate.
"Can I bulk re-price old formulas?"
No. Refunding and re-billing each transaction individually is the only path. This is deliberate â automatic bulk re-pricing would rewrite customer receipts.
Tips and Best Practices
- Train receptionists on the four statuses â
unfinalised/pending/in_draft/committedare the mental model, not implementation detail. - Complete transactions same-day where possible â leaving formulas
pendingtoo long creates gaps in stock visibility, and same-day is the only window for in-place edits to the rest of the transaction. - Fix the formula, not the till line â the overage line is system-managed on drafts and completed-transaction edits alike; Revert and re-mix (or re-finalise) is how you change it before completion, refund + re-bill after. Hand-editing the line won't stick.
- Audit quarterly â spot-check a handful of
committedformulas against the POS lines to confirm the numbers tie out. The Additional Colour Billed Detail table on the Colour Bar Performance report lists every committed overage charge with the rule that priced it, so start there (Tutorial 8.6). - Price rules conservatively â a higher Minimum charge and Minimum overage reduces ticket disputes for tiny amounts.
Related Tutorials
- Tutorial 2.4: Processing Transactions â the receptionist's view of the overage line in POS
- Tutorial 7.1: Creating and Managing Your Service Menu â set Colour grams included in service price
- Tutorial 8.1: Understanding Transactions and Payment Status â the
colour_overagepolymorphic item type - Tutorial 8.2: Handling Refunds and Cancellations â how modify / refund handles committed transactions
- Tutorial 8.6: Colour Bar Performance Report â the Additional Colour Billed Detail table of every committed overage charge
- Tutorial 20.2: Configuring Colour Settings & Charge Rules â the rule engine behind the charge
- Tutorial 20.6: Creating a Colour Formula â where finalise happens
Frequently Asked Questions
What if the rule's Minimum charge is higher than the calculated overage?
No charge is staged. Minimum charge acts as a floor for whether to bill at all, not a guaranteed minimum bill â if the calculated amount comes in below it, the system skips the line entirely. Set this low (or to zero) if you'd rather always bill the calculated amount, however small.
What if the customer exceeds the threshold but the rule's minimum overage isn't met?
No charge is staged. A 2g overage against a rule with a 5g Minimum overage simply doesn't trigger.
Can I pause overage billing without leaving Full mode?
Yes â clear the Active tick on every charge rule. Without an active rule, no charge can be staged. Note that a rule which calculates to ÂŖ0 produces no line at all (not a ÂŖ0 audit line), so you can't use a zero-value rule to keep an audit trail without a cost â deactivating is the clean way to pause.
Does the overage line count toward commission?
That's determined by your commission configuration (Tutorial 4.4), not by this system. Check how commission is configured against the colour_overage item type.
Are overage charges VATable?
Yes. Every overage line is taxable and carries the salon's own tax rate â the cart shows it as a VAT 20% chip on the line, using whatever rate and label your salon is set to. There's no per-line exemption for it, so confirm with your accountant that this suits your jurisdiction.
Last Updated: August 2026