Financials is the admin-only money view. Pick a period — monthly, quarterly, or yearly — and step through it with the arrows. Every view can be exported to Excel.
The overview
The landing view leads with owner KPIs — average repair order, car count, effective labor rate (labor billed ÷ labor hours), parts margin, and technician utilization — then revenue, gross profit, expenses, and net profit against the previous period. Each KPI tile shows its change against the previous period and explains itself in plain language: effective labor rate is compared to the labor rate you post (and flags when you're collecting meaningfully less), and a low or negative parts margin turns orange or red — click it to see exactly which jobs sold parts below cost in the profit report.
The tools
- Full profit report. The complete P&L: revenue (labor, parts, and the supplies and environmental fees you collect), refunds, cost of goods sold, gross profit, operating expenses, net profit, margins, a job profitability list (least or most profitable jobs of the period), and a sales-tax card (taxable vs non-taxable sales, tax collected, and tax to remit). Every job also carries a live estimated gross profit figure, on the issue page and on each job row of the vehicle page, with a stacked total across the open jobs above the list. It shows for admins, service writers, and techs with money access. On the job page, tap the figure to expand the full working breakdown: Parts GP (billed minus wholesale cost), Labor GP (billed minus the assigned tech's hourly cost, hours and rate shown), charges GP, and the total with margin — all updating live as you adjust lines, so you can reprice with the customer standing at the counter. The vehicle page's stacked total expands the same way: one row per job with its parts/labor/charges split, the order discount, and the visit total — no need to click into each job while repricing. With no tech pay set, labor counts as pure profit (the hover breakdown says so) alongside a quick link to set tech pay. Jobs whose parts have no wholesale cost are flagged and left out of the total instead of inflating it; PartsTech parts use their supplier cost automatically. These are the same per-job numbers as the profit report, and they update as jobs are added, edited, or discounted. The stacked total also subtracts any order-level discount on the live quote or bill, shown as its own line in the split.
- Customer payments. Your Stripe money in motion: collected this period, on the way to your bank, the next payout, and payout history. Find an invoice searches by number, customer, plate, or VIN — and paid results carry a Record refund action for cash/manual refunds, even months after the visit.
- End-of-day close. One day at a time: sales rung up, payments by method (the drawer), and how receivables moved — new invoicing sent, collected today, and total outstanding. Outstanding balances age by their due dates: on schedule, due within 3 days, or overdue — so a fleet's Net-30 invoices read as fine until they aren't. The close runs on your shop's local day, derived from your address, so "today" means your today, not a server's.
- Expenses. Log and categorize shop expenses so the profit number is real.
- Technician pay. Pay rates, hourly or salary — what CarSignal uses to cost labor.
- By tech. Per-technician profitability, including efficiency (hours billed vs hours actually clocked) for the bays that track time.
Where the numbers come from
Revenue comes from paid invoices; payment and payout data comes straight from Stripe; expenses and pay rates are what you enter. Refunds are netted out of revenue, collected, and the close, attributed to the day each refund actually happened. No spreadsheet assembly.
While the current month is still running, wages and recurring expenses accrue day by day — on the 4th you see four days of payroll against four days of sales, not the whole month's costs up front. The summary says "so far" whenever it is showing a period in progress.
Only admins see Financials. Service writers and technicians do not have the page in their sidebar. See Team and roles.