Performance pay: plans, spiffs, splits and approving pay

Set up pay plans with commissions, spiffs, flat rates, bonuses and guarantees, put people on them, split credit on jobs, answer pay questions and approve each pay period.

  • Owner
  • Admin
  • Accounting
Updated October 15, 2026
Where it lived in ServiceTitan
Payroll › Performance Pay / Payroll Adjustments
On this page

Overview#

Performance Pay (/perf-pay, under Accounting › Payroll › Performance Pay) builds each person's commissions, spiffs, flat rates, bonuses and guarantees live from what they sell, finish and collect. Every pay line names the rule behind it, so a technician can see why they were paid. When a pay period ends, a manager approves it: approval freezes the pay and sends it into the payroll export on Timesheets. Technicians see their own pay in My pay in the field app and can raise a question on any line.

Before you start#

  • See everyone's pay, plans and approvals (perfpay.read): Owner, Admin and Accounting. Accounting sees everything read only: edit controls are hidden.

  • Change plans, assign people, add adjustments, split jobs, approve, reopen and answer questions (perfpay.manage): Owner and Admin.

  • See your own pay (perfpay.own, in the field app): Technician, Dispatcher, Customer service and Accounting.

  • Pay periods follow Settings › People › Payroll (Pay period: Weekly or Every two weeks, and A day that starts a pay period).

  • Gross-profit commissions need item costs in the pricebook.

Steps#

1. Create a pay plan#

  1. Go to Performance Pay and click Pay plans.

  2. Under New plan, enter a Name (for example "Service tech 2026").

  3. Optionally enter Hourly rate shown in My pay ($, optional). Leave it empty for commission-only, or when payroll pays from its own rate.

  4. Set Effective from.

  5. Pick a Guarantee: None, At least $/h worked or At least $ per period, and enter the Guarantee amount ($).

  6. Click Create plan, then open the plan to add rules.

2. Add rules to the plan#

On the plan's page, use Add a rule. Fill in what applies to the kind you pick; the rest is ignored.

  1. Kind: Commission, Spiff, Flat rate per task or Period bonus.

  2. Name (shown to the technician), for example "Better option sold".

  3. Effective from: the day the rule starts. Earlier pay keeps the rules that applied then.

  4. Pays: The seller (sold-by) or Technicians on the job.

  5. Earned: When sold, When the job is completed or As it's collected.

  6. For commission: Commission on (Revenue (before tax) or Gross profit (price − cost)), Commission rate (%) and optional Tiers ($ from : %), for example 20000:6, 50000:8. When the rule's period total reaches a tier, that rate applies to the whole period.

  7. For spiffs, flat rates and bonuses: Amount ($). For spiffs, also Spiff counts (Per unit or Per line) and Spiff on (Pricebook items or Memberships sold). For a bonus, the Bonus threshold ($ in the period).

  8. Narrow the rule if needed: Job types, Business units, Membership types, Categories, Pricebook item codes and Item kinds (service, material, equipment). Empty means everything.

  9. Click Add rule.

To retire a rule, pick a From date on it and click Remove. Change the plan's name, description, hourly rate or guarantee under Plan basics and click Save; each save is a new version from its Effective from date. Archive hides a plan from new assignments; Restore brings it back.

3. Preview a plan#

In Preview, pick a Person and Any day in the period, then click Preview. TradesWork runs the plan over that person's real sales, jobs, payments and time without saving anything, and shows the pay lines.

4. Put people on a plan#

  1. On Pay plans, use Put people on a plan.

  2. In Who, pick a role (for example "All technicians") or one person. A person's own plan wins over their role's.

  3. Pick the Plan (or No plan to take them off) and the From date.

  4. Click Save assignment.

5. Split credit on a job#

  1. On Performance Pay, find Job split.

  2. Enter the Job number and pick Credit: Technicians on the job or Seller (sold-by).

  3. Pick up to three people and their Share %. Shares must add up to 100%.

  4. Enter a Reason and click Save split. Leave every share empty to go back to the default.

By default, technicians on a shared job split evenly, or by time on the job (see pay settings).

6. Review and approve a pay period#

  1. Performance Pay opens on the current period. Use the arrows or Current period to move between periods.

  2. The People table shows each person's Plan, Status (Pending, Approved, Sent to payroll), Commission, Spiffs, Bonus, Guarantee, Adjustments, Total and Flags, with a Period total.

  3. Flags: N not computable (gross-profit commission on lines with no cost), N late (earned in an already-approved period and carried here), N questions (open pay questions).

  4. Click a name to see their Pay lines (Day, Kind, Job, Why, Amount) and totals for Performance pay, Hourly (plan rate), Tips and Total.

  5. Once the period has ended, tick people and click Approve selected, or click Approve on a person's page. Approved pay is frozen.

  6. Payroll then sends it: on Timesheets, Mark period as sent to payroll locks it as Sent to payroll.

7. Add an adjustment or reopen a period#

  • On a person's page, under Adjustments, pick Type (Add pay or Deduct), Amount ($), Day, optional Job number and a Reason (the technician sees it), then click Add adjustment. Adjustments are never edited or deleted: Reverse adds a reversal line.

  • To change an approved period, enter a reason under Reopen and click Reopen. If it was already sent to payroll, fix it in your payroll system too.

8. Answer pay questions#

Technicians raise questions from My pay in the field app. They appear under Pay questions on Performance Pay and on the person's page, and as a task for the owner. Type an answer in Answer (the technician sees it) and click Answer and close.

9. Check pay as a share of revenue#

Open Reports › All Reports › Technician pay › Performance pay % of revenue (also linked at the bottom of Pay plans). It divides performance pay on invoiced jobs by their revenue. Filter by Technician or Business unit.

Settings that change this#

  • Pay settings on Pay plans (owner and admin): Clawback window (days) (refunds, voids and cancellations inside it take the pay back; 0 = never), Technicians' split on shared jobs (Evenly or By time on the job), Payday (days after the period ends) and a Payroll earning code for Commission, Spiffs, Bonus, Guarantee top-up and Pay adjustment (defaults COMM, SPIFF, BONUS, GUAR, ADJ). Click Save settings.

  • Settings › People › Payroll: pay period length and start day.

Tips#

  • Use Preview before changing a plan's rates so nobody is surprised.

  • Date plan changes from the start of a pay period to keep periods clean.

  • Pay amounts never appear in office tasks. Pay questions only say a question exists.

Troubleshooting#

  • "Nobody is on a pay plan." Assign a plan to a role or person.

  • Approve isn't shown. The period hasn't ended yet, or it's already approved.

  • A line says "Not paid yet". It is earned as collected and the payment hasn't come in.

  • "Not computable" flag. Add costs to those pricebook items.

  • A refund took pay back. It happened within the clawback window.

  • Accounting can't approve. Only owners and admins can.

FAQ#

Does this replace payroll? No. It works out performance pay and sends approved amounts, with earning codes, into the payroll export on Timesheets.

What happens to money earned after a period was approved? It lands in the next open period, marked Late.

Can technicians see each other's pay? No. Each person sees only their own pay in My pay.

Coming from ServiceTitan#

ServiceTitan's performance pay and payroll adjustments map closely: commissions on sold or completed work, spiffs on items, splits and adjustments. In TradesWork, plans are versioned by effective date, every pay line names its rule, and approval freezes the period before it goes to payroll. Technicians see and question their pay from the field app.

Was this helpful?

Still need help?

Ask the assistant a question about your account, or open a ticket and a person will reply.