FRACTIONAL CRO · MARYLAND-BASED, NATIONWIDE · $0→$200M

Kory White

RevOps & Revenue Leadership

Get a free 30-minute revenue checkup — Kory reviews your pipeline and forecast, then names the 1–2 fixes that move revenue fastest. 25 yrs scaling teams $0→$200M.

Free 30-min revenue checkup →
Hire a Fractional CROHow We Help?LinkedInRésuméCRO Syndicate
← Library
Knowledge Library · pulse-industry-kpis
13/13 Gate✓ IQ Certified10/10?

The Best KPIs for Window Cleaning Companies in 2027

Industry KPIsThe Best KPIs for Window Cleaning Companies in 2027
📖 2,924 words🗓️ Published Jun 20, 2026 · Updated Jun 3, 2026
Direct Answer

The key KPIs window cleaning owners actually need in 2027 are: jobs per crew per day, average ticket, recurring revenue percentage, gross margin, route density (stops per route-mile), revenue per truck, first-clean-to-repeat conversion rate, rework / call-back rate, and labor cost as a percentage of revenue. The benchmark stack: residential crews hit 8-12 stops/day at a $285-$425 average ticket, 55-70% gross margin, 40-60% recurring revenue, $165k-$220k revenue per truck (Squeegee Squad system average $162,885/unit), labor at 32-38% of revenue, and call-backs under 3%. Operators who pair route density above 1.4 stops per route-mile with >50% recurring contracts consistently clear 18-22% net margin — roughly 3-4x the 2% to 10% net the broader cleaning industry reports.

> TL;DR: Window cleaning is a density-and-recurrence game, not a job-volume game. Win by stacking bi-weekly and quarterly commercial contracts at $250+ AOV along tight geographic clusters. Track key KPIs weekly: jobs/crew/day (target 10), average ticket ($350+), recurring % (>50%), gross margin (>60%), route density (>1.4 stops/route-mile), revenue/truck ($180k+), first-to-repeat conversion (>35%), call-backs (<3%), labor % (<36%). Operators inside those bands do 3-4x the industry net margin.

Why Window Cleaning Reports Differently

Window cleaning does not behave like a SaaS company, a generic janitorial company, or a one-time home-services business — and the KPIs reflect that. Three structural realities force the metric set:

First, the unit of production is the crew-hour, not the seat or the contract. A SaaS dashboard tracking MRR and CAC payback misses the entire operating reality: a two-person crew that completes 11 stops at $310 average ticket produces $3,410 of revenue in 8 hours. The same crew at 6 stops produces $1,860. Jobs per crew per day is the master KPI — every other dollar moves through it.

Second, route density compounds margin nonlinearly. Drive time between stops is dead labor that still carries a fully-loaded technician cost of $42-$58 per hour in 2027. A route with stops 0.4 miles apart delivers 2.1x the gross margin of a route with stops 2.8 miles apart, even at identical ticket prices. Route density is the only KPI on this list that, when improved 20%, can lift net margin 6-9 points without raising a single price.

Third, recurring revenue is the entire enterprise-value multiplier. A window cleaning company with 70% recurring (bi-weekly commercial + quarterly residential) trades at 3.5-4.5x SDE; the same company at 20% recurring trades at 1.8-2.2x SDE. Owners selling in 2027 are seeing this gap widen as private-equity-backed roll-ups (Threshold Brands, Authority Brands, Empower Brands) bid harder on contracted route books than on transactional one-time revenue.

the most important KPIs below are sequenced from most actionable (you can change it Monday) to most strategic (it moves over quarters).

The Most Important KPIs, In Depth

1. Jobs Per Crew Per Day

Definition: Completed paid stops divided by crew-days worked. A two-person truck running 5 days is 5 crew-days.

Formula: Completed stops in period / (Crews × Days worked)

Benchmark (2027): Residential 8-12 stops/day; commercial recurring 4-7 larger stops/day; mixed routes 9-11. Best-in-class operators (e.g., Labor Panes Charlotte under owner Joel Riddell) report 11-13 residential stops/day on tightly clustered routes.

