The Service Writer Performance report tells you how each of your service writers is performing on the orders they own — how many orders they wrote, how much they sold in labor, parts, tires, and subcontract work, what their average ticket is, what effective hourly labor rate they achieved, and how much they discounted. You'll see a chart at the top ranking your top 5 service writers by Total Sales, and a table below with every service writer and matching orders, one row per writer. Use this to spot your strongest writers, coach writers whose numbers lag, compare writers across locations, and understand the shape of each writer's book of business.
Filters
| Filter | Default | What it does |
|---|---|---|
| Countries | your own shop's country | only appears in the HQ view and only if your company has shops in more than one country. It narrows the list of locations you can select; it does not change any numbers directly |
| Locations | all the locations you can access | HQ only. Pick specific locations to focus on — leave unchecked to see your full company |
| Order Status | every status (Estimate, Repair Order, Invoice) | controls whether the report counts Estimates, Repair Orders, and Invoiced orders. Leaving it on "all" means your Estimates are counted as orders, which drags down average ticket. Set it to Invoice only if you want invoice-level numbers |
| Invoiced Date | no filter set — every order ever is included | restricts the report to orders invoiced during a specific date range. Most reports default to "last month" — this one does not, so if your numbers look unexpectedly huge, this is almost always why. Set a date range to see a specific period |
| Paid Status | every status | limit to orders that are Paid, Unpaid, or Partially Paid |
| Fully Paid Date | no filter set | restricts to orders that were fully paid during a specific date range. Useful if you want to see only orders where the money actually came in |
| Service Writers | every service writer | pick specific writers to focus on |
Date Filters
The two date filters (Invoiced Date and Fully Paid Date) answer different questions:
- Invoiced Date = "I want data about jobs completed and billed this period" — use when the question is "what did we finish and invoice?"
- Fully Paid Date = "I want data about orders we collected 100% of the payment on this period" — use when the question is "which orders did we fully collect on?"
- Both at once = the intersection — orders must satisfy both. This is a narrow, restrictive view for reconciliation.
Neither mode is more "correct" — they answer different questions.
Understanding Each Number
| Number | What it means | What it doesn't include | When it's useful | Notes |
|---|---|---|---|---|
| Service Writer | the employee's name and picture; clicking the row opens the All Orders report filtered to that writer | — | identify the writer at a glance | if the name looks outdated, the report uses the name stored at the last data refresh. The timestamp at the top of the table tells you how fresh it is |
| Location | where the writer's orders were taken | — | compare writers across your shops | HQ only. Shows one location per writer even if they work at multiple |
| # Orders | the count of orders this writer owned in the selected date range and filters | — | gauge volume | remember this is affected by every filter — especially the Order Status filter (Estimates count unless you exclude them) |
| Billable Hours | total labor hours sold on the writer's orders, after applying any labor multipliers | work billed at flat-rate with 0 hours tracked | measure how much labor they sold | some flat-rate billing doesn't track hours; in that case Billable Hours will be low even though Labor Billed is high |
| Billable Hours / Order | the average labor hours per order for this writer | — | spot writers who sell more labor per ticket | — |
| Labor Billed | total dollars you billed customers for labor on this writer's orders, after any discounts | parts, tires, subcontract, fees, tax | see who sells the most labor | this is what the customer was billed — not what you paid your techs |
| Labor Billed / Order | the average labor dollars per order | — | spot writers with bigger labor tickets | — |
| Part Sales | total dollars you billed customers for parts, after any discounts | labor, tires, subcontract, fees, tax | see who sells the most parts | — |
| Part Sales / Order | average part sales per order | — | — | — |
| Tire Sales | total dollars you billed customers for tires, after any discounts | everything else | shops that sell tires | $0.00 is normal if you don't sell tires |
| Tire Sales / Order | average tire sales per order | — | — | — |
| Subcontractor Sales | total dollars billed for subcontract work, after any discounts | everything else | see who writes the most subcontract work | the XLS export labels this column "Subcontract Sales" — same number, slightly different name |
| Subcontractor Sales / Order | average subcontractor sales per order | — | — | — |
| Total Sales | total dollars on the writer's orders | — | the headline number | this is NOT the exact sum of Labor + Parts + Tires + Subcontract on this report — it reflects the order's overall total, which may also include fees and tax |
| Total Sales / Order (average ticket) | the writer's average ticket size | — | the single most common "who's performing?" metric | by default this includes Estimates. Filter Order Status to Invoice to see invoice-only average ticket |
| Effective Labor Rate | realized dollars per billable hour on the writer's orders | — | gauge whether your shop is getting full rate, getting discounted, or billing flat-rate that works out better or worse than the posted rate | this is not the writer's hourly pay. It's the shop's effective $/hour on the labor those orders contained. Weighted by totals, not per-order average |
| Total Discount | total dollars discounted across the writer's orders | — | spot writers who discount more than others | — |
| Total Discount / Order | average discount per order | — | — | — |
Common Questions
Q: Why is my Total Sales number huge — way bigger than I expect? A: By default, this report has no date filter set. Unlike most reports, which default to "last month", this one pulls every order ever until you set a date range. Set the Invoiced Date or Fully Paid Date filter and your numbers will come back to reality.
Q: Why is my average ticket so low? A: The Total Sales / Order column divides Total Sales by the number of orders in the report — including Estimates by default. Estimates are usually smaller than final invoices, so they drag down average ticket. Open the filter panel and set Order Status to Invoice only to see your true invoice-level average ticket.
Q: The service writer's name on the report is wrong — I renamed them recently. A: The report reads names from a snapshot that refreshes on a schedule, not live. The timestamp at the top of the table shows when the data was last refreshed. Give it a bit — the new name will catch up on the next refresh.
Q: A service writer is missing from the report. A: Check three things: (1) did that person actually own orders in the period, or did they only perform labor? Service writers are the people assigned to the order, not the techs who do the wrench-turning. (2) Are your date filters narrowing the range past their most recent orders? (3) Is your Service Writers filter excluding them?
Q: My Total Sales here don't match my Sales Summary report. A: Both reports show sales, but they're calculated through two different paths. Small penny-level differences across many orders are normal — this is how rounding works across many line items, the same way a column of numbers added on a calculator can differ by a penny from a spreadsheet sum. If the difference is in dollars, double-check that your date range, Order Status, and location filters match on both reports.
Q: My Service Writer Performance doesn't match my Summary by Technician report. A: They group differently. Service Writer Performance counts by who owned the order — the writer listed on the top of the order. Summary by Technician counts by who did the labor — the tech assigned to each labor line. One order with three techs would show up once on this report but three times on Summary by Technician. Both are right; they answer different questions.
Q: I clicked a writer's row and the order count on All Orders doesn't match. A: When you click a row, the All Orders report opens with that writer pre-selected — but it also resets the date scope to "all time". You'll need to re-apply your date range on the All Orders page to get a matching order count.
Q: Effective Labor Rate looks weird for one of my writers. A: Effective Labor Rate is total labor dollars divided by total billable hours across all of that writer's orders in the filter scope. One big-ticket labor job can noticeably shift this number. Also, if the writer had orders where labor was billed flat-rate with no hours recorded, the rate can look oddly high or low. It's not your writer's hourly pay — it's the effective $/hour you realized on their orders.
Tips for Getting the Most Out of This Report
- Always set a date filter first. Because this report defaults to "no date filter", the first thing to do is set Invoiced Date or Fully Paid Date to a meaningful range — the current month, last month, the quarter. Without a date filter, you're looking at lifetime totals.
- Set Order Status to Invoice for a true performance view. Including Estimates inflates # Orders and drags down average ticket. For one-on-one coaching and month-end reviews, filter to Invoice only. Include Estimates when you want to see pipeline volume.
- Compare Effective Labor Rate across writers to spot coaching opportunities. If one writer consistently runs at a lower effective rate than peers, it may mean they're discounting more heavily, pricing flat-rate jobs short, or accepting larger discounts. Pair this with Total Discount to confirm.
Still have questions? Feel free to reach out to us through the chat icon. Thanks for reading!
Comments
0 comments
Article is closed for comments.