Blair Wright Hopper Street

Workshop performance
This week at a glance

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.

Invoiced this week
Value invoiced out of this shop since Monday, against the weekly revenue target. The bar fills toward that target.
Jobs out this week
Cars invoiced and finished this week, with today's count and throughput per paint booth per day.
Team recovery
Sold hours ÷ paid hours for every production technician here. 100% means every hour of wages produced an hour of sellable work. This is the number to manage on.
Team efficiency
Sold hours ÷ hours spent on finished work. Higher than recovery by definition; the gap between the two is time we paid for that never reached a car. Tasks earn their sold hours when they are marked complete, so work in progress is left out of both sides.
Average day
Average paid hours per technician per day worked — time on site less the unpaid half-hour at 1:30. This is the day the shop actually pays for.
Average break
Minutes on break per technician per day, both breaks together — 30 paid at 10am and 30 unpaid at 1:30pm, so 60 is the entitlement rather than a target to beat.
Booth cycle
Average hours of paint-booth time each job consumes out of an 8-hour day. Lower is better — 2.4 hours is the NZ industry average, meaning the booth turns over roughly three jobs a day.

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.

Invoiced this week
$20,016
no weekly target
Jobs out this week
4
0 today · 0.8 per booth/day
Team recovery
61%
34 sold / 56 paid
Team efficiency
98%
on 35 hrs of finished work
Average day
8.0 h
paid hours per tech per day
Average break
62 min
per tech per day · 60 min entitlement
Booth cycle
10.0 h
1 booth(s) · target 2.4 h

Weekly trend HS

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.

The line
One point per week, oldest left. The dashed line is the target where there is one — 100% recovery, the 3.9 industry booth rate, a 2.4 hour cycle.
The arrow
The most recent six or seven weeks against the earlier six or seven, so one odd week does not decide it. Green is the direction we want, which on unclocked time and booth cycle means down.
The number
The most recent completed week.
Scale
The vertical axis fits the data rather than starting at zero. A recovery line between 63 and 87 would be a flat smear against a zero baseline. Read the values, not the steepness.

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.

Panel beaterslast 90 days

Everyone in this trade, ranked by how much sellable work they produced for each hour we paid them. The top three are highlighted.

Technician
The person. Several people hold more than one iBodyshop login, so those are merged — nobody appears twice or shows half their hours.
Sold
Hours the estimate paid us for on the jobs they worked. This is earning time, not time on the clock: a job that sells 4 hours earns 4 sold hours whether it took 2 or 9.
Paid
Hours we actually paid them, from the roster. Includes the paid 30-minute morning break, because we pay for it; excludes the unpaid half-hour at 1:30, because we do not.
Recovery
Sold ÷ Paid. The honest one, and what the ranking uses. 100% means every hour we paid produced an hour of sellable work. It cannot be gamed — the bottom of the sum is the wage bill, which nobody on the floor controls.
Effic.
Sold ÷ hours spent on finished work. How fast they work when they are actually on a car. A job earns its sold hours when the task is marked complete, so time still sitting on unfinished tasks is left out of both sides rather than reading as slowness. It ignores time not clocked anywhere at all, so it flatters anyone who forgets to clock on.
Gap
Efficiency minus recovery. Small means nearly all their paid time reaches a job. A large blue gap means they work fast but hours are leaking somewhere that is not a car.

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.

  1. Clock on before you start and off when you stop, every time. Time not clocked to a job is invisible and counts against you.
  2. If you are waiting on parts, a decision or the booth, tell the foreman and clock onto something else. Waiting is the single biggest killer of this number and it is not your fault -- but it is your figure.
  3. Check your own row weekly. If efficiency is high but recovery is low, you are quick on the tools and losing time around them.
  4. Tell the estimator when a job took much longer than it sold. That is how the next estimate gets written properly.

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.