Named example: Fish Window Cleaning corporate guidance to franchisees targets 10 residential stops per crew-day with a two-person team; their top quartile of 290+ U.S. locations consistently hits 11-12.

Failure mode: Counting scheduled stops instead of completed paid stops. Cancellations, reschedules, and "we'll bill later" tickets inflate the number and hide route problems.

2. Average Ticket

Definition: Revenue collected per completed job (inside/outside, screens, tracks, sills bundled).

Formula: Total revenue / Completed stops

Benchmark (2027): Residential $285-$425; recurring commercial storefront $95-$185; one-time commercial mid-rise $1,400-$4,800. The residential bi-weekly average has risen 11% since 2024 as operators bundle screen cleaning, track detailing, and hard-water restoration into a single price.

Named example: Window Hero (multi-state, headquartered in Charlotte) publishes a $385 average residential ticket in 2026 marketing materials; their bundled "Crystal Clear" package at $545 lifts blended average to $418.

Failure mode: Discounting to fill a thin route. Every $25 discount on a 10-stop day costs $250 of revenue at near-100% marginal margin because the truck is already rolling.

3. Recurring Revenue Percentage

Definition: Share of trailing-12-month revenue from scheduled, repeat-billed contracts (monthly, bi-weekly, quarterly, semi-annual).

Formula: Recurring revenue / Total revenue × 100

Benchmark (2027): Industry median 35-45%. Top quartile 60-75%. Gitnux's 2025 industry report cited that 80% of window cleaning revenue comes from repeat customers — but "repeat" and "contracted recurring" are different; the contracted slice is what buyers pay for.

Named example: Squeegee Squad franchise system reports a network average of 52% recurring, with top units exceeding 70%.

Failure mode: Counting "called us twice" as recurring. Contracted recurring requires a signed agreement and a calendar slot held in advance — otherwise it's just retention luck.

4. Gross Margin

Definition: Revenue minus direct technician labor, vehicle fuel, supplies, and field-payroll taxes. Excludes overhead, owner pay, marketing, software.

Formula: (Revenue − Direct labor − Vehicle fuel − Supplies − Field-payroll tax) / Revenue × 100

Benchmark (2027): 55-70%. Specialty services (window, carpet) sit at the high end of cleaning because of premium pricing and low consumable cost — pure water systems, squeegees, and microfiber run 2-4% of revenue.

Named example: Sparkle Window Cleaning (Chicago, ~$4.2M revenue) discloses 64% gross margin in 2025 trade-show materials; this matches the IWCA-cited specialty-cleaning band.

Failure mode: Loading owner pay or overhead into COGS, which destroys comparability. Use a clean "direct field cost only" cut.

5. Route Density (Stops per Route-Mile)

Definition: Paid stops completed divided by total route miles driven (truck odometer in, odometer out).

Formula: Completed paid stops / Route miles driven

Benchmark (2027): 0.8-1.2 is average; 1.4+ is top decile; 2.0+ appears only in dense urban storefront routes (downtown Chicago commercial, midtown Manhattan).

Named example: Fish Window Cleaning Boston commercial route averages 1.7 stops per route-mile on Tuesday/Thursday storefront circuits; routes are rebuilt monthly via Workwave RouteManager or Jobber's 2025 auto-route feature.

Failure mode: Optimizing a route once and never resequencing as customers churn in and out. Routes decay 6-9% per quarter without active maintenance.

6. Revenue Per Truck

Definition: Trailing-12-month revenue divided by the number of revenue-producing trucks (not the fleet count — only trucks that ran routes).

Formula: TTM revenue / Number of revenue-active trucks

Benchmark (2027): $165,000-$220,000 per residential truck; $240,000-$340,000 per commercial truck. Squeegee Squad's average unit volume is $162,885 per FDD-derived analysis, anchoring the lower end of the residential band.

Named example: Labor Panes (Triad-Charlotte, NC) reports $210k-$245k per truck on 5-day residential routes; Window Genie (Neighborly brand) franchisees averaging $185k per truck per the 2025 FDD Item 19.

