Staff sales commissions reward the employee who brought in a sale — the therapist whose regular booked a package, the agent who closed a bulk order, the trainer whose client bought a membership. The system never guesses who that was: each sale is linked to one staff referrer by a person, a manager approves the link, and payroll pays the approved commissions as a Performance Bonus line on the payslip.
Find it under HR & Payroll → Commissions. Two capabilities control it (Settings → Roles): Manage Commission Program (set rates and rules, link sales) and Approve Staff Commissions (approve or reject links). Roles that already manage or approve payroll received them automatically; owners have both.
Setting up the program
Open Program settings on the Commissions page for the store-wide switches:
- Program is active — nothing can be linked until this is on.
- Minimum sale total — sales below it earn nothing.
- Schedule — optional start and end; links can only be made while the program is active and inside the window.
- Who can write the link — whether the POS shows a "Referred by" picker at checkout, whether employees may claim receipts themselves, and whether a link made by an approver is approved on the spot.
Commission types
The rates live in commission types, and a store can have as many as it likes. Each type has three parts:
- Rate — a percent of the line (of the line net of discounts and tax — on tax-inclusive pricing the VAT inside the price is taken out first; or of its share of the sale total, tax included), a fixed amount per unit sold, or a fixed amount once per sale.
- Applies to — all items, or tick specific products or categories from a checklist (type to filter it). The product list only shows active items that are sold at the POS or published on the webstore, so archived and hidden items never clutter it.
- Customer condition — who the sale is to:
- Any sale.
- Customer's first purchase at this store.
- New member — the customer's first membership here.
- Win-back — a lapsed member signs up again; their last membership ended at least N days before (you set N, default 30).
- Renewal — a member whose membership is still running, or ended fewer than N days ago, signs up again.
What counts as a membership. If your store has ticked tracked subscription products on the Subscriptions report (Reports → Subscriptions → Choose tracked products), only those products count — on both sides. A customer who has only ever held an access-only pass (a parents pass, a coach pass, a PT pack) is still a new member the day they buy a real membership, and a ₱0 pass or any free sale does not make them an existing customer for first purchase. With no tracked products chosen, every subscription product counts, as before.
Typical set-up for a gym: PT sales 5% on the Personal Training category · New member sign-up 30% on membership products, condition New member · Win-back 15% on membership products, condition Win-back (30 days) · Renewal ₱100 per sale on membership products, condition Renewal.
When a sale is linked, every line is matched to the first type that fits it, in order of the type's priority number (lower wins). A line no type covers earns nothing, and a sale where nothing matches cannot be linked at all unless an approver forces a type. The link records which types earned (for example "New member sign-up 30%; PT sales 5%") and it shows in the ledger, on the order page and on the employee's own page. Any order discount is spread across the lines in proportion.
Types can be paused (kept but not applied) or removed; sales already linked keep what they earned. An approver can force a type on a sale when linking it or when approving — useful for the odd case the rules do not capture.
Per-session commissions (trainers and coaches)
A session pack (for example a 10-session PT pack) is paid for up front but delivered over weeks, often by a different person than the one who sold it. A commission type can therefore be earned when a session is used instead of when the item is sold:
- Create a commission type and set Earned to When a session is used (check-in).
- Pick the rate: a fixed amount per session (for example ₱150), or a percentage of the session's value. The session's value is what the pack sold for, net of discounts and tax, divided by the number of sessions in it — a ₱5,600 tax-inclusive 10-session pack is worth ₱500 a session, so 10% pays ₱50. A pack sold inside a bundle is valued at its share of the bundle line. A percentage needs the pack's sale: a pack assigned to a member without a sale is paid by a fixed-per-session type that covers it. Changing the trainer keeps the amount it was earned at.
- Choose which packs it applies to (all items, chosen products, or categories). Customer conditions do not apply: a session is earned by delivering it.
The person paid is whoever is set as Delivered by on the check-in. It defaults to the class's trainer (Classes → edit a class → Default trainer) and can be changed at the desk for each visit. A visit with no trainer earns nothing. Only visits that actually use a session count — monthly or unlimited memberships and open classes never do.
A type only pays sessions delivered while it is active — adding a type later does not back-pay earlier visits.
Session commissions are approved on the spot, because the check-in is the evidence. Turn off Approve session commissions on the spot in Program settings to review every one. A session always waits for an approver when the desk person names themselves as the trainer, when the visit was back-dated, or when it was let in through Allow anyway. The ledger and the employee's page show each one as Session · member · date · class, and payroll pays them with the sales commissions as Performance Bonus (the payslip reads, for example, “Commissions: 2 referred sales · 10 sessions delivered”).
Until payroll picks it up, an approver can Reject any session commission except their own (with a reason) or Change trainer to credit it to the person who really delivered it — from the ledger on this page or from the pack's order page. It cannot be removed, and the member should not be checked in again to fix it (that uses up another session). Refunding the pack later does not take back sessions already delivered; it only reverses the referrer's commission on the sale. Use your own referral types alongside: a small commission to whoever sold the pack, and a per-session one to the trainer.
A visit saved with no trainer can be credited afterwards. In the attendance report, and in a member’s visit history, a visit that used a session but has no commission shows a Set trainer button (Credit session when the trainer is already named but nothing was earned — for example the per-session type was added later). Pick the trainer and, if you like, a note. The visit’s Delivered by is updated and the session commission is created at the amount a check-in would have earned, so the store needs an active per-session type that covers the pack. Only visits from the last 45 days qualify, you cannot name yourself, and a visit that already has a commission is changed with Change trainer instead. A commission set this way always waits for approval, carries a Set after the visit badge, and whoever set it cannot be the one who approves it. Setting the trainer is written to the audit log on both the visit and the commission.
A session used from the subscription page in the back office (Use session) has no check-in and no trainer, so it earns no session commission.
Linking a sale to a staff member
The cashier who rang the sale is not treated as the referrer. The link has to be written by someone, in one of three ways:
- At the POS (app 2.49 and later) — checkout shows a Referred by picker when the program is on. It defaults to No referrer.
- By the employee — from My Workplace → Commissions → Claim a receipt, using the receipt number, with a note for the manager. See the employee guide.
- By a manager — the Link a sale page (the button on the Commissions page, or HR & Payroll → Commissions → Link a sale). It lists recent sales newest first — the last 7 days by default — with the items sold, customer, cashier, total and whether a referrer is already linked. Filter by date range (with Today / Last 7 days / This month / Last month shortcuts), by link state (not linked yet, pending, approved), by who rang it up, or search by receipt number, customer name, phone, cashier or item name. Pick the staff member on the row, optionally force a commission type, add a note and press Link; the icon opens the full transaction in a new tab. The Staff Referrer card on the order page under Orders does the same for one sale.
Only one staff member can be linked to a sale. A pending link can be re-pointed by the person who filed it or by an approver; a decided link can only be changed by an approver, and never once it has been paid.
Approval
Every link starts as Pending approval and appears in the Awaiting approval list on the Commissions page (and on the order page card). An approver can Approve or Reject with a reason the employee will see. Nobody can approve or reject their own commission — an approver who links themselves still waits for someone else. When "approver links are approved on the spot" is on, links a manager makes for other people skip the queue.
Approval recomputes the commission from the sale as it stands at that moment, so edits to the order are reflected.
Each pending row shows the customer's history next to the name — for example New customer · no prior membership · not counted: Karate Parent Pass or Returning customer · last membership ended 45 days ago — so you can see why a type did or did not apply. When a cashier's pick at the POS or an employee's own claim matches no type automatically, it is still kept in the queue, marked No type matched, with no amount: pick the commission type on the row and approve, or reject it. A manager linking from the back office is told why nothing matched and can force a type on the spot.
The sale has to settle first
A commission is only payable once the sale is final: a POS sale the moment it is rung up, an online or delivery order when it is completed or delivered. Until then the ledger shows Order in progress. If the sale is cancelled, voided or refunded, the commission is reversed automatically and never paid; if the order is un-cancelled it comes back.
Adding a commission by hand
Some commissions do not come from a POS sale or a check-in: a weekend workshop, a month of coaching agreed with a trainer, a corporate deal closed outside the register. On HR → Commissions, click Add commission and fill in:
- Staff member — employees and freelancers both appear (freelancers are marked).
- Date earned — today or earlier, never before the program's start date. Payroll and payouts pick it up by this date.
- Amount — the fixed amount to pay, up to ₱1,000,000.
- What it is for — shown to the staff member and on the ledger.
- Receipt number (optional) — links the entry to a sale for reference. The customer is copied from that sale, and the entry appears on the order page under Commissions added by hand. A later refund of that sale does not undo the commission.
- Check-in (optional) — pick the visit this pay is for (a make-up session, a double class). The list shows that day’s allowed check-ins, the staff member’s own sessions first; a visit that already has an entry for them is greyed out. The date earned must be the day of the check-in, and the customer is taken from it.
You need Manage Commissions or Approve Commissions. A commission added by hand always needs a second person: whoever adds it cannot approve it, and it waits in the pending queue (“Needs a second approver”) until another approver confirms it. The one exception is the store owner, whose entries for other people are approved on the spot when Approver links is set to approve on the spot — in a one-person store there is nobody else to ask. Nobody can approve a commission paid to themselves. The program switch being off does not block entries added by hand.
Under Program settings → Commissions added by hand you choose what an entry needs: Anything with a description (the default), Must name a receipt or a check-in (the receipt has to be a live sale), or Turned off: no new commissions added by hand. Turning it off hides the button; entries already added can still be approved, adjusted and paid. Every change of this setting is written to the audit log.
From there it is paid like the rest: an employee's on the next payroll run as part of the Performance Bonus (the payslip note counts it as “other commissions”), a freelancer's through Freelancer payouts with withholding tax. Entries added by hand show a Manual badge. They cannot be removed: Reject one that was a mistake, and add a new one if it should be paid after all.
Adjusting a commission's amount
When the computed figure is not what was agreed — a discount the rules did not foresee, a half session, a negotiated rate — an approver can set the amount directly. Click the pencil (Adjust amount) on the commission in the pending queue or the ledger, or use the adjust form on the order page, enter the new amount and a reason. The reason is shown to the staff member, who is notified if the commission is already approved.
- The original figure is kept and shown next to the new one (“was ₱800.00 · reason”); hover it to see who changed it and when.
- Later recalculations — approving, a sale settling, a commission-type recompute, changing the trainer or the staff member — keep the amount you entered. If the commission is moved to the approver who set the amount, the adjustment is dropped, so nobody earns a figure they chose themselves.
- Remove the adjustment recomputes a sale or session commission from the commission rules again, and puts a commission added by hand back to the amount first entered.
- Raising an approved commission — of any kind — sends it back for approval, and the person who raised it cannot be the one who approves it (the store owner excepted). Lowering needs no second look. If the amount changes while an approver has the page open, the approval is refused and they are asked to reload, so nobody ever approves a figure they did not see.
- Only unpaid commissions can be adjusted, and never your own. One that sits in a draft payroll run needs the run recomputed (or the draft deleted) first; one in a draft freelancer payout needs the draft discarded first. To pay nothing, reject the commission instead of setting it to zero.
Payout through payroll
When you compute a payroll run, every commission that is approved, whose sale has settled, and that has not been paid yet (dated on or before the period end) is added to the employee's item as Performance Bonus — a column on the run, a line on the payslip and in the CSV export. A commission approved after a run was computed simply lands on the next cutoff.
- The Commissions page shows the amounts Ready for payroll and In draft payroll.
- Recompute a draft and the commissions are picked up again; Void a draft or Reverse an approved run and they go back to unpaid for the next run.
- Approving the run marks them paid.
- The bonus is part of gross pay. It is not part of basic pay, so it does not enter the 13th-month computation.
- Employees with no pay rate but approved commissions still get a payslip for the bonus, as long as they are on the run's payroll schedule. With no salary, SSS and PhilHealth are still deducted at their minimum shares, so a small commission can leave a negative net pay — give such staff a pay rate, or untick SSS / PhilHealth / Pag-IBIG on their profile if they are not covered through you.
Employees and freelancers: how commissions are taxed
Commissions are paid to two kinds of people, and the tax rules differ. The system follows the Employment type on each person's staff profile (Staff → Edit).
Employees
For anyone whose employment type is not Freelance, commissions are compensation. They stay on payroll as the Performance Bonus line and, since this release, are included in the withholding tax for that payroll period: the period's commission is added to the regular taxable pay before the withholding table is applied. The payroll detail shows “incl. tax on this period's commissions” under W/Tax when this happened. The tax then flows into the BIR 1601-C like any other compensation tax. For a minimum wage earner the wage itself stays exempt: only commissions and taxable allowances are taxed. SSS, PhilHealth and Pag-IBIG are still based on the regular salary, not on commissions.
A one-off commission is taxed as if the same amount recurred every period, which can withhold more than the year's final tax. That difference is settled in the year-end annualization, which the system does not prepare yet.
Freelancers
Set a coach or agent who is not your employee to Employment type: Freelance on their staff profile. Their commissions are then never picked up by payroll. They are paid as professional fees from HR → Commissions → Freelancer payouts, with expanded withholding tax deducted at the store default or the payee's own ATC and rate, a journal entry per payment, a quarter view for the 1601-EQ and a printable BIR Form 2307 per payee. The full walkthrough is in Freelancer payouts: paying commissions as professional fees.
Payroll and payouts never pay the same commission twice: a commission is either on a payslip or in a payout, and the ledger says which (“In draft payout”, “Paid as professional fee · EWT · net”). Nobody can pay, change or void their own payout. A freelancer who also has a salary or hourly rate still receives that pay through payroll; only their commissions move to payouts, and the 1601-C page warns you when a freelancer appears on a payroll run.
Paid, then refunded
If a sale is refunded after its commission was paid, the link is marked reversed but stays paid, and the Commissions page flags it as Clawback due (the "Paid, then reversed" tile). Recover it on the next payroll with an Other deduction on that employee's item.
The ledger
The ledger shows under each decision who approved or rejected and on what date, and under Paid the date and the payroll run that carried it (click to open the run; In draft payroll names the run too). Employees are told by Telegram or email when a commission is approved, rejected or paid, following the store's payroll payment notifications setting under HR → Settings. Both the Awaiting approval list and the ledger show the customer next to the receipt (Walk-in when the sale had none). Click the name to open Contacts already searched for that person — the search matches every word you type in any order, so a full name, "surname first-name" or part of each word all find them. Filter by approval, sale state, payout, staff and date; the By staff panel totals what each person has earned and been paid. Every link, approval, rejection and removal is written to the audit log with who did it.