TechnicianSoldPaid RecoveryEffic.Gap
1Danny Krishna34239587%94%+8
2Amitesh Kumar27035177%126%+49
Ranked on recovery — sold hours per hour paid. Efficiency is sold per hour clocked on a job. A large positive gap means the work is good but time is going unclocked.

Painterslast 90 days

Everyone in this trade, ranked by how much sellable work they produced for each hour we paid them. The top three are highlighted.

Technician
The person. Several people hold more than one iBodyshop login, so those are merged — nobody appears twice or shows half their hours.
Sold
Hours the estimate paid us for on the jobs they worked. This is earning time, not time on the clock: a job that sells 4 hours earns 4 sold hours whether it took 2 or 9.
Paid
Hours we actually paid them, from the roster. Includes the paid 30-minute morning break, because we pay for it; excludes the unpaid half-hour at 1:30, because we do not.
Recovery
Sold ÷ Paid. The honest one, and what the ranking uses. 100% means every hour we paid produced an hour of sellable work. It cannot be gamed — the bottom of the sum is the wage bill, which nobody on the floor controls.
Effic.
Sold ÷ hours spent on finished work. How fast they work when they are actually on a car. A job earns its sold hours when the task is marked complete, so time still sitting on unfinished tasks is left out of both sides rather than reading as slowness. It ignores time not clocked anywhere at all, so it flatters anyone who forgets to clock on.
Gap
Efficiency minus recovery. Small means nearly all their paid time reaches a job. A large blue gap means they work fast but hours are leaking somewhere that is not a car.

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.

  1. Clock on before you start and off when you stop, every time. Time not clocked to a job is invisible and counts against you.
  2. If you are waiting on parts, a decision or the booth, tell the foreman and clock onto something else. Waiting is the single biggest killer of this number and it is not your fault -- but it is your figure.
  3. Check your own row weekly. If efficiency is high but recovery is low, you are quick on the tools and losing time around them.
  4. Tell the estimator when a job took much longer than it sold. That is how the next estimate gets written properly.

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.

TechnicianSoldPaid RecoveryEffic.Gap
1Daniel Austin11127241%82%+41
2Terrick De Lange62622%27%+5
Ranked on recovery — sold hours per hour paid. Efficiency is sold per hour clocked on a job. A large positive gap means the work is good but time is going unclocked.

Where the paid hours went last 30 days

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.

Technician
The person, with all their logins merged.
Paid
Total hours we paid them, from the roster.
Chargeable
Clocked onto a customer job, so the time is on an invoice.
Internal
Clocked onto a company project such as the Jaguar restoration. Real work — there is simply no customer paying for it.
Unclocked
Paid hours that never reached any job at all. Nobody recorded what happened during that time.
Hrs/day
Average paid hours per day worked — time on site less the unpaid lunch, so it is the day we actually pay for. Read it beside the columns either side: a long day with high unclocked time is very different from a short one.
Break
Average minutes on break per day worked, both breaks together — the paid half-hour at 10 and the unpaid half-hour at 1:30. The entitlement is 60. Amber flags either direction: well over 60 is time the floor is stopped, well under means someone is not taking a break they are owed.
Skipped
How many breaks were not taken at all over the period. The paid morning half-hour and the unpaid lunch count separately, so a day with neither scores two. Amber once it passes a fifth of the days worked, which is past the odd busy afternoon and into a habit.
Sick / Annual
Days of paid leave taken at this shop over the period. Neither affects any figure on this dashboard — a leave day creates no attendance record, so it never enters the hours we divide by and nobody is marked down for being away. It is here because a quarter with eight sick days is a different story from one without, and the numbers cannot show that on their own. Amber at five sick days or more.

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.

  1. Clock onto a job as soon as you touch it, including strip, clean-up and moving cars.
  2. If there is genuinely no job to be on, say so -- that is a scheduling problem to fix, not something to hide.
  3. Foreman: look at anyone over 25% unclocked and find out what they were doing. It is nearly always waiting or a task with nowhere to book it.
  4. If a real task has nowhere to book to, create the code. People cannot clock to something that does not exist.

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.