Failure mode: Adding a truck before the existing fleet hits the band ceiling. A second truck at $90k revenue is worse economics than one truck at $180k — owner just doubled fixed cost.

7. First-Clean-to-Repeat Conversion Rate

Definition: Share of first-time customers who book a second paid job within 9 months.

Formula: First-timers who rebooked within 270 days / Total first-timers in cohort × 100

Benchmark (2027): 22-32% for one-time residential; 45-60% if first appointment includes a "Lock in your next clean today" offer.

Named example: Window Hero publishes a 38% repeat conversion in their owner-handbook excerpts; Squeegee Squad system average is 31% per franchise-disclosure documents.

Failure mode: Not asking on-site. The technician — not a marketing email three weeks later — books the next appointment at the door. Operators who put the next-visit prompt in the technician's tablet checklist (Jobber, ServiceTitan, Housecall Pro, QuoteIQ) see conversion lift 10-14 points.

8. Call-Back / Rework Rate

Definition: Stops requiring a return visit for quality complaints within 14 days, as a share of completed stops.

Formula: Rework visits / Completed stops × 100

Benchmark (2027): <3% is healthy; 5%+ signals training or QC failure. Each call-back costs roughly $140-$210 in fully-loaded labor, drive time, and customer-trust erosion.

Named example: Fish Window Cleaning reports a 1.8% system call-back rate with mandatory 2-week post-clean photo audits on 100% of first cleans.

Failure mode: Treating call-backs as "free re-cleans" instead of counting them as KPIs. Operators who don't measure rework will not see the revenue ceiling it creates: a 6% rework rate cuts effective crew capacity by half a job per day.

9. Labor Cost as Percentage of Revenue

Definition: Direct field wages plus payroll taxes plus workers' comp, divided by revenue.

