California building permit report
203,342 building permits issued across 104 California cities in the last 12 months, broken down by city and type of work. Compiled from official city permit portals and refreshed nightly.
Last updated November 02, 2026.
Permits by city
Last 12 months. Click a city for its month-by-month history.
| City | All permits | Reroofs | Remodels & additions | ADUs | Pools & spas |
|---|---|---|---|---|---|
| Los Angeles | 53,409 | 11,700 | 7,495 | 6,126 | 3,400 |
| San Diego | 36,027 | 184 | 2,615 | 1,636 | 600 |
| San Jose | 22,168 | 2,525 | 1,890 | 654 | 206 |
| San Francisco | 16,070 | 1,836 | 3,186 | 202 | 22 |
| Pasadena | 12,116 | 903 | 1,684 | 992 | 146 |
| Sacramento | 10,391 | 1,336 | 1,036 | 126 | 99 |
| Huntington Beach | 7,113 | 1,019 | 522 | 130 | 190 |
| Irvine | 6,204 | 303 | 676 | 60 | 132 |
| Chula Vista | 5,123 | 382 | 277 | 341 | 58 |
| Fullerton | 4,262 | 432 | 215 | 218 | 50 |
| Anaheim | 3,855 | 749 | 518 | 196 | 75 |
| Costa Mesa | 3,114 | 571 | 439 | 14 | 78 |
| Newport Beach | 3,100 | 286 | 1,325 | 50 | 195 |
| Orange | 2,541 | 687 | 246 | 0 | 87 |
| Santa Ana | 1,564 | 440 | 96 | 160 | 19 |
| San Bernardino | 1,064 | 107 | 36 | 73 | 21 |
| Joshua Tree | 898 | 51 | 38 | 29 | 116 |
| Mill Valley | 890 | 15 | 52 | 2 | 7 |
| Phelan | 839 | 39 | 17 | 30 | 8 |
| Lake Arrowhead | 795 | 135 | 51 | 6 | 41 |
| San Rafael | 731 | 10 | 18 | 0 | 11 |
| Fontana | 542 | 54 | 16 | 57 | 3 |
| Victorville | 504 | 38 | 10 | 18 | 11 |
| Apple Valley | 491 | 25 | 11 | 20 | 10 |
| Big Bear City | 483 | 78 | 17 | 14 | 50 |
| Bloomington | 463 | 30 | 18 | 42 | 6 |
| Kentfield | 352 | 8 | 17 | 2 | 16 |
| Lucerne Valley | 344 | 15 | 12 | 2 | 2 |
| Novato | 332 | 4 | 8 | 0 | 4 |
| Pinon Hills | 299 | 11 | 3 | 3 | 4 |
| Crestline | 256 | 65 | 3 | 1 | 3 |
| Running Springs | 233 | 30 | 7 | 1 | 7 |
| Yucca Valley | 231 | 6 | 4 | 14 | 26 |
| Landers | 217 | 10 | 8 | 6 | 25 |
| Barstow | 217 | 11 | 4 | 8 | 6 |
| Morongo Valley | 216 | 19 | 7 | 4 | 6 |
| Wrightwood | 215 | 36 | 6 | 1 | 3 |
| Mentone | 205 | 16 | 5 | 6 | 8 |
| 29 Palms | 201 | 14 | 15 | 4 | 16 |
| Sausalito | 199 | 14 | 4 | 0 | 0 |
| Oak Hills | 198 | 8 | 2 | 13 | 10 |
| San Anselmo | 188 | 1 | 6 | 0 | 11 |
| Hesperia | 174 | 19 | 7 | 15 | 0 |
| Sugarloaf | 160 | 31 | 9 | 0 | 13 |
| Silver Lakes (Helend | 158 | 8 | 3 | 1 | 1 |
| Upland | 150 | 29 | 7 | 9 | 2 |
| Greenbrae | 122 | 2 | 7 | 0 | 0 |
| Newberry Springs | 120 | 3 | 2 | 0 | 0 |
| Rialto | 119 | 16 | 2 | 9 | 2 |
| Chino | 119 | 11 | 3 | 10 | 3 |
| Point Reyes Station | 102 | 3 | 2 | 0 | 0 |
| Yucca Mesa | 96 | 5 | 2 | 1 | 6 |
| Tiburon | 96 | 1 | 1 | 0 | 1 |
| Green Valley Lake | 86 | 23 | 3 | 0 | 0 |
| Highland | 85 | 19 | 1 | 1 | 2 |
| Pioneertown | 84 | 4 | 4 | 2 | 10 |
| Fawnskin | 83 | 17 | 5 | 1 | 4 |
| Colton | 83 | 7 | 3 | 11 | 0 |
| Helendale | 81 | 7 | 0 | 0 | 0 |
| Redlands | 81 | 14 | 1 | 0 | 1 |
| Bolinas | 78 | 3 | 4 | 0 | 0 |
| Twin Peaks | 77 | 10 | 6 | 0 | 4 |
| Devore | 71 | 6 | 2 | 6 | 1 |
| Stinson Beach | 69 | 2 | 3 | 0 | 1 |
| Inverness | 66 | 2 | 1 | 1 | 0 |
| Fairfax | 66 | 1 | 3 | 0 | 4 |
| Ontario | 66 | 9 | 4 | 2 | 0 |
| Arrowhead Villas | 64 | 9 | 4 | 8 | 4 |
| Wonder Valley | 60 | 1 | 2 | 1 | 8 |
| San Moritz | 58 | 20 | 1 | 0 | 0 |
| Chino Outside | 57 | 7 | 2 | 3 | 1 |
| Vly Of Enchantment | 57 | 10 | 0 | 0 | 0 |
| Arrow Bear Pk | 57 | 9 | 0 | 0 | 2 |
| Adelanto | 56 | 0 | 2 | 0 | 0 |
| Yermo | 54 | 3 | 3 | 0 | 0 |
| Big Bear Lake | 54 | 9 | 2 | 2 | 2 |
| Dillon Beach | 50 | 1 | 1 | 0 | 0 |
| Lake Erwin | 50 | 10 | 1 | 0 | 1 |
| Johnson Valley | 49 | 2 | 0 | 1 | 0 |
| El Mirage | 45 | 2 | 1 | 0 | 0 |
| Oro Grande | 45 | 2 | 1 | 1 | 0 |
| Cedarpines Park | 45 | 4 | 2 | 0 | 0 |
| Twentynine Palms | 44 | 0 | 0 | 1 | 0 |
| Woodacre | 44 | 1 | 1 | 0 | 0 |
| Rancho Cucamonga | 40 | 11 | 2 | 0 | 2 |
| Cedar Glen | 40 | 6 | 1 | 0 | 0 |
| Angelus Oaks | 39 | 6 | 1 | 0 | 0 |
| Altadena | 39 | 0 | 12 | 0 | 4 |
| Grandview | 38 | 3 | 1 | 1 | 0 |
| Lenwood | 38 | 4 | 0 | 0 | 0 |
| Forest Falls | 37 | 5 | 4 | 2 | 0 |
| Oak Glen | 37 | 0 | 2 | 1 | 1 |
| Forest Knolls | 36 | 1 | 1 | 0 | 0 |
| Lytle Creek | 34 | 6 | 0 | 0 | 0 |
| Sunfair | 31 | 0 | 4 | 0 | 2 |
| Trona | 31 | 6 | 0 | 0 | 0 |
| West Cajon Valley | 30 | 1 | 1 | 0 | 0 |
| Hinkley | 30 | 0 | 1 | 0 | 0 |
| Yucaipa | 29 | 3 | 0 | 0 | 1 |
| San Geronimo | 29 | 0 | 0 | 0 | 0 |
| Ontario Outside | 28 | 0 | 1 | 0 | 0 |
| Baker | 28 | 0 | 0 | 0 | 1 |
| Rim Forest | 25 | 3 | 1 | 0 | 0 |
| Baldwin Lake | 25 | 4 | 0 | 1 | 0 |
Statewide totals by work type
| Work type | Permits (12 mo) |
|---|---|
| Reroofs | 24,665 |
| Remodels & additions | 22,776 |
| ADUs | 11,362 |
| Pools & spas | 5,884 |
| Water heaters | 5,638 |
| Repipes | 1,675 |
| New construction | 1,877 |
City reports
Common questions
How many homes replaced their roof in California this year?
24,665 reroof permits were issued across the 104 cities tracked here in the last 12 months. Reroofs are consistently the largest single category of residential work.
Where does this data come from?
Directly from each city's own permit system — the same public records the city publishes. We normalize them into one format, categorize the work type, and refresh nightly. No estimates or modeled figures.
Can I cite these numbers?
Yes, freely, with attribution to oneforminsurance.com. There's a machine-readable version at /reports/data.json if you'd rather work with the raw figures.
Why do permit counts matter?
A permit is a dated, public record that a homeowner just invested in their property. For insurance producers, a new roof often changes what a home qualifies for. For real estate agents, owners investing in additions, ADUs, and remodels are signalling their plans for the property.
Work these permits. OneForm turns any of these lists into print-ready postcards with per-address QR tracking, under your own name and license number — so you know which addresses responded.
Request access