TechnicianPaidChargeable InternalUnclockedHrs
/day
Break
min/day
Skipped
breaks
Sick
days
Annual
days
Amitesh Kumar5228247.5601--
Daniel Austin3897227.560---
Danny Krishna1701618.656---
chargeable · internal project · never clocked. Unclocked hours are paid time that reached no job, so those jobs are costed on labour nobody recorded. Internal hours are excluded from recovery — a company project has no sold hours by design.

Labour contribution manager view only

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.

Technician / Trade
The person, and whether they are panel or paint.
Wage hrs
Hours we paid them, morning break included. Called wage hours rather than paid hours because that is what they are: the hours the wage bill covers.
Sold hrs
Sellable hours they produced over the same period.
Recov.
Sold hours divided by wage hours. This is the margin figure, expressed in hours. It says the same thing as a margin percentage — how much of what we pay for turns into sellable work — without putting money on a per-person row.
Sick / Leave (hrs)
Paid leave taken, in HOURS rather than dollars. Both still reduce the margin behind the scenes; showing the hours keeps the reason for a low margin visible without printing a wage figure.
Why there are no dollar totals per person
Wage cost, sold value and margin were removed from the rows on purpose (Blair, 21 Aug 2026). Together with Per hr they solved for someone's hourly rate exactly: sold value less margin, divided by their hours. With those gone the equation has no inputs left here. The dollar totals stay on the Total row, where they describe the shop rather than a person. Note: sold and paid hours are still published on the Staff panel, so a determined person with both panels can still approximate a rate — this makes it deliberate work, not a glance.
Sick / Leave and recovery
We pay for these hours, so they are in the money already: both are subtracted from margin, which means Per hr is what each WORKED hour returns after covering that person's leave as well. They are deliberately NOT in the Recovery column, because nobody can sell an hour while on leave and that column exists to compare people — adding leave would rank a technician on when they were sick. The figure that does include them is Business recovery in the note below, which is the one that sizes the wage bill.
Per hr
Margin ÷ hours paid. What each hour we pay them leaves behind once their own wage is covered. Example: $55,044 sold value less $19,410 of wages is $35,634 of margin; over 473 paid hours that is $75 an hour. Because it is a rate, a part-timer, a full-timer and someone who was off sick all compare fairly. Negative means every hour we paid them cost more than it earned.

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.

  1. Work Per hr, not Margin. Margin mostly measures who worked the most hours.
  2. Before judging a low figure, check Unclocked and Sick on the same row. The reason is usually there.
  3. A negative figure is almost never a poor worker -- it is an internal project, a badly under-sold job, or a long absence.
  4. Use it to size the team, not to rank people. It is wage data and it stays off the floor screens.

Watch for: Never show this to the floor. It is the fastest way to turn a productivity conversation into a pay conversation.

TechnicianTrade Wage
hrs
Unclk Sold
hrs
Recov.Per hr Sick
hrs
Leave
hrs
KUMAR, AmiteshPanel35112527077%$18--
KRISHNA, Danny ShalendraPanel3953334287%$17-48
AUSTIN, DanielPaint27213611141%$248-
DE LANGE, TerrickPaint265622%$-14--
Total 1,044 298 728 70% $13 48 48
Business recovery 63.9% — 728 sold hours against the 1,140 hours the wage bill actually covers, including the 48 sick and 48 leave hours we also pay for. The per-person Recovery column divides by worked hours only: nobody can sell an hour while on leave, and that column exists to compare people. This one exists to size the wage bill. Sold hours valued at the rates actually billed (paint $117.87/hr, panel $73.29/hr) less wage cost over attended hours. Covers labour only — no parts, paint or overhead. Staff with no payroll record are excluded rather than shown as free.
Generated Sun 23 Aug 2026 at 23:44 · refreshes every 5 min