
In a service business a technician most often gets a percentage of what they did. It sounds simple while there are two technicians — but when there are twenty technicians and five locations, each with its own rates, and orders are handed over in parts and sometimes come back, pay turns into a monthly reconciliation of spreadsheets and arguments of the “where's my repainting” kind. We go through how to set up the calculation so that it adds up on its own.
how technicians are usually paid
Three schemes are found at service locations:
- salary — a fixed amount per month or per shift. Simple to calculate, but the technician doesn't care how much they have done;
- a percentage of jobs (piecework) — the technician receives a share of the value of what they did themselves. It motivates, but requires exact records: who did what;
- mixed — a small guaranteed part plus a percentage.
This article is about a percentage of jobs: the most common and the most temperamental scheme. Temperamental because for each job you need to know three things: who did it, how much it cost and what percentage that person has for that job.
what a location rate is
A rate is the percentage (or rule) by which a technician is credited pay for a specific job.
In a network, rates are almost never the same everywhere. A location in the center of a big city has one rent and one market of technicians, a location in a residential area has others. A franchisee has their own terms. So a rate is not “a technician's rate in general” but a rate at this location. In ERP.Knopka pay is calculated by each location's rates.
And within a location, rates differ between people: an experienced restoration technician and a beginner on cleaning get different percentages for similar jobs.
a service rate and a category rate
If you set a rate for every service for every technician, you get a big table: 40 services × 10 technicians = 400 rates. Nobody does that in real life, so rates come at two levels:
- a service rate — exact: “color restoration — 30%”;
- a category rate — a fallback: “everything in the ‘repair’ category — 30%”.
The rule is simple: if there is a service rate, we take it; if not, we take the category rate. This way a new service in the price list doesn't go without an accrual just because it was forgotten in the rates table.
In ERP.Knopka rates are set for each employee separately — both per service and per category.
where output comes from
The most frequent mistake is to calculate pay from what the technician wrote in a notebook or said at the team meeting. Output should appear where the work appears — in the order.
If the order is managed by items and each item has a performer recorded (as set up in CRM for a cleaning shop: an order from intake to pickup), a technician's output is simply all the items where they are the performer, for the period.
This is how it works in knopka: the ERP receives orders, payments, refunds and technician output from the CRM and accrues pay by the rates. Nothing is entered a second time.
a calculation for a period, with illustrative numbers
Illustrative numbers. Technician Oleg, the “Shchyolkovo” location, rates: cleaning — 25%, restoration — 30%, repair — 30%.
| order | job | price | rate | accrued |
|---|---|---|---|---|
| #1172 | cleaning · suede | 3,800 ₽ | 25% | 950 ₽ |
| #1172 | water-repellent coating (category “cleaning”) | 1,800 ₽ | 25% | 450 ₽ |
| #1189 | color restoration | 4,200 ₽ | 30% | 1,260 ₽ |
| … | ||||
| total for the period | 21 jobs | 16,380 ₽ |
Note the second row: Oleg has no rate of his own for “water-repellent coating”, so the “cleaning” category rate applied. This is the fallback in action.
jobs without a rate: the main gap
What if a job has neither a service rate nor a category rate? For example, a new technician has joined a location and nobody remembered to set up their rates. In a spreadsheet such a job usually just drops out — and surfaces a month later in a conversation like “I was underpaid”.
The right behavior for a system is to show such a job immediately. In ERP.Knopka accruals without a rate are highlighted, and you can see which employees have no rates set up. The manager sets up a rate — the accrual appears.
A tip: once a week, look at the “no rate” list. If it is not empty, that is not a trifle, that is a future dispute.
refunds, discounts and other disputed points
There is no “right” answer here — there is your rule, which should be written down before the first dispute.
- discount. Is the percentage calculated from the price before or after the discount? If after, the technician shares the risk of the discount. If before, the location bears the whole discount. In ERP.Knopka the technician's percentage is calculated from the amount after the discount or before it — as the partner decides.
- refund. The client got their money back for a job — is the technician's accrual canceled? Partly? Decide this in advance and write it into the location's rule. ERP.Knopka receives refunds from the CRM together with orders and payments.
- rework. A different technician redid the job — who gets the accrual? Write down the rule: for example, the performer remains whoever closed the item.
- prepayment. Does the technician get paid when they did the job or when the client has paid in full? Choose one and don't change it mid-month.
The main thing is one rule for the whole location (and better, for the whole network), written down in the regulations and in the course for newcomers.
payouts: accrued, paid, balance
Accruing and paying out are different actions. A technician may receive part in the middle of the month and part at the end. If this isn't recorded, by the end of the period nobody remembers how much has already been paid.
How it works in ERP.Knopka:
- payout periods — accruals are collected by period and by each employee;
- the amount due for each employee;
- marking a payout — the ERP does not transfer money: you pay as usual and mark in the system that you paid in full or in part. The ERP keeps the balance due;
- export to Excel — for the accountant or for checking.
As a result, the answer to “how much do I still owe Oleg” is one figure on the screen, not an evening with a calculator.
how to move from a spreadsheet: five steps
- Put the price list into categories. Every service must have a category — otherwise the fallback rate won't work.
- Set up category rates for all technicians. This is the minimum that covers everything.
- Add service rates only where the percentage differs from the category.
- Agree on the disputed rules — discount, refund, rework, prepayment — and write them down.
- Calculate in parallel for the first month — both in the spreadsheet and in the system. Discrepancies will show where the rule didn't match real life. We did the same when we migrated data from another CRM: first a reconciliation of a control group, then trust in the number (how the data migration from another CRM went).
typical mistakes
- One percentage for everything. Easy to calculate, but a restoration technician and an express cleaning technician start getting paid the same for different complexity — and nobody wants to take the complex jobs.
- Rates in the location manager's head. The manager went on vacation — and nobody can recalculate the month's pay. Rates must live in the system, not in memory.
- A performer per order, not per item. If an order has three jobs by two technicians but one performer is recorded, the second technician is left without an accrual or gets paid for someone else's work.
- Rules change mid-month. A new rate from the middle of a period is a source of disputes. Change rates from the start of a period and warn people in advance.
- Accrued = paid. Without marking payouts, in two months it is impossible to say who is still owed how much.
- Reviewing mistakes once a month. Jobs without a rate and disputed accruals should be reviewed every week, while the amount is small.
frequently asked questions
can different technicians get different percentages for the same service?
Yes. Rates are set for each employee separately.
what to do if a technician has no rate for a new service?
Set up a category rate — it will apply to all services in the category that don't have their own rate. In ERP.Knopka jobs without a rate are highlighted immediately.
can rates differ between locations in the network?
Yes, in ERP.Knopka pay is calculated by each location's rates.
does the system transfer pay to technicians by itself?
No. The ERP does not transfer money — you mark the payout, and the system keeps the balance due.
is a CRM needed for this?
Yes: technician output comes into the ERP from the CRM — from order items where the performer is recorded.




