Effective labor rate: formula and worked calculation
Calculate effective labor rate from net labor sales and sold hours. Check discounts, package prices, credits, and weighted totals with a worked shop worksheet.

Effective labor rate, or ELR, is net labor sales divided by the sold labor hours tied to those sales. Use labor dollars after discounts and other labor price adjustments, not the whole invoice or the money collected that day. For an independent repair shop, this measures the selling price achieved per sold hour, not technician speed or profit.
Use sold hours in the formula
Effective labor rate = net labor sales ÷ sold labor hours.
Sold hours are also called billed hours. They are the hours entered for the work sold, not necessarily the time someone spent doing it. Tekmetric’s report definition uses labor dollars after discounts divided by labor hours sold.
If you sell $75 of labor for 0.5 billed hours, ELR is $150 per hour. If 0.5 is only the actual time spent, you still need the billed hours to calculate ELR.
Keep these measures separate:
| Measure | What it tells you |
|---|---|
| Posted labor rate | The stated hourly selling rate, before job-specific prices or discounts |
| Effective labor rate | Net labor sales per sold hour |
| Technician efficiency | Sold hours compared with actual job hours |
| Productivity | How much available time goes to job work, under the definition used here |
| Technician wage | What the shop pays the technician, under its pay plan |
| Profit | Sales left after the relevant costs, not sales per hour |
Report labels vary. Shopmonkey’s technician documentation separates billed hours from tracked hours and describes different efficiency calculations. Read the denominator before comparing reports.
Suppose the shop sells eight hours of labor for $1,120. ELR is $140. If those jobs take 6.4 actual hours, labor sales per actual hour are $175. Technician efficiency is 8 ÷ 6.4 × 100, or 125%. None of those calculations gives net profit.
Work through four unequal jobs
Use four jobs with different billed hours to check the method. These amounts are for arithmetic, not recommended repair prices. All four belong to the same reporting period and have a $150 starting labor rate.
| Job | Sold hours | Labor before reductions | Labor reductions | Net labor sales | Job ELR |
|---|---|---|---|---|---|
| A | 0.5 | $75 | $25 | $50 | $100 |
| B | 1.5 | $225 | $15 | $210 | $140 |
| C | 4.0 | $600 | $0 | $600 | $150 |
| D | 2.0 | $300 | $40 | $260 | $130 |
| Total | 8.0 | $1,200 | $80 | $1,120 | $140 |
Add the net labor dollars, then add the sold hours:
$1,120 ÷ 8 = $140 per sold hour.
Do not average the four job rates. That gives ($100 + $140 + $150 + $130) ÷ 4 = $130. It gives a half-hour job the same weight as a four-hour job.
The correct total weights each rate by its sold hours. The same rule applies when combining days, weeks, technicians, or job categories. Divide their combined dollars by their combined hours.
There is also a useful cross-check. The $80 reduction spread across eight hours lowers the starting rate by $10. That gives $150 − $10 = $140.
Add labor sales after adjustments
Start with the labor selling amounts for the selected invoices. Subtract labor discounts, labor credits, and other reductions assigned to those sales. If your report already shows net labor sales, do not subtract them again.
Leave out parts sales, sales tax, shop fees, and outside sublet charges from this labor-only worksheet. Keep technician wages and other costs out of the numerator too. Those belong in a separate cost and profit calculation.
For a whole-invoice discount, check how much was assigned to labor. Do not subtract a parts discount from labor sales or assume the entire discount belongs to labor.
Separate package labor from parts
A package price needs a recorded split before it can enter this calculation. Suppose a $120 package records $70 in parts sales and $50 in labor sales, with 0.5 sold labor hours. Its labor ELR is $50 ÷ 0.5 = $100, not $120 ÷ 0.5 = $240.
Use the package’s recorded labor selling amount, not package revenue minus the shop’s parts cost. Cost and selling price answer different questions.
Use the parts markup matrix guide to test parts pricing separately from this labor calculation.
If the split or sold hours are missing, flag the package for review. Do not invent hours by dividing its price by your posted rate. That would build the desired answer into the input.
Changing a package’s recorded split can change ELR without changing the customer’s bill. Document the allocation method and keep it consistent across periods. Review changes with your accountant rather than moving dollars to make the metric look better.
Match the dates and repair records
For this worksheet, “posted date” means the consistent finalized or issued invoice date recorded by your source system. It does not mean payment date or job-completion date. Take both labor dollars and sold hours from that same set of invoices. Keep the date rule and any job-category exclusions beside the result.
For example, a job completed on September 30 with an invoice finalized on October 1 belongs in the October set under this method. A payment received on October 5 does not move it to a different set. This example applies the worksheet’s date boundary. It does not change the shop’s accounting policy.
Do not divide this month’s deposits and payments by this month’s sold hours. Payments may cover earlier invoices or work not yet invoiced. Do not pair posted sales with a technician report selected by job-completion date unless the underlying records match.
Count each labor line once. A report grouped by technician may repeat a labor line assigned to more than one person. Check invoice and line IDs before adding it to a shop total.
A later price credit also needs a clear rule. If a $30 labor price credit is assigned to the four jobs above, their revised net sales are $1,090. If their sold hours remain eight, the revised ELR is $136.25. Label this as a revised result, not the original month’s report.
That does not mean every refund leaves hours unchanged. A void or correction may reverse hours too. Keep the original record, adjustment, and reason. Ask your accountant how to handle prior-period credits and bad debts. This worksheet is a sales analysis, not a tax or revenue-recognition policy.
Keep zero rows visible
| Record | Action before totaling |
|---|---|
| Positive labor dollars, zero sold hours | Check for missing hours, a package setup problem, or a separate price adjustment. Do not guess hours. |
| Positive sold hours, zero net labor dollars | Keep valid sold hours for fully discounted work within the chosen scope. Review why the charge is zero. |
| Zero dollars and zero hours | No defined row ELR. Retain the note if it explains work done or an exclusion. |
| Price credit, zero additional hours | Link it to the original labor sale. Apply the documented period rule. |
Do not add actual comeback or courtesy-work time to sold hours merely because someone worked it. Track that time separately. Conversely, do not hide a fully discounted sold line because it lowers the result.
If total sold hours are zero, ELR is undefined. Report that condition, not a $0 rate.
Use a worksheet you can trace
Open the effective labor rate worksheet for a paper-first quick start using the same four jobs. It also includes optional spreadsheet and Python checks. Download the practice CSV to use the checked four-job case. The invoice template can help keep parts and labor separate when starting from paper records.
Before accepting the total:
- Match the rows to the chosen invoice list, including unpaid invoices under this posted-sales method.
- Reconcile net labor sales to the matching labor-sales report. Explain differences rather than forcing agreement.
- Resolve missing hours and package splits. List exclusions with both their dollars and hours.
- Add all included net labor sales and sold hours separately. Divide once, then round the final rate to cents.
- Save the period, filters, allocation rule, and credit treatment so next month’s result uses the same basis.
Investigate a change before changing prices
An ELR below the posted rate is a reason to inspect the records, not proof that every job is underpriced. Check discounts, package allocations, missing hours, and the mix of work first.
In the table, replace job C with one hour sold at the same $150 rate. Keep the other jobs unchanged. Total sales become $670 and sold hours become five. ELR falls to $134 even though none of the job rates changed.
Compare like job categories as well as the shop total. Then review labor costs, overhead, actual job time, and total profit separately. There is no universal target rate supplied by this calculation.
Use the shop profit-margin guide to review those costs and profit with the right denominator.
Brinlo keeps manually entered labor lines with the estimate and carries approved work into the invoice without retyping. See how estimates and approvals connect those records. Use those records as source material, then calculate ELR in a separate worksheet.


