THE SHORT ANSWER
Phoenix is the best large U.S. metro for a pool route in our index of 196 metros: it scores 90 of 100 and stays in the top 10 under all 10,000 random weightings. 12 of the top 25 are in Florida, but Miami, with the #3 pool base in the country, ranks #46, with 40 building-service businesses per 1,000 estimated pool homes. Built from Census, NOAA, BLS and EIA data, October 2026.
Key findings
90 of 100
Phoenix, AZ scores 90 of 100 and finishes in the top 10 in 100% of 10,000 random weightings. Behind it, Austin, Jacksonville and Sacramento finish in the top 10 in 82%–91% of weightings.
12 of 25
12 of the top 25 metros are in Florida and all 25 are in the Sun Belt. Florida metros win on pool homes, season and growth, and lose points on storm downtime and, in several metros, on crowding.
#46
Miami has the #3 pool base in the country but 40 building-service businesses per 1,000 estimated pool homes, against 11 in Phoenix and a median of 19. It ranks #46.
#4 to #34
Below the top few, rank is a range: only 4 metros finish in the top 10 in at least 80% of weightings, and Tampa, ranked #10, lands between #4 and #34 in 90% of weightings.
#3 → #31
No public source counts pools by metro. With Duval County’s property-roll rate (pools on 11% of single-family parcels) instead of the state estimate (34%), Jacksonville drops from #3 to #31.
Method: seven things that make a pool route work
We scored every U.S. metro area with at least 250,000 residents on seven pillars an owner would weigh before starting or expanding a route. Each metric is turned into a percentile rank among the 196 metros (0 = worst, 100 = best for an owner), so one extreme value cannot swamp the rest. Storm downtime is the exception: its differences are small (0 to 2.5 workdays a year) and many metros sit at zero, so it is scaled linearly between the lowest and highest metro instead. “Sun Belt” in this report means the southern states from California to the Carolinas. Pillars average their metrics; the index is the weighted sum of pillars.
| Pillar | Weight | Metric | Better is | Scaling |
|---|---|---|---|---|
| Pool base | 25% | Estimated owner-occupied detached homes with a pool | higher | percentile |
| Customers who can pay | 10% | Share of owner households earning $100,000+ | higher | percentile |
| Season length | 20% | Days a year with a normal high of 80°F+ | higher | percentile |
| Days a year with a low of 32°F or below | lower | percentile | ||
| Growth | 15% | Population growth since 2020 | higher | percentile |
| New single-family homes permitted per 1,000 households (2025) | higher | percentile | ||
| Room in the market | 15% | Building-service businesses (NAICS 561790, employer + nonemployer) per 1,000 estimated pool homes | lower | percentile |
| Labor cost vs. customer income | 5% | Annualized median wage of a groundskeeping worker (SOC 37-3011, proxy for a pool tech) / median household income | lower | percentile |
| Storm downtime | 10% | Expected route workdays lost to storm winds per year (No. 09, central case) | lower | linear |
How the pool base is estimated
The Census counts homes, not pools, and County Business Patterns has no pool-service category. So the pool base is owner-occupied single-family detached homes (ACS 2020–2024) × the share of such homes with a pool in the metro’s state, from the federal Residential Energy Consumption Survey (EIA RECS 2020, 18,496 households; nationally 11.4% of owner-occupied detached homes have a pool). RECS is designed for state estimates, not metros, and does not distinguish in-ground from above-ground pools.
Room in the market
Competition is measured as businesses in NAICS 561790, “Other services to buildings and dwellings”, per 1,000 estimated pool homes, counting both employer establishments (County Business Patterns 2023) and one-person businesses without payroll (Nonemployer Statistics 2024, where the code is 56179). Pool cleaning sits in that code, but so do building-exterior (pressure-wash), chimney, duct and gutter cleaning. It is the closest public measure, and it is broad.
Sensitivity
Weights are judgment, so we tested them three ways: equal weights; each pillar dropped and each pillar doubled; and 10,000 random weightings drawn around our weights (a Dirichlet distribution, so any pillar can swing from near zero to well above its base weight; the small pillars can drop to near zero, the large ones rarely below a third of their base). A rank we report as robust survives all three.
Sample and coverage
All 196 metropolitan statistical areas (July 2023 delineation) with a 2025 population of 250,000 or more, in the 50 states and D.C.; Puerto Rico is outside the scope. Metros that cross state lines blend each state’s pool rate by the population of their counties in that state.
Missing values: Laredo, TX has no published County Business Patterns row for NAICS 561790, and RECS found no pools in its Alaska sample, so Laredo and Anchorage get no Room score; Anchorage and Honolulu are outside the storm model. A missing pillar is left out and the metro’s other weights are rescaled. Climate comes from the nearest NOAA station to each metro’s population center (196 metros matched, airport stations preferred, all within 29 miles).
| Input | Vintage |
|---|---|
| ACS 5-year (homes, income) | 2020–2024 |
| Population estimates | Vintage 2025 |
| Building permits | 2025 |
| County Business Patterns | 2023 |
| Nonemployer Statistics | 2024 |
| NOAA climate normals | 1991–2020 |
| BLS OEWS wages (No. 06) | May 2025 |
| EIA RECS pools | 2020 |
| Storm model (No. 09) | 2004–2025 |
The top 25: Phoenix first, Florida everywhere
Source: Ruberio Pool Route Opportunity Index, Oct 2026. Full ranking in section 09.
Phoenix scores 65 or higher on every pillar; most Florida metros pay for storms and, in some places, for crowding.
Source: Ruberio Pool Route Opportunity Index.
Which rankings survive a change of weights
If you care more about season than growth, or don’t mind storms, the order changes. The chart shows where each of the current top 20 lands across 10,000 random weightings: the dot is the median rank, the bar covers 90% of outcomes.
Source: Ruberio Pool Route Opportunity Index, sensitivity analysis.
| Metro | Rank | Equal weights | No pool base | No season | No room | No storms | Top-10 share |
|---|---|---|---|---|---|---|---|
| Phoenix, AZ | 1 | 1 | 1 | 1 | 1 | 1 | 100% |
| Austin, TX | 2 | 2 | 2 | 2 | 2 | 5 | 90% |
| Jacksonville, FL | 3 | 8 | 5 | 5 | 9 | 2 | 91% |
| Sacramento, CA | 4 | 4 | 6 | 4 | 5 | 8 | 82% |
| Dallas, TX | 5 | 3 | 8 | 3 | 3 | 10 | 70% |
| Orlando, FL | 6 | 16 | 14 | 15 | 8 | 3 | 69% |
| Las Vegas, NV | 7 | 10 | 10 | 8 | 6 | 16 | 56% |
| Tucson, AZ | 8 | 22 | 9 | 12 | 18 | 18 | 47% |
| North Port, FL | 9 | 18 | 11 | 22 | 12 | 4 | 49% |
| Tampa, FL | 10 | 30 | 19 | 24 | 14 | 7 | 45% |
The crowded coast: where pool homes and competitors pile up
Size is not the same as opportunity. Of the 57 metros with 25,000 or more estimated pool homes, the chart puts market size against the number of building-service businesses per 1,000 pool homes. Miami stands apart: the third-largest pool base (after New York and Phoenix) and one of the most crowded. Phoenix, Tampa and Jacksonville combine a large base with far fewer businesses per pool home. Much of the crowding is one-person businesses without payroll, and in this code those include pressure-washing, gutter and duct-cleaning crews as well as pool techs.
Businesses = NAICS 561790 employer establishments (2023) + nonemployers (2024); this code also covers pressure-wash, chimney, duct and gutter cleaning.
Source: Census County Business Patterns, Nonemployer Statistics, ACS; EIA RECS 2020; Ruberio estimate of pool homes.
A seasonal revenue risk atlas
A route in a short-season metro typically earns most of its money in a few months and spends the rest on openings, closings and equipment work. The atlas shows, for every metro, how many days a year the normal high reaches 80°F (color) and how many pool homes it has (dot size). Normals are 30-year averages (1991–2020), not this year’s weather.
Source: NOAA NCEI U.S. Climate Normals 1991–2020 (nearest station to each metro’s population center); Ruberio estimate of pool homes.
| Metro (25 largest pool bases) | Days 80°F+ | Frost days | Share of year below 80°F | Storm days lost / yr |
|---|---|---|---|---|
| Miami, FL | 248 | 0 | 32% | 1.4 |
| Phoenix, AZ | 232 | 1 | 36% | 0.0 |
| North Port, FL | 229 | 1 | 37% | 1.6 |
| Tampa, FL | 223 | 1 | 39% | 1.5 |
| Orlando, FL | 222 | 1 | 39% | 1.6 |
| Tucson, AZ | 218 | 12 | 40% | 0.0 |
| Deltona, FL | 196 | 3 | 46% | 1.7 |
| Houston, TX | 193 | 10 | 47% | 0.8 |
| Jacksonville, FL | 193 | 4 | 47% | 1.3 |
| San Antonio, TX | 193 | 14 | 47% | 0.1 |
| Las Vegas, NV | 180 | 10 | 51% | 0.0 |
| Riverside, CA | 164 | 4 | 55% | 0.0 |
| Dallas, TX | 161 | 29 | 56% | 0.0 |
| Sacramento, CA | 156 | 4 | 57% | 0.0 |
| Atlanta, GA | 135 | 49 | 63% | 0.2 |
| Washington, DC | 112 | 60 | 69% | 0.4 |
| Philadelphia, PA | 101 | 77 | 72% | 0.8 |
| Los Angeles, CA | 98 | 0 | 73% | 0.0 |
| Chicago, IL | 84 | 106 | 77% | 0.0 |
| New York, NY | 81 | 67 | 78% | 0.9 |
| San Diego, CA | 75 | 0 | 79% | 0.0 |
| Pittsburgh, PA | 70 | 106 | 81% | 0.1 |
| Detroit, MI | 70 | 112 | 81% | 0.1 |
| Boston, MA | 54 | 92 | 85% | 0.6 |
| San Francisco, CA | 0 | 3 | 100% | 0.0 |
Florida, metro by metro
Every Florida metro of 250,000+ ranks #46 or better, in the top quarter. What separates them is room and storms. On paper the Panhandle and Jacksonville have fewer businesses per estimated pool home and Southwest Florida and Miami have more. But every Florida metro uses the same statewide pool rate, and where we could check it (Duval) the real rate was far lower: the room scores of north Florida metros are likely flattered by it.
| Metro | Rank | Score | Pool base | Season | Growth | Room | Storms | Top-25 share |
|---|---|---|---|---|---|---|---|---|
| Jacksonville, FL | 3 | 82 | 94 | 88 | 87 | 91 | 50 | 99% |
| Orlando, FL | 6 | 79 | 97 | 94 | 85 | 69 | 38 | 95% |
| North Port, FL | 9 | 77 | 90 | 95 | 96 | 64 | 36 | 89% |
| Tampa, FL | 10 | 77 | 98 | 96 | 76 | 77 | 41 | 89% |
| Pensacola, FL | 15 | 75 | 82 | 82 | 84 | 98 | 45 | 83% |
| Crestview, FL | 16 | 74 | 68 | 83 | 90 | 85 | 52 | 79% |
| Palm Bay, FL | 17 | 74 | 86 | 92 | 82 | 92 | 8 | 71% |
| Ocala, FL | 20 | 73 | 78 | 92 | 99 | 96 | 52 | 61% |
| Deltona, FL | 21 | 73 | 88 | 90 | 86 | 88 | 34 | 63% |
| Lakeland, FL | 23 | 72 | 85 | 95 | 97 | 80 | 34 | 57% |
| Cape Coral, FL | 24 | 71 | 87 | 99 | 97 | 42 | 35 | 54% |
| Port St. Lucie, FL | 25 | 71 | 83 | 93 | 96 | 67 | 28 | 54% |
| Naples, FL | 33 | 68 | 71 | 98 | 83 | 25 | 35 | 28% |
| Tallahassee, FL | 35 | 67 | 71 | 80 | 55 | 93 | 59 | 12% |
| Gainesville, FL | 41 | 66 | 66 | 85 | 65 | 94 | 55 | 11% |
| Miami, FL | 46 | 64 | 99 | 99 | 38 | 13 | 44 | 13% |
The full ranking, all 196 metros
Score 0–100. Pillars: Pool = pool base, Pay = customers who can pay, Season, Growth, Room, Labor = labor cost vs. customer income, Storms. Top-25 = share of 10,000 random weightings in which the metro lands in the top 25. – = no data (pillar left out). The data file index_scores.csv has every underlying value.
| # | Metro | Score | Pool | Pay | Season | Growth | Room | Labor | Storms | Top-25 |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Phoenix, AZ | 90 | 99 | 65 | 96 | 80 | 89 | 87 | 100 | 100% |
| 2 | Austin, TX | 83 | 86 | 93 | 84 | 90 | 47 | 98 | 100 | 99% |
| 3 | Jacksonville, FL | 82 | 94 | 54 | 88 | 87 | 91 | 70 | 50 | 99% |
| 4 | Sacramento, CA | 81 | 91 | 86 | 78 | 58 | 76 | 74 | 100 | 100% |
| 5 | Dallas, TX | 80 | 97 | 80 | 71 | 85 | 37 | 94 | 100 | 97% |
| 6 | Orlando, FL | 79 | 97 | 47 | 94 | 85 | 69 | 76 | 38 | 95% |
| 7 | Las Vegas, NV | 78 | 92 | 54 | 84 | 74 | 60 | 56 | 100 | 99% |
| 8 | Tucson, AZ | 78 | 89 | 33 | 87 | 54 | 98 | 33 | 100 | 91% |
| 9 | North Port, FL | 77 | 90 | 42 | 95 | 96 | 64 | 78 | 36 | 89% |
| 10 | Tampa, FL | 77 | 98 | 36 | 96 | 76 | 77 | 52 | 41 | 89% |
| 11 | Houston, TX | 76 | 96 | 71 | 86 | 90 | 19 | 88 | 68 | 83% |
| 12 | Atlanta, GA | 76 | 96 | 73 | 61 | 72 | 50 | 90 | 93 | 90% |
| 13 | San Antonio, TX | 75 | 88 | 53 | 84 | 76 | 45 | 71 | 98 | 91% |
| 14 | Stockton, CA | 75 | 64 | 77 | 77 | 72 | 82 | 62 | 100 | 89% |
| 15 | Pensacola, FL | 75 | 82 | 31 | 82 | 84 | 98 | 66 | 45 | 83% |
| 16 | Crestview, FL | 74 | 68 | 50 | 83 | 90 | 85 | 81 | 52 | 79% |
| 17 | Palm Bay, FL | 74 | 86 | 35 | 92 | 82 | 92 | 72 | 8 | 71% |
| 18 | Huntsville, AL | 73 | 56 | 66 | 63 | 91 | 78 | 89 | 100 | 63% |
| 19 | San Jose, CA | 73 | 83 | 100 | 63 | 17 | 79 | 100 | 100 | 63% |
| 20 | Ocala, FL | 73 | 78 | 0 | 92 | 99 | 96 | 7 | 52 | 61% |
| 21 | Deltona, FL | 73 | 88 | 10 | 90 | 86 | 88 | 42 | 34 | 63% |
| 22 | Riverside, CA | 73 | 94 | 69 | 82 | 55 | 31 | 59 | 100 | 64% |
| 23 | Lakeland, FL | 72 | 85 | 5 | 95 | 97 | 80 | 24 | 34 | 57% |
| 24 | Cape Coral, FL | 71 | 87 | 25 | 99 | 97 | 42 | 61 | 35 | 54% |
| 25 | Port St. Lucie, FL | 71 | 83 | 19 | 93 | 96 | 67 | 58 | 28 | 54% |
| 26 | Nashville, TN | 71 | 82 | 67 | 59 | 86 | 36 | 85 | 100 | 52% |
| 27 | Indianapolis, IN | 71 | 85 | 61 | 37 | 72 | 84 | 64 | 93 | 47% |
| 28 | San Francisco, CA | 69 | 93 | 99 | 46 | 4 | 74 | 99 | 100 | 40% |
| 29 | Fresno, CA | 69 | 74 | 56 | 77 | 57 | 65 | 20 | 100 | 20% |
| 30 | Reno, NV | 69 | 70 | 71 | 38 | 66 | 97 | 40 | 100 | 29% |
| 31 | Baltimore, MD | 68 | 87 | 87 | 52 | 23 | 74 | 96 | 82 | 27% |
| 32 | Philadelphia, PA | 68 | 95 | 78 | 45 | 26 | 86 | 77 | 67 | 27% |
| 33 | Naples, FL | 68 | 71 | 64 | 98 | 83 | 25 | 92 | 35 | 28% |
| 34 | Vallejo, CA | 67 | 51 | 85 | 73 | 29 | 87 | 81 | 100 | 22% |
| 35 | Tallahassee, FL | 67 | 71 | 41 | 80 | 55 | 93 | 21 | 59 | 12% |
| 36 | Washington, DC | 67 | 91 | 99 | 52 | 39 | 30 | 99 | 84 | 22% |
| 37 | Oklahoma City, OK | 67 | 76 | 44 | 55 | 74 | 59 | 46 | 99 | 5% |
| 38 | Los Angeles, CA | 66 | 98 | 92 | 70 | 11 | 19 | 73 | 100 | 22% |
| 39 | San Diego, CA | 66 | 90 | 97 | 61 | 18 | 27 | 92 | 100 | 19% |
| 40 | Louisville/Jefferson County, KY | 66 | 81 | 39 | 50 | 49 | 85 | 44 | 95 | 5% |
| 41 | Gainesville, FL | 66 | 66 | 28 | 85 | 65 | 94 | 5 | 55 | 11% |
| 42 | Richmond, VA | 65 | 69 | 70 | 52 | 67 | 52 | 91 | 80 | 1% |
| 43 | Greenville, SC | 65 | 69 | 23 | 63 | 89 | 54 | 41 | 91 | 3% |
| 44 | Birmingham, AL | 65 | 77 | 32 | 64 | 43 | 75 | 44 | 94 | 1% |
| 45 | Charlotte, NC | 65 | 77 | 61 | 59 | 87 | 13 | 75 | 88 | 6% |
| 46 | Miami, FL | 64 | 99 | 48 | 99 | 38 | 13 | 58 | 44 | 13% |
| 47 | Boston, MA | 64 | 92 | 98 | 26 | 22 | 71 | 92 | 76 | 12% |
| 48 | Charleston, SC | 64 | 62 | 60 | 74 | 91 | 40 | 87 | 38 | 4% |
| 49 | Bakersfield, CA | 63 | 67 | 42 | 81 | 53 | 56 | 2 | 100 | 2% |
| 50 | Cincinnati, OH | 63 | 84 | 63 | 41 | 39 | 62 | 66 | 93 | 0% |
| 51 | Columbia, SC | 63 | 65 | 17 | 70 | 79 | 66 | 31 | 78 | 0% |
| 52 | Pittsburgh, PA | 63 | 93 | 45 | 27 | 16 | 99 | 55 | 95 | 9% |
| 53 | Knoxville, TN | 63 | 65 | 30 | 56 | 79 | 53 | 54 | 95 | 0% |
| 54 | Prescott Valley, AZ | 62 | 63 | 6 | 43 | 77 | 100 | 19 | 100 | 7% |
| 55 | Chattanooga, TN | 62 | 52 | 35 | 61 | 72 | 72 | 51 | 96 | 0% |
| 56 | Santa Rosa, CA | 62 | 54 | 88 | 62 | 23 | 65 | 84 | 100 | 3% |
| 57 | Kansas City, MO | 62 | 79 | 66 | 46 | 48 | 43 | 55 | 100 | 0% |
| 58 | Tulsa, OK | 62 | 67 | 32 | 55 | 68 | 62 | 29 | 100 | 0% |
| 59 | St. Louis, MO | 62 | 84 | 58 | 50 | 23 | 58 | 59 | 98 | 0% |
| 60 | Harrisburg, PA | 62 | 61 | 58 | 40 | 45 | 91 | 63 | 91 | 1% |
| 61 | Lexington, KY | 61 | 55 | 58 | 45 | 55 | 83 | 45 | 97 | 0% |
| 62 | Killeen, TX | 61 | 42 | 30 | 71 | 82 | 63 | 34 | 100 | 1% |
| 63 | Raleigh, NC | 61 | 52 | 88 | 57 | 93 | 10 | 98 | 71 | 4% |
| 64 | Albany, NY | 61 | 75 | 77 | 18 | 31 | 93 | 69 | 88 | 3% |
| 65 | Allentown, PA | 61 | 73 | 65 | 30 | 37 | 88 | 73 | 75 | 0% |
| 66 | Augusta, GA | 60 | 55 | 24 | 77 | 77 | 53 | 29 | 78 | 0% |
| 67 | Seattle, WA | 60 | 75 | 98 | 36 | 42 | 24 | 93 | 100 | 3% |
| 68 | Modesto, CA | 60 | 54 | 59 | 75 | 31 | 68 | 15 | 100 | 0% |
| 69 | Baton Rouge, LA | 59 | 70 | 38 | 81 | 50 | 41 | 35 | 64 | 0% |
| 70 | York, PA | 59 | 58 | 53 | 25 | 48 | 94 | 82 | 88 | 1% |
| 71 | Chicago, IL | 59 | 95 | 76 | 32 | 17 | 39 | 54 | 98 | 1% |
| 72 | New York, NY | 58 | 100 | 96 | 39 | 12 | 21 | 79 | 65 | 2% |
| 73 | Savannah, GA | 58 | 40 | 52 | 78 | 88 | 34 | 64 | 51 | 0% |
| 74 | McAllen, TX | 58 | 58 | 1 | 98 | 82 | 9 | 26 | 84 | 1% |
| 75 | Virginia Beach, VA | 57 | 74 | 67 | 58 | 31 | 44 | 86 | 52 | 0% |
| 76 | Columbus, OH | 57 | 76 | 72 | 37 | 58 | 17 | 65 | 93 | 0% |
| 77 | Trenton, NJ | 57 | 43 | 92 | 35 | 44 | 83 | 96 | 64 | 1% |
| 78 | Memphis, TN | 57 | 72 | 37 | 64 | 31 | 47 | 18 | 98 | 0% |
| 79 | Lancaster, PA | 57 | 57 | 62 | 34 | 32 | 82 | 83 | 83 | 0% |
| 80 | Lafayette, LA | 57 | 48 | 14 | 83 | 68 | 55 | 51 | 57 | 0% |
| 81 | Oxnard, CA | 56 | 66 | 94 | 51 | 8 | 30 | 95 | 100 | 1% |
| 82 | Hartford, CT | 56 | 73 | 85 | 25 | 17 | 75 | 69 | 73 | 0% |
| 83 | Visalia, CA | 56 | 46 | 34 | 75 | 56 | 51 | 3 | 100 | 0% |
| 84 | Slidell, LA | 56 | 37 | 46 | 78 | 71 | 54 | 86 | 33 | 0% |
| 85 | Rochester, NY | 56 | 78 | 52 | 16 | 15 | 97 | 36 | 90 | 0% |
| 86 | Providence, RI | 56 | 81 | 79 | 24 | 22 | 69 | 37 | 71 | 0% |
| 87 | Atlantic City, NJ | 55 | 53 | 55 | 37 | 44 | 84 | 70 | 60 | 0% |
| 88 | Spartanburg, SC | 54 | 36 | 5 | 60 | 96 | 57 | 12 | 91 | 0% |
| 89 | Urban Honolulu, HI | 54 | 47 | 95 | 100 | 4 | 15 | 93 | – | 2% |
| 90 | Laredo, TX | 54 | 13 | 9 | 94 | 73 | – | 47 | 96 | 1% |
| 91 | San Luis Obispo, CA | 54 | 33 | 82 | 44 | 31 | 67 | 71 | 100 | 0% |
| 92 | Hagerstown, MD | 53 | 28 | 43 | 36 | 78 | 70 | 67 | 95 | 0% |
| 93 | Kiryas Joel, NY | 53 | 62 | 83 | 15 | 34 | 72 | 72 | 70 | 0% |
| 94 | Buffalo, NY | 53 | 80 | 45 | 14 | 9 | 99 | 9 | 91 | 0% |
| 95 | Montgomery, AL | 53 | 41 | 11 | 74 | 32 | 79 | 17 | 92 | 0% |
| 96 | Reading, PA | 53 | 50 | 51 | 33 | 26 | 90 | 60 | 78 | 0% |
| 97 | Daphne, AL | 52 | 27 | 29 | 72 | 96 | 32 | 79 | 51 | 0% |
| 98 | Fort Wayne, IN | 52 | 49 | 20 | 25 | 60 | 89 | 27 | 95 | 0% |
| 99 | Worcester, MA | 52 | 63 | 90 | 11 | 31 | 70 | 52 | 76 | 0% |
| 100 | El Paso, TX | 52 | 60 | 4 | 74 | 38 | 28 | 43 | 100 | 0% |
| 101 | Waco, TX | 52 | 24 | 27 | 74 | 59 | 61 | 19 | 98 | 0% |
| 102 | New Orleans, LA | 52 | 72 | 22 | 89 | 7 | 64 | 15 | 28 | 0% |
| 103 | College Station, TX | 52 | 12 | 48 | 82 | 85 | 35 | 12 | 93 | 0% |
| 104 | Lubbock, TX | 52 | 30 | 33 | 57 | 75 | 50 | 23 | 100 | 0% |
| 105 | Merced, CA | 52 | 19 | 22 | 73 | 63 | 73 | 0 | 100 | 0% |
| 106 | Denver, CO | 52 | 57 | 94 | 24 | 55 | 4 | 88 | 100 | 0% |
| 107 | Salt Lake City, UT | 52 | 45 | 84 | 37 | 56 | 14 | 84 | 100 | 0% |
| 108 | Corpus Christi, TX | 52 | 41 | 18 | 91 | 52 | 18 | 48 | 86 | 0% |
| 109 | Manchester, NH | 51 | 44 | 93 | 19 | 26 | 73 | 90 | 79 | 0% |
| 110 | Salinas, CA | 51 | 35 | 90 | 44 | 21 | 56 | 63 | 100 | 0% |
| 111 | Clarksville, TN | 51 | 25 | 16 | 52 | 83 | 61 | 32 | 99 | 0% |
| 112 | Provo, UT | 51 | 13 | 91 | 39 | 96 | 10 | 97 | 100 | 1% |
| 113 | Fayetteville, AR | 51 | 18 | 62 | 49 | 96 | 15 | 75 | 100 | 0% |
| 114 | Gulfport, MS | 51 | 37 | 9 | 78 | 73 | 42 | 53 | 49 | 0% |
| 115 | Syracuse, NY | 50 | 68 | 49 | 13 | 10 | 92 | 30 | 93 | 0% |
| 116 | Amarillo, TX | 50 | 21 | 38 | 48 | 46 | 80 | 56 | 100 | 0% |
| 117 | Boise City, ID | 50 | 32 | 56 | 34 | 95 | 20 | 49 | 100 | 0% |
| 118 | Detroit, MI | 50 | 89 | 47 | 24 | 19 | 23 | 48 | 96 | 0% |
| 119 | Tuscaloosa, AL | 49 | 21 | 21 | 65 | 49 | 78 | 9 | 94 | 0% |
| 120 | Santa Cruz, CA | 49 | 22 | 95 | 44 | 3 | 68 | 94 | 100 | 0% |
| 121 | Scranton, PA | 49 | 64 | 15 | 24 | 21 | 95 | 11 | 89 | 0% |
| 122 | Durham, NC | 49 | 16 | 75 | 55 | 81 | 21 | 76 | 74 | 0% |
| 123 | Santa Maria, CA | 49 | 35 | 91 | 48 | 14 | 36 | 78 | 100 | 0% |
| 124 | Bridgeport, CT | 49 | 61 | 97 | 13 | 27 | 38 | 95 | 66 | 0% |
| 125 | Brownsville, TX | 48 | 34 | 1 | 97 | 64 | 8 | 27 | 81 | 0% |
| 126 | Wichita, KS | 48 | 45 | 34 | 46 | 40 | 46 | 22 | 100 | 0% |
| 127 | Mobile, AL | 47 | 47 | 7 | 78 | 30 | 63 | 4 | 52 | 0% |
| 128 | Jackson, MS | 47 | 50 | 10 | 69 | 25 | 33 | 53 | 88 | 0% |
| 129 | Portland, ME | 47 | 51 | 68 | 7 | 62 | 41 | 49 | 83 | 0% |
| 130 | Ogden, UT | 47 | 18 | 81 | 29 | 66 | 27 | 97 | 100 | 0% |
| 131 | Tyler, TX | 47 | 14 | 29 | 72 | 66 | 25 | 57 | 97 | 0% |
| 132 | Shreveport, LA | 47 | 42 | 8 | 76 | 24 | 52 | 2 | 93 | 0% |
| 133 | Dayton, OH | 47 | 53 | 39 | 35 | 31 | 49 | 31 | 93 | 0% |
| 134 | Evansville, IN | 47 | 29 | 18 | 49 | 36 | 81 | 24 | 95 | 0% |
| 135 | Cleveland, OH | 47 | 79 | 41 | 26 | 17 | 32 | 23 | 93 | 0% |
| 136 | Beaumont, TX | 46 | 38 | 19 | 86 | 34 | 46 | 25 | 48 | 0% |
| 137 | Minneapolis, MN | 46 | 59 | 86 | 10 | 44 | 5 | 68 | 100 | 0% |
| 138 | Kennewick, WA | 46 | 6 | 72 | 37 | 78 | 40 | 47 | 100 | 0% |
| 139 | Little Rock, AR | 46 | 34 | 27 | 62 | 61 | 18 | 21 | 96 | 0% |
| 140 | Springfield, MO | 46 | 33 | 15 | 47 | 62 | 45 | 16 | 100 | 0% |
| 141 | Grand Rapids, MI | 46 | 56 | 50 | 16 | 43 | 20 | 82 | 98 | 0% |
| 142 | Des Moines, IA | 44 | 25 | 69 | 26 | 76 | 17 | 32 | 100 | 0% |
| 143 | Greeley, CO | 44 | 5 | 76 | 30 | 92 | 7 | 85 | 100 | 0% |
| 144 | Waterbury, CT | 44 | 44 | 75 | 20 | 26 | 59 | 37 | 70 | 0% |
| 145 | Columbus, GA | 44 | 28 | 6 | 76 | 21 | 55 | 8 | 91 | 0% |
| 146 | New Haven, CT | 44 | 48 | 84 | 25 | 16 | 51 | 33 | 67 | 0% |
| 147 | Huntington, WV | 44 | 38 | 3 | 44 | 3 | 90 | 26 | 97 | 0% |
| 148 | Bremerton, WA | 44 | 7 | 89 | 36 | 43 | 37 | 77 | 100 | 0% |
| 149 | Longview, TX | 43 | 23 | 11 | 71 | 38 | 33 | 36 | 96 | 0% |
| 150 | Roanoke, VA | 43 | 17 | 17 | 48 | 27 | 77 | 41 | 93 | 0% |
| 151 | Milwaukee, WI | 42 | 59 | 68 | 16 | 19 | 26 | 14 | 98 | 0% |
| 152 | Madison, WI | 42 | 31 | 81 | 10 | 51 | 26 | 51 | 99 | 0% |
| 153 | Norwich, CT | 42 | 23 | 74 | 19 | 23 | 81 | 45 | 70 | 0% |
| 154 | Akron, OH | 42 | 49 | 43 | 29 | 15 | 38 | 38 | 93 | 0% |
| 155 | Myrtle Beach, SC | 41 | 36 | 3 | 63 | 100 | 12 | 41 | 6 | 0% |
| 156 | Peoria, IL | 41 | 30 | 31 | 35 | 4 | 76 | 38 | 99 | 0% |
| 157 | Winston, NC | 41 | 26 | 13 | 53 | 78 | 11 | 14 | 89 | 0% |
| 158 | Kingsport, TN | 41 | 24 | 2 | 45 | 44 | 66 | 3 | 94 | 0% |
| 159 | Olympia, WA | 41 | 7 | 79 | 25 | 50 | 31 | 74 | 100 | 0% |
| 160 | South Bend, IN | 41 | 31 | 14 | 20 | 25 | 87 | 17 | 96 | 0% |
| 161 | Erie, PA | 40 | 43 | 12 | 19 | 5 | 95 | 9 | 93 | 0% |
| 162 | Portland, OR | 40 | 16 | 87 | 40 | 37 | 3 | 65 | 100 | 0% |
| 163 | Utica, NY | 40 | 39 | 25 | 9 | 6 | 96 | 16 | 94 | 0% |
| 164 | Lynchburg, VA | 39 | 12 | 12 | 41 | 56 | 48 | 43 | 93 | 0% |
| 165 | Albuquerque, NM | 39 | 29 | 23 | 50 | 31 | 23 | 28 | 100 | 0% |
| 166 | Springfield, MA | 39 | 46 | 57 | 17 | 10 | 60 | 1 | 78 | 0% |
| 167 | Wilmington, NC | 39 | 14 | 40 | 65 | 98 | 4 | 62 | 0 | 0% |
| 168 | Greensboro, NC | 38 | 26 | 16 | 52 | 58 | 11 | 10 | 88 | 0% |
| 169 | Toledo, OH | 38 | 39 | 26 | 30 | 8 | 58 | 13 | 95 | 0% |
| 170 | Omaha, NE | 37 | 15 | 73 | 23 | 64 | 7 | 22 | 100 | 0% |
| 171 | Sioux Falls, SD | 37 | 3 | 70 | 16 | 78 | 2 | 83 | 100 | 0% |
| 172 | Spokane, WA | 37 | 15 | 51 | 21 | 55 | 34 | 11 | 100 | 0% |
| 173 | Colorado Springs, CO | 37 | 11 | 74 | 18 | 60 | 6 | 61 | 100 | 0% |
| 174 | Fort Collins, CO | 36 | 6 | 82 | 15 | 59 | 5 | 67 | 100 | 0% |
| 175 | Asheville, NC | 36 | 9 | 23 | 45 | 65 | 9 | 30 | 93 | 0% |
| 176 | Hickory, NC | 35 | 10 | 4 | 50 | 69 | 16 | 7 | 92 | 0% |
| 177 | Davenport, IA | 35 | 19 | 36 | 29 | 12 | 48 | 34 | 100 | 0% |
| 178 | Ann Arbor, MI | 35 | 10 | 83 | 12 | 20 | 29 | 89 | 96 | 0% |
| 179 | Lincoln, NE | 34 | 3 | 64 | 29 | 55 | 3 | 50 | 100 | 0% |
| 180 | Bend, OR | 33 | 1 | 63 | 14 | 81 | 0 | 39 | 100 | 0% |
| 181 | Canton, OH | 32 | 27 | 13 | 27 | 18 | 39 | 25 | 93 | 0% |
| 182 | Fayetteville, NC | 32 | 8 | 8 | 64 | 52 | 12 | 8 | 61 | 0% |
| 183 | Lansing, MI | 32 | 22 | 44 | 13 | 25 | 28 | 35 | 96 | 0% |
| 184 | Rockford, IL | 32 | 20 | 21 | 19 | 16 | 49 | 18 | 99 | 0% |
| 185 | Kalamazoo, MI | 31 | 9 | 55 | 19 | 29 | 24 | 40 | 96 | 0% |
| 186 | Fargo, ND | 31 | 2 | 78 | 8 | 70 | 2 | 6 | 100 | 0% |
| 187 | Salem, OR | 31 | 2 | 59 | 37 | 42 | 1 | 13 | 100 | 0% |
| 188 | Green Bay, WI | 31 | 11 | 49 | 7 | 44 | 16 | 57 | 98 | 0% |
| 189 | Cedar Rapids, IA | 30 | 8 | 46 | 16 | 29 | 22 | 46 | 100 | 0% |
| 190 | Yakima, WA | 29 | 4 | 26 | 21 | 40 | 35 | 5 | 100 | 0% |
| 191 | Boulder, CO | 29 | 4 | 96 | 1 | 18 | 8 | 80 | 100 | 0% |
| 192 | Youngstown, OH | 28 | 32 | 2 | 18 | 4 | 44 | 1 | 93 | 0% |
| 193 | Eugene, OR | 26 | 1 | 37 | 40 | 25 | 1 | 4 | 100 | 0% |
| 194 | Flint, MI | 22 | 17 | 7 | 11 | 10 | 22 | 6 | 96 | 0% |
| 195 | Anchorage, AK | 21 | 0 | 89 | 2 | 20 | – | 68 | – | 0% |
| 196 | Duluth, MN | 20 | 5 | 28 | 2 | 24 | 6 | 28 | 100 | 0% |
Limitations
- Pools are estimated, not counted. One pool rate per state hides large local differences. In Duval County (Jacksonville) the property roll shows pools on 11% of all single-family parcels, against a statewide RECS rate of 34% for owner-occupied detached homes. Duval is one county of the metro, and we have not checked other counties’ rolls. Using the county figure moves Jacksonville from #3 to #31 (#10 at a 20% rate, #5 at 25%). Other north Florida metros (Pensacola, Tallahassee, Gainesville, Ocala) use the same statewide rate and are likely overstated too. For 17 states the RECS sample fails EIA’s publication rule (relative standard error up to 50% and at least 10 pool homes), and RECS does not separate above-ground pools: that is likely why New York, with a high state rate on 2.4 million detached homes, shows the largest estimated pool base.
- The pool estimate counts twice. It drives the pool base (25% of the index) and is also the denominator of Room (15%). An overestimate raises both pillars at once, which is why one county check can move a metro 28 places.
- Competition is a broad proxy. NAICS 561790 includes far more than pool service, and nonemployer counts include side businesses with little revenue. In Miami, counting employers only shrinks the gap with Phoenix from 3.7× to 1.3×.
- Season is climate, not demand. Days at 80°F+ approximate the swimming season; heated pools, snowbird populations and commercial accounts change the picture.
- Price is missing. We have no comparable public data on what pool service costs by metro; see No. 04 in this series.
- Weights are judgment. The sensitivity analysis shows which ranks depend on them.
- Metro, not neighborhood. A metro’s average can hide the best and worst zip codes within it.
What an owner can do with this
The index is a starting list, not a verdict. Use it to decide where to look harder, then check the local numbers it cannot see.
Worksheet · check your own market
| Question | Where to look | Your answer |
|---|---|---|
| How many single-family homes in your service area have a pool? | County property appraiser (pool or “extra feature” codes) | |
| How many pool and building-service businesses already work there? | This report’s Room score; your state license search | |
| How many months is the season, and how many accounts drop off in winter? | Season table in section 07; your own records | |
| Where are new single-family homes being permitted? | County or city building department permit data | |
| How many workdays do storms take in your county? | No. 09, county table | |
| What does a technician cost against what customers earn? | No. 06 wage atlas; ACS median income |
If you are choosing where to start or expand
- Shortlist metros that stay in the top 25 in most weightings, not just the ones with the best single rank.
- Verify the pool count for your target county before you commit. In Jacksonville it moved the rank 28 places; dropping any single pillar moved no top-25 metro more than 31.
- Look at where new single-family homes are being permitted; that is where new customers appear.
- In crowded markets, plan to compete on something other than price: response time, reporting, equipment repair.
- In short-season metros, plan the off-season (openings, closings, repairs, heaters) before you buy a route.
- In storm counties, build the reserve described in No. 09 into your first-year budget.
Sources
- U.S. Census Bureau, American Community Survey 5-year estimates 2020–2024, tables B25003, B25032, B19013, B25118, B25077, B01003 (Table-Based Summary File). https://www2.census.gov/programs-surveys/acs/summary_file/2024/ — accessed Oct 30, 2026.
- U.S. Census Bureau, Population Estimates Program, metro and micro totals, Vintage 2025 (cbsa-est2025-alldata.csv). https://www2.census.gov/programs-surveys/popest/datasets/2020-2025/metro/totals/ — accessed Oct 30, 2026.
- U.S. Census Bureau, Building Permits Survey, CBSA annual 2025 (cbsaannual_202599.xls). https://www.census.gov/construction/bps/ — accessed Oct 30, 2026.
- U.S. Census Bureau, County Business Patterns 2023, metro file (cbp23msa.zip), NAICS 561790. https://www.census.gov/programs-surveys/cbp.html — accessed Oct 30, 2026.
- U.S. Census Bureau, Nonemployer Statistics 2024, metro file (nonemp24msa.zip), NAICS 56179. https://www.census.gov/programs-surveys/nonemployer-statistics.html — accessed Oct 30, 2026.
- U.S. Census Bureau, CBSA delineation file, July 2023 (list1_2023.xlsx); 2023 Gazetteer; 2020 centers of population by county. https://www.census.gov/geographies/reference-files.html — accessed Oct 30, 2026.
- NOAA National Centers for Environmental Information, U.S. Climate Normals 1991–2020, daily and annual/seasonal station normals. https://www.ncei.noaa.gov/products/land-based-station/us-climate-normals — accessed Oct 30, 2026.
- U.S. Energy Information Administration, Residential Energy Consumption Survey 2020, public-use microdata v7 (SWIMPOOL; jackknife replicate weights). https://www.eia.gov/consumption/residential/data/2020/ — accessed Oct 30, 2026.
- U.S. Bureau of Labor Statistics, Occupational Employment and Wage Statistics, May 2025, metro estimates for SOC 37-3011, as compiled in Ruberio Research No. 06 (Wage Atlas). https://www.bls.gov/oes/ — accessed Oct 30, 2026.
- Ruberio Research No. 09, Hurricane Exposure & Resilience (Oct 2026): expected route workdays lost per county, from NOAA HURDAT2 and FEMA National Risk Index (Dec 2025).
- Duval County Property Appraiser, certified real estate roll as of Oct 13, 2026 (pipe-delimited data offering, extra features). https://www.jacksonville.gov/departments/property-appraiser/data-offerings — accessed Oct 30, 2026.
- Florida Department of Revenue, 2026 NAL/SDF/NAP users’ guide (no pool field; checked and not used). https://floridarevenue.com/property/dataportal/ — accessed Oct 30, 2026.
- Office of Management and Budget / Census Bureau, North American Industry Classification System 2022, definition of 561790. https://www.census.gov/naics/ — accessed Oct 30, 2026.
About this research
Who made this
Ruberio is a Dutch design studio: Ruben designs, Sven answers every email. We’re focused on websites for pool service companies and fence contractors in Florida. We ran this study because owners we talk to ask where it still makes sense to grow, and the usual “best cities” lists don’t look at pools at all.
We don’t sell routes, software, insurance or financing, and nobody named here paid for or reviewed this report. The data and scripts are available on request. If you spot an error, email hello@ruberio.com and we’ll correct it and note the change.
Cite this study
Ruberio Research (2026). 12 of the 25 best U.S. metros for a pool route are in Florida. Miami isn’t one of them. (No. 08). Data as of Oct 30, 2026. us.ruberio.com/research/best-cities-pool-service-business/
Questions
Does a top rank mean a pool route will do well there?
No. The index ranks metros on seven public measures: pool base, customers who can pay, season length, growth, room in the market, labor cost and storm downtime. Price is missing, because there is no comparable public data on what pool service costs by metro, and a metro’s average can hide the best and worst zip codes within it.
How reliable is the pool count?
It is the weak link. Pools are estimated from each state’s rate in the federal RECS survey. Where we could test it, in Duval County, the property roll shows pools on 11% of all single-family parcels, against 34% for Florida owner-occupied detached homes. Other north Florida metros that use the statewide rate are likely overstated too.
Why does Miami rank so low?
Mostly crowding. Miami has 3.7× Phoenix’s building-service businesses per estimated pool home. Most of the gap is one-person businesses without payroll; counting only businesses with employees, Miami has 1.3× Phoenix’s rate.


