The five numbers that say whether this shop is having a good week. Everything below the tiles explains how they were arrived at. The week resets every Monday.
The booth is usually the real constraint. A panel shop can only push through as much work as the booth will cycle, so booth cycle sets the ceiling on everything else. Recovery tells you whether the hours you are paying for are turning into revenue; invoiced tells you whether that revenue is actually going out the door this week.
Thirteen weeks of the figures that actually move week to week. The benchmark tab shows where we stand against the industry once a year; this shows whether what we changed last month is working.
Why the benchmark ratios are not here: they come from a Xero P&L loaded as a single 12-month period, so they have exactly one data point each. Paint liquid cost and gross profit cannot be trended until we start banking the P&L monthly. These six come from daily job and labour data, which we have had all along. The current week is deliberately excluded — a part-finished week always looks like a collapse and people react to the shape before they read the axis.
This shop's actuals against budget. PPG suggested is PPG's proposed 2026-27 budget — a vendor suggestion for reference, not an adopted target, so it never flags a shop red. Your budget is the number we act on once it is set; status only lights up where a budget has been adopted.
The path to profit is the cost lines, not the door rate. Paint liquid cost, parts margin and non-chargeable wages are where the core-labour loss lives. Set a budget on these and this panel will track it; until then PPG's suggestion is a starting point to argue with, not a scoreboard.
| Measure | Now | Your budget | PPG suggested | Status |
|---|---|---|---|---|
| Gross profit $ / available hour | $103 | — | $96 | – |
| Paint liquid, % of paint sales | 28.0% | — | 20.7% | – |
| Gross profit % | — | — | 51.0% | – |
| Parts margin | — | — | 13.0% | – |
| Weekly chargeable hours | — | — | 338 | – |
| Trade | Billed $/hr | PPG breakeven | PPG stretch |
|---|---|---|---|
| Panel | $73 | $122 | $141 |
| Paint | $118 | $160 | $184 |
Everyone in this trade, ranked by how much sellable work they produced for each hour we paid them. The top three are highlighted.
How to read it: a quick worker with a big gap has a clocking or scheduling problem, not a skill problem — go and find the missing hours. Low efficiency with a small gap is the opposite: they are on the cars, the work is simply taking longer than the estimate allowed, which points at the estimate rather than the technician.
How to improve this
Recovery is sold hours divided by hours we paid you. It rises when more of your paid day turns into work that was sold, and that is mostly about the time between jobs, not how fast you work on them.
Watch for: Do not improve it by not clocking on. Efficiency will look better, recovery will not move, and the job costing everyone relies on breaks.
| Technician | Sold | Paid | Recovery | Effic. | Gap | |
|---|---|---|---|---|---|---|
| 1 | Kevin Louw | 197 | 178 | 111% | 123% | +12 |
| 2 | Amitesh Kumar | 115 | 115 | 100% | 135% | +35 |
| 3 | Anton Joiner | 444 | 442 | 100% | 117% | +16 |
| 4 | Troy Nielsen | 381 | 467 | 82% | 126% | +44 |
| 5 | Terrick De Lange | 310 | 387 | 80% | 101% | +21 |
| 6 | Tony Muller | 360 | 523 | 69% | 89% | +20 |
| 7 | Mark Daniels | 48 | 73 | 66% | 90% | +24 |
| 8 | Danny Krishna | 82 | 188 | 44% | 55% | +12 |
Everyone in this trade, ranked by how much sellable work they produced for each hour we paid them. The top three are highlighted.
How to read it: a quick worker with a big gap has a clocking or scheduling problem, not a skill problem — go and find the missing hours. Low efficiency with a small gap is the opposite: they are on the cars, the work is simply taking longer than the estimate allowed, which points at the estimate rather than the technician.
How to improve this
Recovery is sold hours divided by hours we paid you. It rises when more of your paid day turns into work that was sold, and that is mostly about the time between jobs, not how fast you work on them.
Watch for: Do not improve it by not clocking on. Efficiency will look better, recovery will not move, and the job costing everyone relies on breaks.
| Technician | Sold | Paid | Recovery | Effic. | Gap | |
|---|---|---|---|---|---|---|
| 1 | Jonathon Hollands | 458 | 479 | 96% | 111% | +15 |
| 2 | Jason McIntyre | 346 | 370 | 93% | 112% | +19 |
| 3 | Daniel Austin | 31 | 39 | 80% | 100% | +20 |
| 4 | Terrick De Lange | 100 | 127 | 79% | 103% | +24 |
| 5 | Mark Daniels | 265 | 397 | 67% | 88% | +22 |
| 6 | Damitha Don | 281 | 469 | 60% | 95% | +35 |
Every hour we paid this shop over the last 30 days, split by where it actually ended up. The bar on the right shows the same split as a picture, so a bad row stands out without reading the numbers.
Why unclocked is the one that matters: those hours are still paid, but the jobs done in them are costed as though the labour were free — so every future estimate built off that history is too cheap. Plenty of unclocked time is legitimate (training, clean-up, waiting on parts, moving cars). The goal is not zero, it is knowing how much there is and what it went on.
How to improve this
Where every paid hour went. Unclocked time is paid time that never reached a job, so nothing was sold against it.
Watch for: Chasing zero unclocked time makes people book to whatever is open, which is worse than an honest gap. Aim for explainable, not zero.
| Technician | Paid | Chargeable | Internal | Unclocked | Hrs /day |
Break min/day |
Skipped breaks |
Sick days |
Annual days |
|
|---|---|---|---|---|---|---|---|---|---|---|
| Damitha Don | 155 | 94 | – | 61 | 7.7 | 61 | 1 | 1 | 1 | |
| Troy Nielsen | 133 | 85 | – | 48 | 7.4 | 49 | 5 | 3 | - | |
| Mark Daniels | 149 | 111 | – | 38 | 7.8 | 65 | 1 | 2 | - | |
| Danny Krishna | 162 | 127 | – | 35 | 9.0 | 46 | 3 | 1 | - | |
| Tony Muller | 161 | 128 | – | 33 | 8.1 | 55 | 5 | 2 | 2 | |
| Terrick De Lange | 160 | 128 | – | 32 | 8.0 | 59 | 4 | 3 | - | |
| Jonathon Hollands | 152 | 122 | – | 30 | 8.4 | 52 | 5 | 3 | - | |
| Anton Joiner | 150 | 131 | – | 19 | 7.9 | 34 | 8 | 3 | - | |
| Jason McIntyre | 153 | 134 | – | 19 | 7.6 | 43 | 7 | - | 1 | |
| Amitesh Kumar | 57 | 44 | – | 13 | 7.1 | 59 | - | - | - |
Every job the shop is losing labour money on, worst first. Two different faults sit in one list, told apart by the Issue column, because they cost the same thing but need opposite fixes.
Work the red rows first. An unsold job is usually the easier money: the scoping is already done and only the authorisation is missing, so the estimate hours come straight back once it is chased. An under-sold job is the harder conversation — either the estimate was light and needs a supplementary while the car is still here, or the scope grew and nobody raised it. Both drag recovery down on every board and make the technicians look slow for work they did properly. Internal company projects are excluded; if one appears here it is missing from the internal-jobs list.
How to improve this
Open jobs where the labour is not being paid for. These are still fixable.
Watch for: Do not let these age. Once the job is fully invoiced it drops off this list because there is nothing left to claim.
| Issue | Job | Vehicle | Debtor | Sold | Actual | At risk | $ lost | Ratio | Est. hrs | Auth | Status | Last worked |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| under sold | 117769 | Toyota HIACE | IAG NZ ORM | 38.4 | 92.2 | 53.8 | $4,061 | 2.4x | 78.5 | 94/94 | Collected | 2026-08-11 |
| under sold | 118822 | Toyota RAV4 | Blair Wright Johnson | 22.8 | 52.9 | 30.1 | $2,429 | 2.3x | 56.3 | 121/126 | Started | 2026-08-20 |
| no time sold | 118243 | Mazda DEMIO | Tower Limited | 0.3 | 23.3 | 23.3 | $1,982 | n/a | 37.0 | 0/79 | Collected | 2026-07-07 |
| no time sold | 118711 | Audi Q7 | Tower Limited | 0.3 | 16.4 | 16.4 | $1,425 | n/a | 15.8 | 0/45 | Collected | 2026-08-13 |
| no time sold | 117873 | NISSAN SERENA | Tower Limited | 0.3 | 12.8 | 12.8 | $1,258 | n/a | 28.4 | 0/58 | Collected | 2026-08-17 |
| no time sold | 118185 | CHERY TIGGO 4 PRO | Tower Limited | 0.3 | 9.9 | 9.9 | $919 | n/a | 13.7 | 0/40 | Collected | 2026-07-24 |
| under sold | 118791 | Toyota AVENSIS | Tower Limited | 8.4 | 14.8 | 6.4 | $602 | 1.8x | 13.8 | 25/25 | Collected | 2026-08-14 |
| no time sold | 118440 | CHERY TIGGO 4 PRO | Tower Limited | 0.3 | 4.5 | 4.5 | $428 | n/a | 6.8 | 0/19 | Collected | 2026-07-24 |
What each technician's labour is worth to the business: the value of the hours they sold, less what we paid them. Labour only — no parts, paint or overhead — so this is not profit. It is the contribution their labour makes toward covering everything else. Panel beaters first, then painters, each ranked on Per hr rather than total margin.
Per hr is per hour PAID — not per hour sold or clocked — so unclocked and internal time pull it down. That is deliberate: we pay for those hours too. And because this is labour only, $75 an hour is not profit; it is what is left to cover parts, paint, rent, admin and everything else. Break-even is not $0 an hour, it is well above it. Before you judge a negative number: it is usually not the person. Someone put on an internal project, or stuck on a job that badly overran, shows negative because the sold hours never existed to be earned. Check the hours panel and the jobs-losing-money list first. Staff with no payroll record are left out entirely rather than shown as free labour. This panel is manager and owner only and never appears on the shop-floor screens.
How to improve this
What each technician's labour returns after their own wage.
Watch for: Never show this to the floor. It is the fastest way to turn a productivity conversation into a pay conversation.
| Technician | Trade | Wage hrs |
Unclk | Sold hrs |
Recov. | Per hr | Sick hrs |
Leave hrs |
|---|---|---|---|---|---|---|---|---|
| LOUW, Kevin Peter | Panel | 178 | 18 | 197 | 111% | $41 | - | - |
| KUMAR, Amitesh | Panel | 115 | 30 | 115 | 100% | $36 | - | - |
| JOINER, Anton | Panel | 442 | 56 | 444 | 100% | $25 | 32 | 64 |
| NIELSEN, Troy | Panel | 467 | 161 | 381 | 82% | $16 | 32 | 16 |
| MULLER, Antonie | Panel | 523 | 110 | 360 | 69% | $1 | 67 | 21 |
| KRISHNA, Danny Shalendra | Panel | 188 | 39 | 82 | 44% | $-14 | 24 | - |
| MCINTYRE, Jason | Paint | 370 | 61 | 346 | 93% | $71 | - | 8 |
| HOLLANDS, Jonathon | Paint | 479 | 65 | 458 | 96% | $66 | 53 | 8 |
| AUSTIN, Daniel | Paint | 39 | 8 | 31 | 80% | $56 | - | - |
| DANIELS, Mark | Paint | 470 | 113 | 313 | 67% | $36 | 8 | - |
| DON, Damitha | Paint | 469 | 172 | 281 | 60% | $29 | 48 | 48 |
| DE LANGE, Terrick | Paint | 514 | 102 | 410 | 80% | $23 | 48 | - |
| Total | 4,254 | 934 | 3,419 | 80% | $31 | 313 | 165 |