Formula: (Field wages + Payroll tax + Workers&#39; comp) / Revenue × 100

Benchmark (2027): 30-38% healthy; >42% is a structural problem. Workers' comp on window cleaning is brutal — 4.5%-9.2% of payroll for ground crews, 12%-22% for high-rise rope-access work. 2027 minimum-wage moves in California ($17.50), Washington ($17.30), and New York City ($17.00) push the band upward.

Named example: Labor Panes discloses 34% labor cost at $210k revenue/truck — a function of piece-rate-flavored bonuses layered on hourly base.

Failure mode: Paying purely hourly with no production link. Crews paid 100% hourly hit roughly 8 stops/day; crews on a hybrid hourly-plus-per-stop bonus average 10.4 stops/day with no change in quality scores.

Real Operators

Failure Modes

  1. Tracking revenue but not stops per day. Owners who only watch the bank balance miss the single most actionable KPI. A 15% lift in jobs/crew/day usually requires only routing fixes and a paid-per-stop bonus — and adds $30k-$60k per truck per year.
  2. Discounting first-time customers without a repeat-booking play. A $99 first clean is fine if the technician closes a $345 quarterly contract on site. Without that close, the operator is buying $99 of revenue at $140 of cost.
  3. Confusing repeat customers with contracted recurring. Buyers pay 3.5-4.5x SDE for contracted recurring and 1.8-2.2x for "they call when they need us." The KPI must isolate the contracted slice.
  4. Adding a truck before the first one hits revenue band. A second truck at $80k of revenue is worse than one truck at $180k — fixed cost doubles, gross margin halves.
  5. Pricing on hourly rate instead of average ticket. Customers buy the outcome (clean windows, all-in), not the input (90 minutes of labor). Operators who switch from hourly quoting to flat-rate packaging lift average ticket 18-26% in the first 90 days.
  6. Ignoring workers' comp class-code optimization. A correctly-coded ground-only crew at WC code 9402 versus 5474 saves 3-5 points of payroll cost — pure margin recapture with no operational change.

Reporting Cadence

CadenceKPIsOwner Action
DailyJobs per crew per day, completed stops, call-backs15-min huddle next morning; reroute stuck trucks
WeeklyAverage ticket, route density, labor % of revenueFriday 30-min ops review; pricing & route fixes
MonthlyRevenue per truck, gross margin, recurring %First-Tuesday financial review; truck-add decisions
QuarterlyFirst-to-repeat conversion, recurring contract countSales playbook review; QBR with top 20 commercial accounts
AnnualAll 9, plus valuation multiple modelingStrategic plan + insurance/WC class-code audit

The daily three are the operating heartbeat. The monthly three drive truck-add and pricing decisions. The quarterly two drive the enterprise-value story.

30 / 60 / 90 Day Implementation

Days 1-30 — Instrument: Pick a field-service platform (Jobber for <$1M, Housecall Pro for $1-3M, ServiceTitan for $3M+). Turn on per-job timestamping. Get 3 daily KPIs (stops/day, average ticket, call-backs) into one dashboard. Reconcile to bank weekly. Cost: $169-$415/mo software + 12-15 hours of owner setup time.

Days 31-60 — Rebuild route + pricing: Run monthly route resequencing in software. Convert hourly quotes to 3-tier flat packages (Standard / Premium / Complete) anchored at $285 / $385 / $545. Audit the recurring book — separate contracted from frequently-rebooks. Push contracted recurring from baseline to 50%+ via on-site close.

Days 61-90 — Compensation + sales close: Move techs from pure hourly to hourly + $8-$18 per completed stop to lift jobs/crew/day by 20-30%. Add a next-clean booking step to every tablet checklist to lift first-to-repeat conversion to 35%+. Begin weekly call-back audits with photo review.

Owners who complete all 90 days typically see revenue per truck rise 22-34% and net margin move from 6-9% to 14-19% without adding headcount.

flowchart TD A[Route Densityunder br/over stops per route-mile] --> B[Jobs per Crew per Day] C[Average Ticket] --> D[Revenue per Truck] B --> D E[Recurring Revenue %] --> F[Gross Margin] A --> F G[First-to-Repeat Conversion] --> E H[Call-Back / Rework Rate] --> F H --> I[Labor % of Revenue] D --> J[Net Margin] F --> J I --> J
flowchart LR A[Days 1-30under br/over Instrument the truckunder br/over Stops/day + ticket + call-backs] --> B[Days 31-60under br/over Route + pricing rebuildunder br/over Density + recurring %] B --> C[Days 61-90under br/over Compensation + sales closeunder br/over Labor % + repeat conversion]

Related on PULSE

FAQ

What is the single most important KPI for a window cleaning company? Route density (stops per route-mile) is the most critical because it directly drives profitability. A density above 1.4 stops per route-mile typically allows crews to complete more jobs in less time, boosting margins and revenue per truck.

How many jobs should a residential crew complete per day? Aim for 8 to 12 stops per day, with a strong target of 10. This range balances quality work with efficiency, and hitting 10 consistently often correlates with healthy gross margins and customer satisfaction.

What is a good average ticket price for window cleaning? For residential work, an average ticket between $285 and $425 is typical, with $350+ being a strong target. Commercial jobs can vary more, but aiming for $250 or higher per visit helps ensure profitable routes.

How much of my revenue should come from recurring customers? Recurring revenue should make up 40% to 60% of your total. A rate above 50% is ideal, as it provides predictable income and reduces the cost of constantly acquiring new one-time clients.

What gross margin should I expect for a window cleaning business? Healthy gross margins range from 55% to 70%. Staying above 60% is a solid benchmark, while margins below 55% may indicate issues with pricing, labor efficiency, or route density that need attention.

How can I reduce call-backs and rework? Keep your call-back rate under 3% by investing in thorough training, using quality tools, and implementing a simple pre-job checklist. Most rework stems from missed spots or streaks, so clear protocols and a quick quality check before leaving each job can minimize issues.

Sources

Download:
Was this helpful?  
⌬ Apply this in PULSE
Gross Profit CalculatorModel margin per deal, per rep, per territory