Line Item Detail is the most detailed report in the Parts & Line Items Sold family — you get one row for every single thing you've sold. Every part, every labor line, every tire, every subcontract, and every fee on every order shows up as its own row, with the order number, customer, vehicle, category, technician, and vendor right there. Use it when you need to dig into specific sales — "what parts did we sell last month, to which customers, by which tech, at what prices." The report is a filterable, sortable table with column totals underneath, and you can export it all to Excel.
Two things to know right up front:
- Totals on this report will not match what you see on order-level reports like Sales Summary or All Invoices — this report goes deeper (one row per line item), so the math works differently.
- The Cost (Order) and Price columns show the per-unit cost and price — they are not multiplied by Quantity. If you sold 4 tires at $80 each, the report shows $80 in Cost (Order), not $320. Quantity is its own column, and the Subtotal column is the only one that already does that math for you.
Filters
| Filter | Default | What it does |
|---|---|---|
| Countries | Your location's country | HQ only. Narrows the list of locations you can pick below. Hidden if you only have one country. |
| Locations | All your locations | HQ only. Pick which shop locations to include. If you leave it empty, all your locations are included. |
| Order Status | Invoice only | Pick which order states to include: Estimate, Repair Order, Invoiced. The default shows only invoiced work — flip Estimate or Repair Order on to see pending work too. |
| Invoice Date | No date filter | Limits the report to orders invoiced in the date range you pick. You have to click a date period (like "This Month") to activate it — the dates shown in the picker don't filter anything until you select a period. |
| Fully Paid Date | No date filter | Limits the report to orders fully paid in the date range you pick. Same activation rule as Invoice Date. If you use both date filters at once, only orders that meet both conditions appear — a narrow view, good for reconciliation. |
| Paid Status | All statuses | Paid, Unpaid, Partially Paid, Overdue. Leaving all four selected (or none) means no filter. Overdue checks the order's due date against today's date — around midnight it may shift based on UTC time, which can feel a day off in time zones far from UTC. |
| Type | All types | Part, Labor, Tire, Subcontract, Fee. Uncheck any you don't want to see. |
| Archived Status | No filter | Archived or Not Archived orders. You have to check exactly one box for this to apply — checking both is the same as no filter. |
| Categories (Line Item) | No filter | Filter by the inventory category on each line item. "Uncategorized" matches lines without a category. Picking a parent category matches both the parent and its subcategories. |
| Categories (Service) | No filter | Filter by the service's category (not the line's). Every line under the same service shares the same service category. |
| Service Writers | No filter | Filter by the service writer on the order. |
| Technicians | No filter | Filter by the technicians assigned to each line item. For Parts, Tires, Subcontracts, and Fees — only the techs assigned directly to the line count; the service's tech doesn't. |
| Customer Type | No filter | Customer vs Fleet. |
| Customers | No filter | Pick specific customers or fleets. |
| Inventory Part / Tire / Labor / Fee | No filter | Pick specific inventory records. Setting a Part filter doesn't hide Labor/Tire/Subcontract/Fee rows — each filter only narrows its own type. |
| Inventory Source | No filter | "From Inventory" vs "Not From Inventory." |
| Tags | No filter | Line-item tags. |
| Vendors | No filter | Filter by the line's vendor. Heads-up: Labor and Fee rows never have a vendor, so using this filter will hide all of them. |
| Workflow | No filter | The order's workflow status. |
Date Filters
These two filters answer different questions:
- Invoice Date = "I want data about completed/closed jobs" — use this when the question is "what did we finish and bill this period?"
- Fully Paid Date = "I want data about money that came in, regardless of which jobs it relates to" — use this when the question is "what cash did we collect this period?"
- Both date filters at once = only orders that meet both conditions. This is a narrow, restrictive view you'd use for reconciliation — most routine reporting uses one date mode only.
Neither mode is more "correct" — they answer different questions.
Understanding Each Number
| Card | What it means | What it doesn't include | When it's useful | Notes |
|---|---|---|---|---|
| Row count (footer "Total: N") | How many line items are in your filter. | Not the number of orders — one order can appear on many rows. | Quick sanity check on how much data is in the view. | Dedupe by Order # if you want to count unique orders. |
| Cost (Order) column | What you paid for the item or the quoted labor cost. | Any markup, price the customer paid, or tax. | Checking cost basis per line. | Per-unit for Parts and Tires — sold 4 tires at $80 each and this shows $80, not $320. Labor shows the quoted labor cost total. Subcontract shows the subcontract cost. Fees show blank. The column footer is a plain sum — it doesn't multiply by Quantity either. |
| Cost (Time) column | What the technician's clocked time actually cost you on this labor line (duration × rate across all timesheet entries linked to the line). | Anything from non-Labor rows — it only fills in for Labor. | Comparing actual tech time to the quoted labor cost. | If Cost (Time) is much higher than Cost (Order), the tech spent more time than you quoted. If lower, they came in under. Heads-up: if you export to Excel, this column shows as a plain number (e.g. 2500.00 means $25.00) — divide by 100 to get dollars. |
| Margin / Markup columns | Margin = (Retail − Wholesale) / Retail. Markup = (Retail − Wholesale) / Wholesale. | Labor, Tire, Subcontract, Fee rows (blank for those — only Part rows populate). | Quick profitability view on parts. | — |
| Price column | The retail price charged to the customer per unit (or per hour for Labor). | Not multiplied by Quantity. Not multiplied by Hours. Fees are blank. | Comparing retail pricing across line items. | Same "per-unit" behavior as Cost (Order). For Labor this is the hourly rate, not the billed total. |
| Quantity column | How many units were sold on Parts and Tires. | Blank for Labor, Subcontract, Fee (quantity doesn't apply to those). | Multiplying with Price or Cost (Order) to get per-line totals. | — |
| Discount column | The discount that was entered on the line — either a percent or a dollar amount. | It shows whichever you entered — it does not resolve a percent into a dollar amount for you. | Spot-checking discounts applied. | To see the actual dollar effect of a 10% discount, work it out from Subtotal (which is already post-discount). When you export to Excel, this splits into two columns: Discount Percent and Discount dollars. |
| Subtotal column | The line's total after its discount, before tax. | Order-level discounts. Order-level fees. Tax. | This is usually the column you want for revenue comparisons. It already multiplies Price × Quantity (or rate × billed hours for Labor) and subtracts the line discount. | For Fees, Subtotal equals the fee amount. Summing Subtotal across all rows gets you pre-tax revenue for the line items you're looking at. |
| Hours column | Billed hours on a Labor line (entered hours × any multiplier like time-and-a-half). | Not clocked time from the timesheet. | Reviewing how much time you billed for each labor line. | Clocked time is reflected in the Cost (Time) column (hours × rate), or you can use the Time Log report. Non-Labor rows show 0 (not blank). |
| Rate column | The hourly rate on a Labor line (what was charged at the time of invoicing). | Not the tech's current hourly rate setting. | Spot-checking labor rates. | Blank for non-Labor rows. Editing a tech's hourly rate later won't change this — it's frozen at invoice time. |
Common Questions
Q: Why does Cost (Order) show $80 when I sold 4 of something for $80 each? A: The column is the per-unit cost, not per-line. Multiply by the Quantity column to get the line total. Same deal with the Price column. The Subtotal column already does that math for you — use Subtotal when you want a per-line number.
Q: Why don't my totals on this report match Sales Summary or All Invoices? A: Those are order-level reports — one row per order. This one is line-level — one row per part/labor/tire/subcontract/fee. The math works differently by design. Sales Summary and All Invoices also include things this report doesn't directly add up (like tax and order-level discounts). To get a pre-tax, per-line revenue number from this report, sum the Subtotal column.
Q: Why is the Hours column different from what my tech clocked in the timesheet? A: Hours on this report is billed hours — what you're charging the customer (entered hours times any multiplier, like time-and-a-half). Timesheet hours are clocked hours — actual time on the clock. They don't always match, which is normal. The Cost (Time) column shows what that clocked time actually cost you (clocked hours × rate), and you can see full timesheet detail on the Time Log report.
Q: Why is Cost (Order) different from Cost (Time) on the same Labor row? A: Cost (Order) is the labor cost you quoted on the invoice. Cost (Time) is computed from the tech's actual timesheet entries. When the tech spent more time than quoted, Cost (Time) is higher; when they came in under, it's lower. That gap is useful for seeing which labor lines are profitable and which aren't.
Q: Why is the Discount column showing "10%" instead of a dollar amount? A: The column shows whatever you entered — if you entered a percent, it shows a percent. To see the dollar effect, look at the Subtotal (which already has the discount taken out). When you export to Excel, the discount splits into two columns: Discount Percent and Discount dollars.
Q: Why does an order I expect to see not show up? A: A few possibilities:
- Default Order Status is Invoice only — toggle Estimate or Repair Order on if the order isn't invoiced yet.
- If the order is read-only (e.g. historical data you imported), it's hidden from this report. It may still appear in Sales Summary or All Invoices.
- If the service on the order is marked Not Authorized, all its line items are hidden here.
- Date filters default to off — if you turned one on, the order's invoice date (or fully-paid date) has to fall in the range.
- Filters like Categories, Technicians, Vendors, or Customers may be silently cutting rows out.
Q: Why does one order appear on so many rows? A: Because an order usually has multiple line items — each Part, Labor, Tire, Subcontract, and Fee is its own row. The row count footer ("Total: N") is the line item count, not the order count.
Q: Why did an old invoice's customer name change? A: Customer and vehicle information is pulled live — if you edit a customer's name, phone, or address, this report reflects the new values on old rows. If you need the name as it was at invoice time, check the order itself rather than this report.
Tips for Getting the Most Out of This Report
- When you want revenue numbers, use Subtotal. It's the only column that's already multiplied by quantity (and has the line discount applied). Summing it is the cleanest way to get pre-tax revenue for your filter.
- When you want cost analysis on labor, compare Cost (Order) and Cost (Time). The gap is where you're either making extra margin (tech beat the quote) or eroding it (tech overran the quote). Filter to Labor only, sort or sum by service writer or technician, and look for patterns.
- Export to Excel for deep analysis. The export covers up to 100,000 rows and includes columns you can pivot in Excel (Category, Sub-Category, Service Writer, Technicians, Vendor, etc.). Remember: the Cost (Time) column exports as a plain number — divide by 100 to get dollars.
- Drill here from Sales by Line Item Type or Sales by Line Item Category. Clicking a row on those reports takes you into Line Item Detail with the same filters applied, so you can see the underlying rows that make up the aggregated number.
- Think of this as your audit trail. When a customer disputes something on an invoice, or you're trying to reconstruct what was billed on a big job, this is the report that shows every single line with full context.
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.