The Best Dashboard for a Painting Business: 11 Metrics That Matter
Painting is a project business where a job that runs 30% over hours kills the margin on three other jobs. Here are the 11 metrics that matter and how to track them at every cadence.
Key takeaways
- A painting job running 30% over estimated hours eliminates the gross margin on three average jobs
- Revenue per labor hour should sit between $65 and $90. Below $65 means pricing or hours estimation is broken
- Bid win rate of 40 to 60% is healthy. Above 70% typically means pricing is too low
- Hours variance per job within plus or minus 15% is the operational benchmark for well-run painting crews
Contents
- 01Daily Numbers: Active Job Status
- 02Weekly Numbers: Bid Win Rate, Hours Variance, and Crew Utilization
- 03Monthly Numbers: Margin by Job Type, Lead Economics, and Revenue Per Labor Hour
- 04CRM Comparison: Jobber, PaintScout, and Housecall Pro
- 05How Clint Joins Job Records and Hours Logged
- 06Sources
- 07Frequently Asked Questions
A painting job that runs 30% over its estimated hours does not just hurt the margin on that job. It eliminates the gross margin on three other average jobs in your pipeline. Labor cost sensitivity in painting is more unforgiving than almost any other residential trade because there is no parts markup to cushion an overrun. When your crew burns four extra hours on a $3,200 exterior job, that is $280 to $400 in margin gone, and you had already absorbed materials.
The right painting dashboard is built around three questions: Is this job finishing within hours? Is our bid win rate signaling a pricing problem? And how is revenue per labor hour trending across crews? For the broader framework, see home service dashboard metrics and pair this with what KPIs a painting business should track.
Daily Numbers: Active Job Status
Daily tracking in a painting business is about active job control, not sales pipeline.
Active jobs vs. expected completions today. Start every morning knowing which jobs should wrap today and whether crew allocation is set up for that to happen. A job expected to finish on Tuesday that is still running Thursday is a margin problem that compounded daily.
Crew allocation and double-booking. Track whether each crew has a defined job assignment with a clear start and end date. Painting shops that run more than one job per crew without explicit handoff scheduling are the same shops that have jobs running 20% over hours because the crew is splitting attention between a "nearly done" job and a new start.
Jobs finishing today vs. invoiced. Painting invoices should go out same-day on completion. Every day a completed job sits unbilled is a day you are financing the customer's project at your own expense. Shops that invoice within 24 hours of completion collect faster and dispute less, per Jobber's 2025 payment data.
Text Clint: "Which jobs are past their expected completion date and not yet invoiced?"
Weekly Numbers: Bid Win Rate, Hours Variance, and Crew Utilization
Weekly metrics in painting are where the margin story becomes visible before it becomes a problem.
Bid win rate. Target: 40 to 60% on residential repaint and exterior work. Below 40% suggests you are pricing correctly but losing to competitors or not following up. Above 70% almost always means you are leaving money on the table: if you win nearly everything you bid, your prices are too low. Track win rate separately for interior vs. exterior and by job size bracket (under $2K, $2K to $6K, over $6K). These segments have different competitive dynamics. See what is a good close rate for home services for cross-trade benchmarks.
Hours per job: actual vs. estimated. This is the operational core of a painting dashboard. Every week, pull the ratio of actual hours logged to estimated hours for every job that closed that week. Target variance: plus or minus 15%. Jobs running more than 20% over estimate need a debrief with the crew lead. Persistent overruns on a specific job type (e.g., cathedral ceilings, old stucco, multi-color interiors) are a pricing problem, not an execution problem.
New bids sent vs. accepted (same week lag). Track bids sent this week and bids accepted from the prior two weeks. Most residential painting decisions happen within 7 to 14 days of receiving the estimate. If you sent 12 bids two weeks ago and have heard back on 3, you either have a follow-up problem or a pricing problem.
Crew utilization. Calculate billable hours worked as a percentage of available crew hours. Target: 75 to 85%. Below 75% means crews are idle between jobs. Above 90% means you are not leaving buffer for job overruns and every overrun cascades into the next job's schedule.
Text Clint: "Show me hours variance per job this week, sorted by worst overrun, with the crew lead assigned to each job."
Monthly Numbers: Margin by Job Type, Lead Economics, and Revenue Per Labor Hour
Monthly numbers answer the structural questions that weekly data cannot resolve in a single week's sample.
Gross margin by job type. Exterior repaints, interior repaints, new construction, and commercial all carry different margin profiles. Interior residential typically runs 45 to 55% gross margin. Exterior runs 40 to 50% because of higher prep labor. New construction is often 35 to 45% due to builder price pressure and payment timing. Track these monthly and make sure your job mix is trending toward higher-margin categories, not away from them. See job profitability for home services for the broader margin framework.
Cost per new customer by lead source. Calculate total spend by channel (Google Ads, Angi, Houzz, referral program, door hangers) divided by booked jobs from that channel. A referral customer costs $0 to $25 to acquire and often has a higher average job value because they are pre-sold on your quality. A Google Ads customer at $180 cost per booked job on a $2,500 average ticket is marginal. Track this monthly and cut channels where cost per booked job exceeds 8% of average ticket. See how to calculate cost per lead for contractors and how to track lead source in a service CRM.
Revenue per labor hour. Target: $65 to $90. This is the number that tells you if your pricing keeps pace with your wage increases. If your journeyman painter earns $28/hour and your revenue per labor hour is $68, your contribution per labor hour is $40 before materials. If revenue per labor hour drops to $55 while wages stay at $28, you are on a path to unsustainable margins. Review this monthly and adjust bid rates if it trends below $65 for more than two consecutive months.
Seasonality vs. prior year. Compare current month revenue and job count to the same month last year. Painting is highly seasonal in most markets. A 15% revenue drop in November means nothing if you dropped 18% the prior November. A 15% drop when you grew 12% the prior November is a signal.
Text Clint: "Show me gross margin by job type this month vs. last month, and revenue per labor hour by crew."
CRM Comparison: Jobber, PaintScout, and Housecall Pro
Jobber is the most commonly used CRM for painting shops under $3M. Its quoting workflow is strong and the Insights Dashboard tracks revenue by lead source natively. The gaps: hours variance per job is not a native metric, revenue per labor hour requires an export, and bid win rate requires the Quotes report filtered by date range and manually divided. Jobber pricing starts at $49/month.
PaintScout is built specifically for painting companies and is the strongest option for estimating and bid management. It tracks area, square footage, and labor hours in the estimate and compares them against actuals at job close. Bid win rate, average ticket by job type, and crew hours are native. The trade-off: PaintScout is an estimating and CRM tool, not a full operations platform. Most shops over $1M use it alongside Jobber or Housecall Pro. PaintScout pricing starts at $99/month.
Housecall Pro has better dispatch management than Jobber for multi-crew painting shops. The job tracking view shows active jobs by crew with status indicators. Hours variance still requires manual calculation or export. Housecall Pro starts at $79/month.
None of the three surfaces revenue per labor hour as a native dashboard metric. Tracking it requires either a weekly export or a connected data tool.
How Clint Joins Job Records and Hours Logged
Clint connects to your CRM job records and, where integrated, time-tracking data to surface margin at the job level without building a custom report.
The most operationally valuable Clint query for a painting shop is hours variance: you ask "which jobs this week ran more than 20% over estimated hours?" and Clint pulls the estimated hours from the job record, the actual hours from time logs, and surfaces the delta by crew and job. That query alone, run weekly, identifies margin bleed before it accumulates across a month.
Clint also answers bid pipeline questions across CRM and email simultaneously. "Which bids sent in the last 14 days have had no response?" pulls from both the CRM quote status and Gmail outbound activity so you see bids that left the system but generated no email reply, not just bids the CRM has not updated.
Text Clint: "Which jobs this month had the worst hours variance, and what was the crew assigned?"
Sources
- HomeAdvisor Cost Guide: Interior and Exterior Painting
- PaintScout Product Documentation: Job Costing
- Housecall Pro Painting Business Resources
- Jobber Payment Timing and Cash Flow Data 2025
- Painting Contractors Association Industry Benchmarks 2025
- 2025 Home Service Business Benchmarks, ServiceTitan
- Bain and Company: The Value of Customer Retention
Frequently Asked Questions
4 questions home service owners actually ask about this.
01What gross margin should a painting business target?
40 to 55% overall, with variation by job type. Interior residential runs higher (45 to 55%) because prep labor is lower and materials are a smaller percentage of total cost. Exterior runs 40 to 50%. New construction and commercial work often runs 35 to 45% due to price pressure and slower payment terms. If your blended gross margin is below 38%, review your labor rates and estimating accuracy before cutting any other cost.
02How do I know if my bid win rate signals a pricing problem?
A win rate above 70% is the clearest signal that your pricing is too low. At 70%-plus, you are winning almost everything you bid, which means you are not competing at market rate. The counterintuitive fix is to raise prices until your win rate falls to 50 to 60%. The jobs you lose at higher prices are replaced by fewer jobs at higher margin. Most painting shops that cross $1M in revenue discover this only after tracking win rate systematically for 60 to 90 days.
03What is revenue per labor hour and why does it matter for a painting business?
Revenue per labor hour is total revenue divided by total crew hours worked in a period. The target is $65 to $90. It matters because painting is a pure labor business: when wages rise, revenue per labor hour must rise to maintain margin. A shop that earns $68 per labor hour with journeymen at $22/hour has the same margin problem as a shop at $58 per labor hour with journeymen at $18/hour. Track it monthly and rebuild your pricing model if it falls below $65 for two consecutive months.
04Which CRM is best for a painting business under $2M?
PaintScout plus Jobber is the strongest combination for shops that bid heavily and want job-level margin tracking. PaintScout handles the estimate and tracks estimated vs. actual hours. Jobber handles dispatch, invoicing, and client communication. For shops that want a single platform, Housecall Pro is the better all-in-one for painting than Jobber because its job tracking for multi-crew operations is stronger.
See Clint in action
Clint is the pre-built AI for home service shops. Connect your CRM, email, and phone system in minutes and the agents run on your real data.