Rooftop solar data for 673 North American cities
Every figure on this site comes from the same measured dataset: Google Solar API rooftop samples across 673 cities in the US and Canada. This page publishes the whole thing, including the CSV. Free to use with attribution.
Download the full dataset (CSV) → 673 rows, 17 columns. Updated whenever the site rebuilds.
What this measures, and what it doesn't
Each city's figure is the median of roughly 16 individual rooftops sampled in a ring across the city's suburban area — not one reading from the city centre. That distinction is the whole reason this dataset exists: a single downtown sample produced results so distorted that Charlotte appeared to get less sun than Vancouver. Sampling a spread of real suburban roofs and taking the median fixed it.
The sunlight figure is usable sunlight. It already has shading from trees, chimneys and neighbouring buildings subtracted, which is why these numbers are lower than the "hours of daylight" figures published elsewhere. The unshaded column is what an unobstructed roof in the same city reaches, and the gap between the two is the shading loss.
What it is not: it is not a measurement of your roof, and it is not a forecast. Payback figures are modelled from the measured sunlight plus regional average electricity rates, using 400W panels at $2.85/W. Local incentives, your actual usage and your utility's export rules will all move the answer.
The headline finding: sunlight is not what decides this
Palmdale tops the sunlight table at 2,115 hours and Fairbanks sits last at 954 — a 2.2× spread. But the fastest payback in the dataset belongs to Honolulu, HI at 3.1 years, on 1,787 sun hours — well short of the sunniest city.
Electricity price moves payback far more than sunlight does. A dim city with expensive power beats a sunny city with cheap power, consistently, across the whole table. That is the single most useful thing in this dataset and it is the opposite of how solar is usually marketed.
Fastest payback
| # | City | Sun hrs/yr | Lost to shade | Median roof | Rate | Payback |
|---|---|---|---|---|---|---|
| 1 | Honolulu, HI | 1,787 | 7.2% | 262 m² | 42.1¢ | 3.1 yrs |
| 2 | Lihue, HI | 1,777 | 3.2% | 299 m² | 42.1¢ | 3.2 yrs |
| 3 | Kahului, HI | 1,627 | 4% | 107 m² | 42.1¢ | 3.5 yrs |
| 4 | Hilo, HI | 1,510 | 7.7% | 128 m² | 42.1¢ | 3.8 yrs |
| 5 | Kailua-Kona, HI | 1,253 | 17.8% | 330 m² | 42.1¢ | 4.5 yrs |
| 6 | Quincy, MA | 1,521 | 4% | 164 m² | 30.1¢ | 5.1 yrs |
| 7 | Boston, MA | 1,446 | 8.1% | 182 m² | 30.1¢ | 5.4 yrs |
| 8 | Warwick, RI | 1,518 | 4.3% | 203 m² | 28.3¢ | 5.5 yrs |
| 9 | New Haven, CT | 1,472 | 3.2% | 142 m² | 29.2¢ | 5.5 yrs |
| 10 | Worcester, MA | 1,443 | 5% | 274 m² | 30.1¢ | 5.6 yrs |
| 11 | Fall River, MA | 1,429 | 9.9% | 155 m² | 30.1¢ | 5.6 yrs |
| 12 | Lowell, MA | 1,422 | 6.8% | 142 m² | 30.1¢ | 5.6 yrs |
| 13 | Somerville, MA | 1,418 | 10.3% | 212 m² | 30.1¢ | 5.6 yrs |
| 14 | Cambridge, MA | 1,404 | 9.5% | 356 m² | 30.1¢ | 5.6 yrs |
| 15 | Lynn, MA | 1,392 | 10.2% | 148 m² | 30.1¢ | 5.6 yrs |
| 16 | Pawtucket, RI | 1,470 | 7.6% | 179 m² | 28.3¢ | 5.7 yrs |
| 17 | Hartford, CT | 1,408 | 7.9% | 203 m² | 29.2¢ | 5.8 yrs |
| 18 | Bridgeport, CT | 1,386 | 7.2% | 246 m² | 29.2¢ | 5.8 yrs |
| 19 | Newton, MA | 1,375 | 8% | 306 m² | 30.1¢ | 5.8 yrs |
| 20 | Greenfield, MA | 1,371 | 11.1% | 194 m² | 30.1¢ | 5.8 yrs |
| 21 | Cranston, RI | 1,402 | 9.5% | 151 m² | 28.3¢ | 6 yrs |
| 22 | Providence, RI | 1,392 | 13.1% | 166 m² | 28.3¢ | 6 yrs |
| 23 | New Bedford, MA | 1,315 | 17.6% | 128 m² | 30.1¢ | 6.1 yrs |
| 24 | Springfield, MA | 1,310 | 14.5% | 181 m² | 30.1¢ | 6.1 yrs |
| 25 | Pittsfield, MA | 1,300 | 8.7% | 320 m² | 30.1¢ | 6.1 yrs |
Most sunlight
| # | City | Sun hrs/yr | Lost to shade | Median roof | Rate | Payback |
|---|---|---|---|---|---|---|
| 1 | Palmdale, CA | 2,115 | 2.6% | 208 m² | 31.2¢ | 7.7 yrs |
| 2 | Las Cruces, NM | 2,112 | 3.3% | 137 m² | 14.8¢ | 7.9 yrs |
| 3 | Sierra Vista, AZ | 2,108 | 1.3% | 280 m² | 15.2¢ | 7.7 yrs |
| 4 | Lancaster, CA | 2,105 | 3.5% | 221 m² | 31.2¢ | 7.7 yrs |
| 5 | Alamosa, CO | 2,090 | 2.4% | 256 m² | 14.8¢ | 7.9 yrs |
| 6 | Clovis, NM | 2,085 | 1.7% | 288 m² | 14.8¢ | 7.9 yrs |
| 7 | Surprise, AZ | 2,077 | 1% | 247 m² | 15.2¢ | 7.7 yrs |
| 8 | Kingman, AZ | 2,068 | 3.5% | 307 m² | 15.2¢ | 7.7 yrs |
| 9 | Avondale, AZ | 2,063 | 0.8% | 271 m² | 15.2¢ | 7.7 yrs |
| 10 | Carlsbad, NM | 2,051 | 1.7% | 173 m² | 14.8¢ | 7.9 yrs |
| 11 | Henderson, NV | 2,045 | 2.9% | 184 m² | 15.3¢ | 7.7 yrs |
| 12 | Santa Clarita, CA | 2,045 | 3.2% | 116 m² | 31.2¢ | 7.8 yrs |
| 13 | Tucson, AZ | 2,043 | 3.8% | 161 m² | 15.2¢ | 7.7 yrs |
| 14 | El Paso, TX | 2,043 | 3.4% | 94 m² | 15.1¢ | 7.8 yrs |
| 15 | Midland, TX | 2,038 | 2.3% | 225 m² | 15.1¢ | 7.8 yrs |
| 16 | Odessa, TX | 2,037 | 1.5% | 477 m² | 15.1¢ | 7.8 yrs |
| 17 | Peoria, AZ | 2,035 | 1.6% | 341 m² | 15.2¢ | 7.7 yrs |
| 18 | Goodyear, AZ | 2,034 | 1.3% | 358 m² | 15.2¢ | 7.7 yrs |
| 19 | Glendale, AZ | 2,030 | 1.6% | 265 m² | 15.2¢ | 7.7 yrs |
| 20 | Chandler, AZ | 2,022 | 1.1% | 362 m² | 15.2¢ | 7.7 yrs |
| 21 | Yuma, AZ | 2,015 | 2.8% | 195 m² | 15.2¢ | 7.7 yrs |
| 22 | Roswell, NM | 2,013 | 5.2% | 185 m² | 14.8¢ | 8 yrs |
| 23 | Farmington, NM | 2,008 | 7% | 112 m² | 14.8¢ | 8 yrs |
| 24 | Thousand Oaks, CA | 2,007 | 3.3% | 335 m² | 31.2¢ | 7.9 yrs |
| 25 | Lubbock, TX | 2,006 | 3% | 304 m² | 15.1¢ | 7.8 yrs |
Least sunlight
| # | City | Sun hrs/yr | Lost to shade | Median roof | Rate | Payback |
|---|---|---|---|---|---|---|
| 649 | Kailua-Kona, HI | 1,253 | 17.8% | 330 m² | 42.1¢ | 4.5 yrs |
| 650 | Grande Prairie, AB | 1,250 | 4.9% | 290 m² | 18.1¢ | 15.1 yrs |
| 651 | Federal Way, WA | 1,249 | 5.9% | 201 m² | 11.3¢ | 16.9 yrs |
| 652 | Renton, WA | 1,243 | 6.1% | 198 m² | 11.3¢ | 16.9 yrs |
| 653 | Olympia, WA | 1,240 | 6% | 238 m² | 11.3¢ | 16.9 yrs |
| 654 | Kent, WA | 1,232 | 5.9% | 282 m² | 11.3¢ | 17 yrs |
| 655 | Aberdeen, WA | 1,232 | 1.8% | 185 m² | 11.3¢ | 17 yrs |
| 656 | Bradford, PA | 1,226 | 10.2% | 34 m² | 18.1¢ | 10.6 yrs |
| 657 | Bellingham, WA | 1,222 | 4.2% | 180 m² | 11.3¢ | 17 yrs |
| 658 | State College, PA | 1,201 | 20.5% | 189 m² | 18.1¢ | 11 yrs |
| 659 | Burnaby, BC | 1,196 | 5.8% | 188 m² | 12.4¢ | 22.9 yrs |
| 660 | Fort McMurray, AB | 1,195 | 9.3% | 212 m² | 18.1¢ | 15.7 yrs |
| 661 | Delta, BC | 1,194 | 8.9% | 127 m² | 12.4¢ | 22.9 yrs |
| 662 | Tacoma, WA | 1,184 | 12.2% | 191 m² | 11.3¢ | 17.6 yrs |
| 663 | Bellevue, WA | 1,175 | 10.4% | 239 m² | 11.3¢ | 18.1 yrs |
| 664 | Langley, BC | 1,171 | 8.5% | 225 m² | 12.4¢ | 23.6 yrs |
| 665 | Surrey, BC | 1,169 | 4.9% | 229 m² | 12.4¢ | 23.7 yrs |
| 666 | Vancouver, BC | 1,162 | 12.2% | 244 m² | 12.4¢ | 23.7 yrs |
| 667 | Astoria, OR | 1,152 | 12% | 144 m² | 12.4¢ | 16.6 yrs |
| 668 | Chilliwack, BC | 1,143 | 9.3% | 68 m² | 12.4¢ | 23.8 yrs |
| 669 | Everett, WA | 1,139 | 11.6% | 159 m² | 11.3¢ | 18.3 yrs |
| 670 | Courtenay, BC | 1,116 | 6.5% | 77 m² | 12.4¢ | 24.6 yrs |
| 671 | Coquitlam, BC | 1,098 | 6.2% | 166 m² | 12.4¢ | 24.7 yrs |
| 672 | Anchorage, AK | 1,024 | 11.2% | 188 m² | 25¢ | 9.4 yrs |
| 673 | Fairbanks, AK | 954 | 18% | 285 m² | 25¢ | 10 yrs |
Shading
State College, PA loses the most sunlight to obstruction of any city measured — 20.5% below what an unshaded roof there would receive. Shading loss is the column most likely to differ from whatever a national calculator assumed about your roof.
Using this data
The CSV is free to use, including commercially. Attribution to solarpanelfit.com is appreciated and is all that's asked. If you cite it:
PanelFit, Rooftop solar data for 673 North American cities, derived from the Google Solar API. https://solarpanelfit.com/solar-data
The underlying rooftop measurements come from Google's Solar API and remain subject to Google's terms. What's published here is our sampling, aggregation and modelling of it.
Generated 2026-08-22. Estimates only — not a quote and not financial advice.