What This Report Shows
Your Sales by Customer report helps you see who your best customers are and which ones are most profitable. Each row is one customer (or fleet account), and the columns break their activity down into profit, profit percentage, retail, cost, fees, discount, order total, and per-category detail for parts, tires, labor, and subcontracts. The cards at the top — Order Total, Orders Created, Total Profit, Total Retail, and Total Cost — summarize every customer in your current view, and the bar chart shows your top customers ranked by order total. Use it to spot your highest-revenue customers, find who's most profitable, and see where your profit is coming from by category.
Filters
| Filter | Default | What it does |
|---|---|---|
| Countries (HQ only) | Your current country | Controls which locations are available in the Locations list. Only shows up if your HQ covers more than one country. |
| Locations (HQ only) | Every location you have access to | Narrows the report to orders at specific shop locations. If you clear every checkbox, the report still shows all your locations rather than going empty. |
| Order Status | All orders (Estimates, Repair Orders, and Invoiced) | Lets you focus on one type of order — for example, only Invoiced orders for a "what did we bill?" view. By default, Estimates and Repair Orders are included, so your numbers may be larger than "what was actually invoiced." |
| Invoiced Date | Not set (shows every order regardless of date) | Filters by when orders were invoiced. This is not turned on by default — the box shows the current month, but until you actually pick a date range, the report includes every order from all time. |
| Archived Status | Both archived and non-archived included | Lets you hide archived orders. By default you see everything. |
| Paid Status | All orders (Paid, Unpaid, Partially Paid) | Narrow to a specific payment status. |
| Fully Paid Date | Not set | Filters by when orders became fully paid. Same "not turned on by default" behavior as Invoiced Date. |
| Customer Type | All | Filter to just individual customers or just fleet accounts. |
| Customers | All | Pick specific customers to focus on. Walk-in / unassigned orders are not matched by this filter — they always appear under the "Unassigned" label when no Customers filter is active. |
| Order Tags | All | Only include orders that have specific tags on them. |
| Service Writers | All | Only include orders assigned to specific service writers. |
| Workflow | All | Only include orders in specific workflow statuses. |
A note on the two date filters. Invoiced Date answers "I want data about completed/closed jobs" — use it when the question is "what did we finish and bill this period?". Fully Paid Date answers "I want data about money that came in, regardless of which jobs it relates to" — use it when the question is "what cash did we collect this period?". Turning both on at once narrows the report to orders that satisfy both conditions — this is a restrictive view best saved for reconciliation, not routine reporting. Neither mode is more "correct" — they answer different questions.
Understanding Each Number
View a snapshot of your sales by customer data.
View order totals by customers (top 40) for a visual on the top spending customers in your shop.
View a detailed table of sales by each customer in your shop.
| Card | What it means | What it doesn't include | When it's useful | Notes |
|---|---|---|---|---|
| Order Total | The total amount owed on every order in your filtered view | It is not money you've actually collected — unpaid orders are included | Seeing total billed activity for a period | To see money actually collected, use the All Payments report instead |
| Orders Created | How many orders are in your filtered view | — | Measuring customer transaction volume | Includes Estimates and Repair Orders by default. Apply the Order Status → Invoice filter to count only invoiced orders |
| Total Profit | Combined profit across every order in the view | — | Quick profitability check | Profit is retail minus wholesale cost, after discounts |
| Total Retail | Combined retail price across every order, before tax and fees | Fees and taxes | Seeing your priced-to-the-customer total before "extras" | This is usually less than Order Total because Order Total adds fees and tax back in |
| Total Cost | Your cost of goods (parts, tires, labor, subcontracts) across every order | — | Seeing what your business spent to fulfill these orders | The label "Total Cost" is internal cost — what it cost your shop — not what the customer paid. Customers sometimes misread this |
| Total Profit Percentage (column) | Total Profit divided by Total Retail for that customer | — | Comparing margin across customers | This is a weighted percentage across all of the customer's orders, not an average of per-order percentages. Do not expect it to match any single order's profit % |
| Total Fees | Fees across the customer's orders (shop fees, EPA, etc.) | — | Seeing how much of a customer's bill is fees | Fees are not part of Total Retail; they're added separately |
| Total Discount | All discounts applied across the customer's orders | — | Seeing who got the biggest discounts | Includes line-item and service-level discounts combined |
| Parts / Tires / Labor / Subcontract (Profit, Retail, Cost) | Category-level breakdown for each customer | — | Understanding which category drives profit for a customer | Parts and Tires retail/cost reflect each line item; Labor retail is after line-item discounts but before service-level discounts; Subcontract is outsourced work billed through you |
| Location (HQ only) | The shop where the customer's orders live | — | Seeing which shops a customer uses | If a customer shops at more than one of your locations, this row shows one representative location — the dollar totals still cover every selected location. Filter to a single location for per-location detail |
Common Questions
Q: Why are my numbers so high — I only wanted this month? A: By default, no date filter is applied. The date picker shows the current month, but until you actually pick a date range, the report includes every order in your history. Click the Invoiced Date or Fully Paid Date filter and pick "This Month" (or whichever period you want).
Q: Why does Orders Created include so many more than I invoiced? A: By default, the report includes Estimates and Repair Orders along with Invoices. Apply the Order Status filter and select Invoice only if you want to count only invoiced orders.
Q: Why does Total Cost not match what my customer paid? A: "Total Cost" is your internal cost of goods — what you paid for parts, labor, and so on. The amount your customer paid is shown in the Order Total column. Those are two different things.
Q: Why is Total Profit % different from a single order's profit %? A: The percentage shown is a weighted ratio — Total Profit divided by Total Retail across all of that customer's orders. It is not the average of each order's profit %. A big order with a small margin and a small order with a big margin will produce a weighted percentage, not an average.
Q: A customer is missing — where did they go? A: Start by clearing filters one at a time. Most "missing customer" cases come from: (1) an active Invoiced Date or Fully Paid Date filter that excludes the order's dates, (2) an Order Tags or Service Writers filter that excludes orders with no tag or no assigned service writer, (3) Archived Status being set to non-archived when the customer's orders have been archived, or (4) in HQ, the customer's location being unchecked.
Q: Why doesn't this match the Sales Summary report? A: Sales Summary's "Invoiced" card only includes invoiced orders for a specific date range. Sales by Customer, by default, includes Estimates and Repair Orders and has no date filter. To make them match, set Sales by Customer's Order Status to Invoice and apply the same Invoiced Date range as Sales Summary.
Q: A row shows up as "Unassigned" — what is that? A: It's the bucket for orders that don't have a customer on file — typically walk-in or quick-sale orders. Their dollars still contribute to your totals, they just aren't tied to a specific customer record.
Tips for Getting the Most Out of This Report
- Pick one date filter per question. Use Invoiced Date for "what did we bill?" and Fully Paid Date for "when did the money come in?" — don't turn both on together unless you're doing a specific reconciliation.
- Sort by Total Profit, not Order Total, to find your most valuable customers. High Order Total with thin margin is not the same as high profit.
- Use the chart to spot outliers quickly. The bar chart ranks your top customers by Order Total — a long tail means broad customer base, a steep drop means heavy reliance on a few accounts.
- For HQ users, filter to one location at a time for per-location customer detail. Otherwise a customer who shops at multiple locations rolls into one row.
- Set Order Status to Invoice and Archived Status to Not Archived if you want "clean" billed revenue — the defaults are broader than most people expect.
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.