AquaClear Pools Case Study Home Customer Stories AquaClear Pools AquaClear Pools Rebuilt Routes for 1,400 Customers with Upper An 18-technician pool service company in Houston replaced three-year-old patchwork routes with geography-based optimization, cut average drive time between pools from 18 minutes to 7 minutes, reduced fuel costs by $3,800 per month, and absorbed a 14% customer increase with zero additional staff. In Conversation with James Whitfield, Owner, AquaClear Pools Key Results 61% Reduction in average drive time between pools $3.8K Monthly fuel cost savings across the fleet 200 New customers added without hiring 95% Drop in late-service customer complaints The Challenge Pool service is a trust business. Customers hand over a key to their backyard gate, expect their pool to be clean when they get home from work, and rarely think about it beyond that. The relationship works until the tech starts showing up late, or stops showing up on a consistent day entirely. Then trust erodes fast. James Whitfield, owner of AquaClear Pools in Houston, was watching that trust erode across his customer base. Not because his technicians were unreliable, but because his routes were. AquaClear had grown from 600 customers and 8 technicians to 1,400 customers and 18 technicians over three years. The routes, however, hadn’t been rebuilt since the early days. New customers were simply bolted onto whichever technician had room in their schedule, with no consideration for geography. The Skimmer app handled customer management and service records well, but it offered no route optimization. The routing was done by hand and, increasingly, by habit. The result was routes that defied logic. Technician #7 would service three pools in Katy, drive 35 minutes to Sugar Land for two pools, then drive 30 minutes back north to Katy for four more. Technician #12 had customers scattered across three zip codes that formed a triangle with 40-minute sides. Every technician had a version of the same problem: their route was a historical artifact, not a plan. Fuel waste: James estimated the fleet was burning $4,000+ per month in unnecessary fuel from backtracking and geographic inefficiency. With gas prices in Houston fluctuating between $3.00 and $3.50 per gallon, every wasted mile cut directly into margins. Late-day service: Customers expected service between 8am and 2pm. But with routes running inefficiently, several technicians weren’t finishing until 5pm or later. Pools serviced at 4:30pm meant the homeowner came home to a wet deck and a truck still in the driveway. Lost customers: Two longtime customers canceled specifically because their technician kept arriving late in the afternoon. In pool service, losing a recurring weekly customer means losing $150–200 per month in perpetuity. James took those cancellations personally. Onboarding gridlock: When new customers signed up, James didn’t know which technician to assign them to. He’d pick whoever seemed least overloaded, regardless of where the customer lived. The routes got messier with every new account. We grew from 600 to 1,400 customers in three years, and I never once sat down and said, ‘Let’s redesign these routes from scratch.’ I just kept adding customers to whoever had a slot open. By the time I realized how bad it was, my guys were crisscrossing Houston like they were trying to draw something on the map. James Whitfield Owner, AquaClear Pools The wake-up call came during a ride-along with one of his newer technicians. James spent the morning watching the tech drive from Cypress to Tomball (22 minutes), back south to Spring (18 minutes), east to Humble (25 minutes), then back west past Tomball again to hit a pool in Magnolia. Three of the pools they passed on the highway were AquaClear customers serviced by a different tech on a different day. James pulled out his phone, looked at the full week’s schedule, and realized that the same pattern repeated across almost every route on every day of the week. He started looking for a solution that afternoon. The Solution James needed to do something he’d been avoiding for three years: tear down every route and rebuild from scratch. The manual approach would have taken weeks. He’d need to map 1,400 addresses, group them by geography, balance the load across 18 technicians and five service days, and create a repeatable weekly schedule. The thought of doing it in a spreadsheet was paralyzing. Upper made it possible in a single afternoon. James exported his full customer list from Skimmer, including addresses, assigned service days, and average service duration (25 minutes per pool). He imported the spreadsheet into Upper using the CSV import feature, drew territory zones on the map for each area of the Houston metro, and ran multi-driver optimization across all 18 technicians. I’d been putting off the route rebuild because I thought it would take me two weeks of evenings with a spreadsheet. I uploaded the CSV on a Tuesday afternoon and had all 1,400 customers redistributed and optimized by dinner. Three years of route debt, fixed in one sitting. James Whitfield Owner, AquaClear Pools Redistributing 1,400 Customers by Geography, Not History The core problem was that AquaClear’s routes were organized by chronology: each customer was on whichever technician’s list they were added to when they signed up. Upper’s route optimization reorganized all 1,400 customers purely by geography and capacity. Each technician received approximately 78 pools per week, clustered tightly within their assigned zone. Monday through Friday, the tech worked a defined geographic area, moving from pool to pool with minimal windshield time. The average drive time between stops dropped from 18 minutes to 7 minutes overnight. The geographic clustering also meant that when a tech pulled up to a customer’s house, the next three or four stops were within a few minutes. The routes felt logical. Technicians could see the pattern on the map and understand why they were going where they were going, which mattered for buy-in. Recurring Route Templates That Hold Up Week After Week Pool service runs on weekly recurring schedules. Each customer gets the same service day every week, and technicians build their rhythm around that consistency. James needed optimized routes that he could save and repeat, not a system that required re-optimization every Monday morning. Upper’s route scheduling allowed James to save each day’s optimized route as a template. Monday’s routes for all 18 techs were saved as a reusable schedule. Same for Tuesday through Friday. Each week, the techs loaded their saved routes and followed the same efficient sequence. When a new customer signed up, James added them to the nearest technician’s zone and re-optimized just that day’s route. The rest of the week’s templates stayed intact. Growth no longer meant chaos. Scaling Without Hiring Through Recovered Capacity Before the route rebuild, AquaClear’s technicians were maxed out. Not because the work volume was too high, but because they were spending too much time driving. A technician servicing 15 pools per day with 18 minutes of drive time between each stop lost over four hours just sitting in the truck. After optimization cut drive times to an average of 7 minutes between stops, each technician recovered enough time in their day for 3–4 additional pools without extending their working hours. Across 18 technicians, that represented significant unused capacity. James tested it immediately. Over the next quarter, AquaClear signed 200 new customers. Every one of them was absorbed into existing routes by adding them to the nearest technician’s zone and re-optimizing. No new hires. No new trucks. No overtime. I added 200 customers in three months and didn’t hire a single person. My guys are finishing earlier than they used to, servicing more pools, and nobody’s complaining about long days. That’s what cleaning up your routes does. James Whitfield Owner, AquaClear Pools The Impact The route rebuild transformed AquaClear from a company struggling to keep up with its own growth into one that could absorb new customers without friction. Technicians who had been finishing routes at 5pm were now done by 3pm. Customers who had been calling to complain about late-afternoon service stopped calling. The two customers who had canceled before the switch both re-signed within two months after James reached out to let them know their service times had changed. The financial impact was substantial and immediate. Fuel costs dropped $3,800 per month. Revenue from the 200 new customers added roughly $35,000 per month in recurring income, all absorbed without additional labor costs. James estimated the total ROI of the route rebuild at over $450,000 annualized when combining fuel savings, new revenue, and avoided hiring costs. Performance Metrics Metrics Before Upper After Upper Average drive time between pools 18 minutes 7 minutes Route completion time 5pm+ (some techs) Before 3pm (all techs) Monthly fuel costs $4,000+ wasted $3,800/mo savings Customer complaints (late service) Frequent, 2 cancellations 95% reduction New customers added (Q1 post-switch) Growth stalled +200, no new hires Pools per tech per week ~78 (unbalanced) ~78 (geographically clustered) Time to onboard new customer to routes 30+ min manual assignment 5 min (add to zone, re-optimize) For James, the biggest change was psychological. He no longer dreaded new customer sign-ups or worried about which technician to assign them to. Growth went from a source of operational anxiety to something the system handled naturally. The routes that had been patched together over three years of rapid expansion were replaced with a structure that could scale for the next three years without breaking. The routes used to be the thing that kept me up at night. Now they’re the thing I don’t have to think about. I open Upper, load the day’s template, and my guys know exactly where they’re going. If that sounds boring, good. Boring is exactly what I wanted. James Whitfield Owner, AquaClear Pools
AquaClear Pools Rebuilt Routes for 1,400 Customers with Upper An 18-technician pool service company in Houston replaced three-year-old patchwork routes with geography-based optimization, cut average drive time between pools from 18 minutes to 7 minutes, reduced fuel costs by $3,800 per month, and absorbed a 14% customer increase with zero additional staff. In Conversation with James Whitfield, Owner, AquaClear Pools
The Challenge Pool service is a trust business. Customers hand over a key to their backyard gate, expect their pool to be clean when they get home from work, and rarely think about it beyond that. The relationship works until the tech starts showing up late, or stops showing up on a consistent day entirely. Then trust erodes fast. James Whitfield, owner of AquaClear Pools in Houston, was watching that trust erode across his customer base. Not because his technicians were unreliable, but because his routes were. AquaClear had grown from 600 customers and 8 technicians to 1,400 customers and 18 technicians over three years. The routes, however, hadn’t been rebuilt since the early days. New customers were simply bolted onto whichever technician had room in their schedule, with no consideration for geography. The Skimmer app handled customer management and service records well, but it offered no route optimization. The routing was done by hand and, increasingly, by habit. The result was routes that defied logic. Technician #7 would service three pools in Katy, drive 35 minutes to Sugar Land for two pools, then drive 30 minutes back north to Katy for four more. Technician #12 had customers scattered across three zip codes that formed a triangle with 40-minute sides. Every technician had a version of the same problem: their route was a historical artifact, not a plan. Fuel waste: James estimated the fleet was burning $4,000+ per month in unnecessary fuel from backtracking and geographic inefficiency. With gas prices in Houston fluctuating between $3.00 and $3.50 per gallon, every wasted mile cut directly into margins. Late-day service: Customers expected service between 8am and 2pm. But with routes running inefficiently, several technicians weren’t finishing until 5pm or later. Pools serviced at 4:30pm meant the homeowner came home to a wet deck and a truck still in the driveway. Lost customers: Two longtime customers canceled specifically because their technician kept arriving late in the afternoon. In pool service, losing a recurring weekly customer means losing $150–200 per month in perpetuity. James took those cancellations personally. Onboarding gridlock: When new customers signed up, James didn’t know which technician to assign them to. He’d pick whoever seemed least overloaded, regardless of where the customer lived. The routes got messier with every new account. We grew from 600 to 1,400 customers in three years, and I never once sat down and said, ‘Let’s redesign these routes from scratch.’ I just kept adding customers to whoever had a slot open. By the time I realized how bad it was, my guys were crisscrossing Houston like they were trying to draw something on the map. James Whitfield Owner, AquaClear Pools The wake-up call came during a ride-along with one of his newer technicians. James spent the morning watching the tech drive from Cypress to Tomball (22 minutes), back south to Spring (18 minutes), east to Humble (25 minutes), then back west past Tomball again to hit a pool in Magnolia. Three of the pools they passed on the highway were AquaClear customers serviced by a different tech on a different day. James pulled out his phone, looked at the full week’s schedule, and realized that the same pattern repeated across almost every route on every day of the week. He started looking for a solution that afternoon. The Solution James needed to do something he’d been avoiding for three years: tear down every route and rebuild from scratch. The manual approach would have taken weeks. He’d need to map 1,400 addresses, group them by geography, balance the load across 18 technicians and five service days, and create a repeatable weekly schedule. The thought of doing it in a spreadsheet was paralyzing. Upper made it possible in a single afternoon. James exported his full customer list from Skimmer, including addresses, assigned service days, and average service duration (25 minutes per pool). He imported the spreadsheet into Upper using the CSV import feature, drew territory zones on the map for each area of the Houston metro, and ran multi-driver optimization across all 18 technicians. I’d been putting off the route rebuild because I thought it would take me two weeks of evenings with a spreadsheet. I uploaded the CSV on a Tuesday afternoon and had all 1,400 customers redistributed and optimized by dinner. Three years of route debt, fixed in one sitting. James Whitfield Owner, AquaClear Pools Redistributing 1,400 Customers by Geography, Not History The core problem was that AquaClear’s routes were organized by chronology: each customer was on whichever technician’s list they were added to when they signed up. Upper’s route optimization reorganized all 1,400 customers purely by geography and capacity. Each technician received approximately 78 pools per week, clustered tightly within their assigned zone. Monday through Friday, the tech worked a defined geographic area, moving from pool to pool with minimal windshield time. The average drive time between stops dropped from 18 minutes to 7 minutes overnight. The geographic clustering also meant that when a tech pulled up to a customer’s house, the next three or four stops were within a few minutes. The routes felt logical. Technicians could see the pattern on the map and understand why they were going where they were going, which mattered for buy-in. Recurring Route Templates That Hold Up Week After Week Pool service runs on weekly recurring schedules. Each customer gets the same service day every week, and technicians build their rhythm around that consistency. James needed optimized routes that he could save and repeat, not a system that required re-optimization every Monday morning. Upper’s route scheduling allowed James to save each day’s optimized route as a template. Monday’s routes for all 18 techs were saved as a reusable schedule. Same for Tuesday through Friday. Each week, the techs loaded their saved routes and followed the same efficient sequence. When a new customer signed up, James added them to the nearest technician’s zone and re-optimized just that day’s route. The rest of the week’s templates stayed intact. Growth no longer meant chaos. Scaling Without Hiring Through Recovered Capacity Before the route rebuild, AquaClear’s technicians were maxed out. Not because the work volume was too high, but because they were spending too much time driving. A technician servicing 15 pools per day with 18 minutes of drive time between each stop lost over four hours just sitting in the truck. After optimization cut drive times to an average of 7 minutes between stops, each technician recovered enough time in their day for 3–4 additional pools without extending their working hours. Across 18 technicians, that represented significant unused capacity. James tested it immediately. Over the next quarter, AquaClear signed 200 new customers. Every one of them was absorbed into existing routes by adding them to the nearest technician’s zone and re-optimizing. No new hires. No new trucks. No overtime. I added 200 customers in three months and didn’t hire a single person. My guys are finishing earlier than they used to, servicing more pools, and nobody’s complaining about long days. That’s what cleaning up your routes does. James Whitfield Owner, AquaClear Pools The Impact The route rebuild transformed AquaClear from a company struggling to keep up with its own growth into one that could absorb new customers without friction. Technicians who had been finishing routes at 5pm were now done by 3pm. Customers who had been calling to complain about late-afternoon service stopped calling. The two customers who had canceled before the switch both re-signed within two months after James reached out to let them know their service times had changed. The financial impact was substantial and immediate. Fuel costs dropped $3,800 per month. Revenue from the 200 new customers added roughly $35,000 per month in recurring income, all absorbed without additional labor costs. James estimated the total ROI of the route rebuild at over $450,000 annualized when combining fuel savings, new revenue, and avoided hiring costs. Performance Metrics Metrics Before Upper After Upper Average drive time between pools 18 minutes 7 minutes Route completion time 5pm+ (some techs) Before 3pm (all techs) Monthly fuel costs $4,000+ wasted $3,800/mo savings Customer complaints (late service) Frequent, 2 cancellations 95% reduction New customers added (Q1 post-switch) Growth stalled +200, no new hires Pools per tech per week ~78 (unbalanced) ~78 (geographically clustered) Time to onboard new customer to routes 30+ min manual assignment 5 min (add to zone, re-optimize) For James, the biggest change was psychological. He no longer dreaded new customer sign-ups or worried about which technician to assign them to. Growth went from a source of operational anxiety to something the system handled naturally. The routes that had been patched together over three years of rapid expansion were replaced with a structure that could scale for the next three years without breaking. The routes used to be the thing that kept me up at night. Now they’re the thing I don’t have to think about. I open Upper, load the day’s template, and my guys know exactly where they’re going. If that sounds boring, good. Boring is exactly what I wanted. James Whitfield Owner, AquaClear Pools
The Challenge Pool service is a trust business. Customers hand over a key to their backyard gate, expect their pool to be clean when they get home from work, and rarely think about it beyond that. The relationship works until the tech starts showing up late, or stops showing up on a consistent day entirely. Then trust erodes fast. James Whitfield, owner of AquaClear Pools in Houston, was watching that trust erode across his customer base. Not because his technicians were unreliable, but because his routes were. AquaClear had grown from 600 customers and 8 technicians to 1,400 customers and 18 technicians over three years. The routes, however, hadn’t been rebuilt since the early days. New customers were simply bolted onto whichever technician had room in their schedule, with no consideration for geography. The Skimmer app handled customer management and service records well, but it offered no route optimization. The routing was done by hand and, increasingly, by habit. The result was routes that defied logic. Technician #7 would service three pools in Katy, drive 35 minutes to Sugar Land for two pools, then drive 30 minutes back north to Katy for four more. Technician #12 had customers scattered across three zip codes that formed a triangle with 40-minute sides. Every technician had a version of the same problem: their route was a historical artifact, not a plan. Fuel waste: James estimated the fleet was burning $4,000+ per month in unnecessary fuel from backtracking and geographic inefficiency. With gas prices in Houston fluctuating between $3.00 and $3.50 per gallon, every wasted mile cut directly into margins. Late-day service: Customers expected service between 8am and 2pm. But with routes running inefficiently, several technicians weren’t finishing until 5pm or later. Pools serviced at 4:30pm meant the homeowner came home to a wet deck and a truck still in the driveway. Lost customers: Two longtime customers canceled specifically because their technician kept arriving late in the afternoon. In pool service, losing a recurring weekly customer means losing $150–200 per month in perpetuity. James took those cancellations personally. Onboarding gridlock: When new customers signed up, James didn’t know which technician to assign them to. He’d pick whoever seemed least overloaded, regardless of where the customer lived. The routes got messier with every new account.
We grew from 600 to 1,400 customers in three years, and I never once sat down and said, ‘Let’s redesign these routes from scratch.’ I just kept adding customers to whoever had a slot open. By the time I realized how bad it was, my guys were crisscrossing Houston like they were trying to draw something on the map. James Whitfield Owner, AquaClear Pools
The wake-up call came during a ride-along with one of his newer technicians. James spent the morning watching the tech drive from Cypress to Tomball (22 minutes), back south to Spring (18 minutes), east to Humble (25 minutes), then back west past Tomball again to hit a pool in Magnolia. Three of the pools they passed on the highway were AquaClear customers serviced by a different tech on a different day. James pulled out his phone, looked at the full week’s schedule, and realized that the same pattern repeated across almost every route on every day of the week. He started looking for a solution that afternoon.
The Solution James needed to do something he’d been avoiding for three years: tear down every route and rebuild from scratch. The manual approach would have taken weeks. He’d need to map 1,400 addresses, group them by geography, balance the load across 18 technicians and five service days, and create a repeatable weekly schedule. The thought of doing it in a spreadsheet was paralyzing. Upper made it possible in a single afternoon. James exported his full customer list from Skimmer, including addresses, assigned service days, and average service duration (25 minutes per pool). He imported the spreadsheet into Upper using the CSV import feature, drew territory zones on the map for each area of the Houston metro, and ran multi-driver optimization across all 18 technicians.
I’d been putting off the route rebuild because I thought it would take me two weeks of evenings with a spreadsheet. I uploaded the CSV on a Tuesday afternoon and had all 1,400 customers redistributed and optimized by dinner. Three years of route debt, fixed in one sitting. James Whitfield Owner, AquaClear Pools
Redistributing 1,400 Customers by Geography, Not History The core problem was that AquaClear’s routes were organized by chronology: each customer was on whichever technician’s list they were added to when they signed up. Upper’s route optimization reorganized all 1,400 customers purely by geography and capacity. Each technician received approximately 78 pools per week, clustered tightly within their assigned zone. Monday through Friday, the tech worked a defined geographic area, moving from pool to pool with minimal windshield time. The average drive time between stops dropped from 18 minutes to 7 minutes overnight. The geographic clustering also meant that when a tech pulled up to a customer’s house, the next three or four stops were within a few minutes. The routes felt logical. Technicians could see the pattern on the map and understand why they were going where they were going, which mattered for buy-in.
Recurring Route Templates That Hold Up Week After Week Pool service runs on weekly recurring schedules. Each customer gets the same service day every week, and technicians build their rhythm around that consistency. James needed optimized routes that he could save and repeat, not a system that required re-optimization every Monday morning. Upper’s route scheduling allowed James to save each day’s optimized route as a template. Monday’s routes for all 18 techs were saved as a reusable schedule. Same for Tuesday through Friday. Each week, the techs loaded their saved routes and followed the same efficient sequence. When a new customer signed up, James added them to the nearest technician’s zone and re-optimized just that day’s route. The rest of the week’s templates stayed intact. Growth no longer meant chaos.
Scaling Without Hiring Through Recovered Capacity Before the route rebuild, AquaClear’s technicians were maxed out. Not because the work volume was too high, but because they were spending too much time driving. A technician servicing 15 pools per day with 18 minutes of drive time between each stop lost over four hours just sitting in the truck. After optimization cut drive times to an average of 7 minutes between stops, each technician recovered enough time in their day for 3–4 additional pools without extending their working hours. Across 18 technicians, that represented significant unused capacity. James tested it immediately. Over the next quarter, AquaClear signed 200 new customers. Every one of them was absorbed into existing routes by adding them to the nearest technician’s zone and re-optimizing. No new hires. No new trucks. No overtime.
I added 200 customers in three months and didn’t hire a single person. My guys are finishing earlier than they used to, servicing more pools, and nobody’s complaining about long days. That’s what cleaning up your routes does. James Whitfield Owner, AquaClear Pools
The Impact The route rebuild transformed AquaClear from a company struggling to keep up with its own growth into one that could absorb new customers without friction. Technicians who had been finishing routes at 5pm were now done by 3pm. Customers who had been calling to complain about late-afternoon service stopped calling. The two customers who had canceled before the switch both re-signed within two months after James reached out to let them know their service times had changed. The financial impact was substantial and immediate. Fuel costs dropped $3,800 per month. Revenue from the 200 new customers added roughly $35,000 per month in recurring income, all absorbed without additional labor costs. James estimated the total ROI of the route rebuild at over $450,000 annualized when combining fuel savings, new revenue, and avoided hiring costs.
Performance Metrics Metrics Before Upper After Upper Average drive time between pools 18 minutes 7 minutes Route completion time 5pm+ (some techs) Before 3pm (all techs) Monthly fuel costs $4,000+ wasted $3,800/mo savings Customer complaints (late service) Frequent, 2 cancellations 95% reduction New customers added (Q1 post-switch) Growth stalled +200, no new hires Pools per tech per week ~78 (unbalanced) ~78 (geographically clustered) Time to onboard new customer to routes 30+ min manual assignment 5 min (add to zone, re-optimize)
For James, the biggest change was psychological. He no longer dreaded new customer sign-ups or worried about which technician to assign them to. Growth went from a source of operational anxiety to something the system handled naturally. The routes that had been patched together over three years of rapid expansion were replaced with a structure that could scale for the next three years without breaking.
The routes used to be the thing that kept me up at night. Now they’re the thing I don’t have to think about. I open Upper, load the day’s template, and my guys know exactly where they’re going. If that sounds boring, good. Boring is exactly what I wanted. James Whitfield Owner, AquaClear Pools