Oklahoma Roofing Cost & Storm Data Index 2026
City-by-city roofing costs and storm data across 114 Oklahoma cities — hail events, wind zones, tornado history, FEMA disaster declarations, and average roof replacement costs.
Source: LocalRoofOps Oklahoma dataset · Updated September 22, 2026 · Download CSV
Key Findings in the 2026 Data
- Nichols Hills has the highest average asphalt roof cost at $8,600 per 2,000 sq ft.
- Arnett has the lowest at $6,800, a 26% spread across the state.
- Moore recorded 31 tornado events since 2010 — the most of any city tracked.
- Oklahoma cities tracked here total 974 tornado events and 439 FEMA disaster declarations since 2010.
- State-average labor runs $2.11/sq ft for architectural shingle installation.
Cities Tracked
114
Across 23 metro areas
State Average — Asphalt Roof
$7,530
Per 2,000 sq ft roof
State Average — Metal Roof
$16,484
Per 2,000 sq ft roof
Annual Hail Events
3.9
State average per city
Oklahoma City Metro
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Oklahoma Citypop 719,000 |
Oklahoma County |
6.2 |
130 |
28 |
12 |
$8,400 |
$17,700 |
$2.35 |
$125 |
| Normanpop 128,000 |
Cleveland County |
5.8 |
130 |
22 |
10 |
$8,350 |
$17,650 |
$2.32 |
$110 |
| Edmondpop 96,000 |
Oklahoma County |
5.5 |
130 |
20 |
9 |
$8,500 |
$17,800 |
$2.38 |
$120 |
| Moorepop 62,000 |
Cleveland County |
6.5 |
130 |
31 |
11 |
$8,300 |
$17,550 |
$2.30 |
$100 |
| Midwest Citypop 57,000 |
Oklahoma County |
5.6 |
130 |
18 |
9 |
$8,250 |
$17,450 |
$2.29 |
$108 |
| Yukonpop 27,000 |
Canadian County |
5.3 |
130 |
16 |
8 |
$8,300 |
$17,500 |
$2.31 |
$96 |
| Del Citypop 23,000 |
Oklahoma County |
5.4 |
130 |
15 |
8 |
$8,200 |
$17,400 |
$2.28 |
$90 |
| Mustangpop 22,000 |
Canadian County |
5.1 |
130 |
14 |
7 |
$8,250 |
$17,450 |
$2.29 |
$94 |
| Bethanypop 20,000 |
Oklahoma County |
5.1 |
130 |
14 |
8 |
$8,200 |
$17,400 |
$2.28 |
$95 |
| El Renopop 18,000 |
Canadian County |
5.0 |
130 |
17 |
8 |
$8,000 |
$17,100 |
$2.22 |
$85 |
| Chickashapop 16,000 |
Grady County |
4.2 |
120 |
11 |
5 |
$7,700 |
$16,900 |
$2.15 |
$82 |
| Choctawpop 12,000 |
Oklahoma County |
5.2 |
130 |
14 |
7 |
$8,300 |
$17,500 |
$2.30 |
$90 |
| Guthriepop 11,000 |
Logan County |
4.8 |
120 |
13 |
6 |
$8,000 |
$17,200 |
$2.22 |
$88 |
| Newcastlepop 10,000 |
McClain County |
5.0 |
130 |
12 |
7 |
$8,200 |
$17,400 |
$2.28 |
$85 |
| The Villagepop 10,000 |
Oklahoma County |
5.2 |
130 |
13 |
7 |
$8,400 |
$17,700 |
$2.35 |
$100 |
| Warr Acrespop 10,000 |
Oklahoma County |
5.0 |
130 |
13 |
7 |
$8,200 |
$17,400 |
$2.28 |
$92 |
| Blanchardpop 8,000 |
McClain County |
4.7 |
130 |
10 |
6 |
$8,100 |
$17,200 |
$2.25 |
$80 |
| Noblepop 7,000 |
Cleveland County |
5.4 |
130 |
15 |
7 |
$8,200 |
$17,400 |
$2.28 |
$85 |
| Purcellpop 7,000 |
McClain County |
4.0 |
120 |
9 |
4 |
$7,900 |
$17,000 |
$2.20 |
$78 |
| Harrahpop 6,000 |
Oklahoma County |
4.9 |
130 |
12 |
6 |
$8,100 |
$17,200 |
$2.25 |
$85 |
| McLoudpop 5,000 |
Pottawatomie County |
4.6 |
120 |
10 |
5 |
$7,800 |
$17,000 |
$2.18 |
$75 |
| Bridge Creekpop 5,000 |
Grady County |
5.0 |
130 |
16 |
7 |
$8,100 |
$17,200 |
$2.25 |
$80 |
| Nichols Hillspop 4,000 |
Oklahoma County |
5.3 |
130 |
14 |
7 |
$8,600 |
$18,000 |
$2.40 |
$110 |
| Slaughtervillepop 4,000 |
Cleveland County |
4.8 |
130 |
11 |
5 |
$8,000 |
$17,100 |
$2.22 |
$75 |
| Lexingtonpop 2,000 |
Cleveland County |
4.7 |
130 |
10 |
5 |
$7,900 |
$17,000 |
$2.20 |
$78 |
| Crescentpop 2,000 |
Logan County |
4.4 |
120 |
8 |
4 |
$7,700 |
$16,900 |
$2.15 |
$72 |
| Mulhallpop 200 |
Logan County |
4.5 |
120 |
9 |
4 |
$7,600 |
$16,800 |
$2.12 |
$60 |
| Orlandopop 200 |
Logan County |
4.3 |
120 |
8 |
3 |
$7,500 |
$16,700 |
$2.10 |
$55 |
Tulsa Metro
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Tulsapop 416,000 |
Tulsa County |
5.4 |
115 |
19 |
8 |
$8,200 |
$17,500 |
$2.28 |
$115 |
| Broken Arrowpop 113,000 |
Tulsa County |
5.0 |
115 |
14 |
7 |
$8,100 |
$17,400 |
$2.25 |
$105 |
| Owassopop 38,000 |
Tulsa County |
4.5 |
115 |
11 |
6 |
$8,150 |
$17,450 |
$2.27 |
$95 |
| Bixbypop 28,000 |
Tulsa County |
4.3 |
115 |
9 |
5 |
$8,200 |
$17,500 |
$2.28 |
$92 |
| Jenkspop 25,000 |
Tulsa County |
4.4 |
115 |
9 |
5 |
$8,300 |
$17,600 |
$2.31 |
$95 |
| Sapulpapop 22,000 |
Creek County |
3.8 |
115 |
9 |
5 |
$7,700 |
$16,900 |
$2.15 |
$80 |
| Sand Springspop 20,000 |
Tulsa County |
4.2 |
115 |
8 |
5 |
$7,900 |
$17,100 |
$2.20 |
$88 |
| Claremorepop 19,000 |
Rogers County |
3.7 |
115 |
8 |
4 |
$7,800 |
$17,000 |
$2.18 |
$85 |
| Glenpoolpop 14,000 |
Tulsa County |
3.9 |
115 |
7 |
4 |
$8,000 |
$17,200 |
$2.22 |
$82 |
| Okmulgeepop 12,000 |
Okmulgee County |
3.3 |
115 |
6 |
4 |
$7,500 |
$16,600 |
$2.10 |
$75 |
| Cowetapop 10,000 |
Wagoner County |
3.6 |
115 |
7 |
4 |
$7,800 |
$17,000 |
$2.18 |
$78 |
| Wagonerpop 9,000 |
Wagoner County |
3.5 |
115 |
7 |
4 |
$7,700 |
$16,850 |
$2.15 |
$75 |
| Bristowpop 4,000 |
Creek County |
3.3 |
115 |
6 |
3 |
$7,400 |
$16,400 |
$2.08 |
$70 |
| Drumrightpop 3,000 |
Creek County |
3.3 |
115 |
5 |
2 |
$7,200 |
$16,000 |
$2.02 |
$62 |
| Mannfordpop 3,000 |
Creek County |
3.4 |
115 |
5 |
3 |
$7,300 |
$16,200 |
$2.05 |
$65 |
| Depewpop 500 |
Creek County |
3.2 |
115 |
4 |
2 |
$7,000 |
$15,700 |
$1.98 |
$55 |
Lawton Metro
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Lawtonpop 90,000 |
Comanche County |
4.2 |
120 |
16 |
6 |
$7,900 |
$17,100 |
$2.20 |
$95 |
| Cachepop 3,000 |
Comanche County |
3.8 |
120 |
6 |
2 |
$7,300 |
$16,200 |
$2.05 |
$62 |
| Fletcherpop 1,200 |
Comanche County |
3.5 |
120 |
5 |
1 |
$7,100 |
$15,800 |
$2.00 |
$55 |
| Sterlingpop 800 |
Comanche County |
3.4 |
120 |
4 |
1 |
$7,000 |
$15,600 |
$1.98 |
$52 |
Enid Micropolitan
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Enidpop 51,000 |
Garfield County |
5.2 |
120 |
17 |
5 |
$7,800 |
$16,950 |
$2.18 |
$92 |
Stillwater Micropolitan
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Stillwaterpop 50,000 |
Payne County |
4.8 |
115 |
12 |
4 |
$8,100 |
$17,300 |
$2.25 |
$98 |
Muskogee Micropolitan
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Muskogeepop 37,000 |
Muskogee County |
4.0 |
115 |
10 |
5 |
$7,700 |
$16,800 |
$2.15 |
$85 |
Bartlesville Micropolitan
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Bartlesvillepop 36,000 |
Washington County |
3.8 |
115 |
8 |
4 |
$7,800 |
$16,900 |
$2.18 |
$90 |
Shawnee Micropolitan
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Shawneepop 31,000 |
Pottawatomie County |
5.0 |
120 |
15 |
7 |
$7,900 |
$17,100 |
$2.20 |
$88 |
Ardmore Micropolitan
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Ardmorepop 25,000 |
Carter County |
3.5 |
115 |
9 |
4 |
$7,600 |
$16,700 |
$2.12 |
$82 |
Ponca City Micropolitan
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Ponca Citypop 24,000 |
Kay County |
3.6 |
115 |
7 |
3 |
$7,600 |
$16,750 |
$2.12 |
$80 |
Duncan Micropolitan
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Duncanpop 23,000 |
Stephens County |
3.8 |
120 |
8 |
3 |
$7,500 |
$16,600 |
$2.10 |
$78 |
Altus Micropolitan
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Altuspop 19,000 |
Jackson County |
4.0 |
120 |
10 |
4 |
$7,400 |
$16,400 |
$2.08 |
$75 |
Southeastern Oklahoma
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| McAlesterpop 18,000 |
Pittsburg County |
3.3 |
110 |
7 |
4 |
$7,500 |
$16,600 |
$2.10 |
$78 |
| Durantpop 18,000 |
Bryan County |
2.8 |
110 |
6 |
3 |
$7,400 |
$16,400 |
$2.08 |
$72 |
| Holdenvillepop 6,000 |
Hughes County |
2.9 |
110 |
5 |
2 |
$7,100 |
$15,800 |
$2.00 |
$65 |
| Hugopop 5,000 |
Choctaw County |
2.5 |
110 |
4 |
3 |
$7,000 |
$15,600 |
$1.98 |
$62 |
South Central Oklahoma
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Adapop 17,000 |
Pontotoc County |
3.5 |
115 |
8 |
3 |
$7,500 |
$16,600 |
$2.10 |
$78 |
Northeast Oklahoma
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Tahlequahpop 16,000 |
Cherokee County |
3.1 |
110 |
5 |
3 |
$7,500 |
$16,600 |
$2.10 |
$75 |
| Miamipop 14,000 |
Ottawa County |
3.2 |
115 |
6 |
4 |
$7,400 |
$16,450 |
$2.08 |
$70 |
| Pryor Creekpop 10,000 |
Mayes County |
3.4 |
115 |
6 |
3 |
$7,600 |
$16,700 |
$2.12 |
$72 |
| Vinitapop 6,000 |
Craig County |
3.0 |
115 |
5 |
3 |
$7,300 |
$16,200 |
$2.05 |
$68 |
| Hominypop 3,500 |
Osage County |
3.0 |
115 |
5 |
2 |
$7,100 |
$15,800 |
$2.00 |
$58 |
| Pawhuskapop 3,500 |
Osage County |
2.9 |
115 |
4 |
2 |
$7,100 |
$15,800 |
$2.00 |
$58 |
| Clevelandpop 3,000 |
Pawnee County |
3.1 |
115 |
5 |
2 |
$7,100 |
$15,800 |
$2.00 |
$58 |
| Pawneepop 2,000 |
Pawnee County |
3.2 |
115 |
5 |
2 |
$7,100 |
$15,800 |
$2.00 |
$58 |
Western Oklahoma
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Elk Citypop 12,000 |
Beckham County |
3.9 |
115 |
8 |
3 |
$7,300 |
$16,200 |
$2.05 |
$72 |
| Weatherfordpop 12,000 |
Custer County |
3.7 |
120 |
8 |
3 |
$7,400 |
$16,500 |
$2.08 |
$75 |
| Clintonpop 9,000 |
Custer County |
3.8 |
120 |
7 |
2 |
$7,400 |
$16,400 |
$2.08 |
$72 |
| Thomaspop 1,000 |
Custer County |
3.3 |
115 |
4 |
1 |
$7,000 |
$15,500 |
$1.98 |
$52 |
| Seilingpop 800 |
Dewey County |
3.5 |
115 |
4 |
1 |
$6,900 |
$15,400 |
$1.95 |
$50 |
| Camargopop 800 |
Custer County |
3.4 |
115 |
4 |
1 |
$6,900 |
$15,400 |
$1.95 |
$50 |
| Vicipop 700 |
Dewey County |
3.4 |
115 |
3 |
1 |
$6,800 |
$15,200 |
$1.92 |
$48 |
| Leedeypop 400 |
Dewey County |
3.3 |
115 |
3 |
1 |
$6,800 |
$15,200 |
$1.92 |
$48 |
Oklahoma Panhandle
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Guymonpop 12,000 |
Texas County |
4.5 |
115 |
7 |
3 |
$7,200 |
$16,000 |
$2.02 |
$68 |
Northwestern Oklahoma
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Woodwardpop 12,000 |
Woodward County |
4.6 |
115 |
9 |
3 |
$7,300 |
$16,200 |
$2.05 |
$70 |
| Alvapop 5,000 |
Woods County |
3.9 |
115 |
6 |
2 |
$7,100 |
$15,800 |
$2.00 |
$60 |
| Fairviewpop 2,500 |
Major County |
3.8 |
115 |
6 |
2 |
$7,100 |
$15,800 |
$2.00 |
$58 |
| Cherokeepop 1,500 |
Alfalfa County |
3.7 |
115 |
5 |
2 |
$7,000 |
$15,600 |
$1.98 |
$55 |
| Lavernepop 1,300 |
Harper County |
3.5 |
115 |
4 |
1 |
$6,900 |
$15,400 |
$1.95 |
$50 |
| Shattuckpop 1,300 |
Ellis County |
3.4 |
115 |
4 |
1 |
$6,900 |
$15,400 |
$1.95 |
$50 |
| Buffalopop 1,200 |
Harper County |
3.8 |
115 |
5 |
2 |
$7,000 |
$15,600 |
$1.98 |
$52 |
| Arnettpop 500 |
Ellis County |
3.3 |
115 |
3 |
1 |
$6,800 |
$15,200 |
$1.92 |
$48 |
| Gagepop 400 |
Ellis County |
3.2 |
115 |
3 |
1 |
$6,800 |
$15,200 |
$1.92 |
$48 |
| Freedompop 300 |
Woods County |
3.6 |
115 |
4 |
1 |
$6,900 |
$15,400 |
$1.95 |
$50 |
Eastern Oklahoma
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Sallisawpop 9,000 |
Sequoyah County |
2.7 |
110 |
5 |
3 |
$7,300 |
$16,200 |
$2.05 |
$70 |
| Poteaupop 9,000 |
Le Flore County |
2.8 |
110 |
5 |
3 |
$7,200 |
$16,000 |
$2.02 |
$68 |
| Henryettapop 6,000 |
Okmulgee County |
3.0 |
115 |
6 |
3 |
$7,300 |
$16,200 |
$2.05 |
$68 |
| Stiglerpop 3,000 |
Haskell County |
2.6 |
110 |
4 |
2 |
$7,000 |
$15,700 |
$1.98 |
$60 |
| Checotahpop 3,000 |
McIntosh County |
2.7 |
110 |
4 |
2 |
$7,100 |
$15,800 |
$2.00 |
$62 |
| Eufaulapop 3,000 |
McIntosh County |
2.6 |
110 |
4 |
2 |
$7,100 |
$15,800 |
$2.00 |
$62 |
| Chandlerpop 3,000 |
Lincoln County |
3.5 |
115 |
7 |
3 |
$7,300 |
$16,200 |
$2.05 |
$68 |
Central Oklahoma
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Cushingpop 8,000 |
Payne County |
3.9 |
115 |
7 |
3 |
$7,600 |
$16,700 |
$2.12 |
$72 |
| Seminolepop 7,000 |
Seminole County |
3.8 |
115 |
8 |
3 |
$7,400 |
$16,400 |
$2.08 |
$70 |
| Stroudpop 2,800 |
Creek County |
3.4 |
115 |
6 |
2 |
$7,300 |
$16,200 |
$2.05 |
$65 |
| Meekerpop 1,200 |
Lincoln County |
3.4 |
115 |
5 |
2 |
$7,100 |
$15,800 |
$2.00 |
$60 |
| Wellstonpop 1,000 |
Lincoln County |
3.3 |
115 |
5 |
2 |
$7,100 |
$15,800 |
$2.00 |
$58 |
Southwestern Oklahoma
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Anadarkopop 7,000 |
Caddo County |
3.6 |
120 |
7 |
3 |
$7,300 |
$16,200 |
$2.05 |
$70 |
| Frederickpop 4,000 |
Tillman County |
3.3 |
120 |
5 |
2 |
$7,100 |
$15,800 |
$2.00 |
$58 |
| Hobartpop 3,500 |
Kiowa County |
3.6 |
120 |
6 |
2 |
$7,100 |
$15,800 |
$2.00 |
$58 |
| Mangumpop 3,000 |
Greer County |
3.4 |
120 |
5 |
2 |
$7,000 |
$15,600 |
$1.98 |
$55 |
| Granitepop 2,000 |
Greer County |
3.5 |
120 |
5 |
2 |
$7,000 |
$15,600 |
$1.98 |
$55 |
| Snyderpop 1,400 |
Kiowa County |
3.6 |
120 |
6 |
2 |
$7,100 |
$15,800 |
$2.00 |
$58 |
| Chattanoogapop 500 |
Comanche County |
3.4 |
120 |
4 |
1 |
$7,000 |
$15,600 |
$1.98 |
$52 |
North Central Oklahoma
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Blackwellpop 7,000 |
Kay County |
3.5 |
115 |
6 |
3 |
$7,300 |
$16,200 |
$2.05 |
$68 |
| Kingfisherpop 5,000 |
Kingfisher County |
3.8 |
115 |
7 |
3 |
$7,400 |
$16,400 |
$2.08 |
$70 |
| Perrypop 5,000 |
Noble County |
3.7 |
115 |
6 |
2 |
$7,400 |
$16,400 |
$2.08 |
$70 |
| Tonkawapop 3,000 |
Kay County |
3.3 |
115 |
5 |
2 |
$7,200 |
$16,000 |
$2.02 |
$62 |
| Hennesseypop 2,000 |
Kingfisher County |
3.6 |
115 |
6 |
2 |
$7,200 |
$16,000 |
$2.02 |
$60 |
Southern Oklahoma
| City |
County |
Hailevents/yr |
Windmph |
Tornadoessince 2010 |
FEMAdecls |
Asphalt2,000 sq ft |
Metal2,000 sq ft |
Labor$/sq ft |
Permitfee |
| Pauls Valleypop 6,000 |
Garvin County |
3.7 |
120 |
8 |
3 |
$7,300 |
$16,200 |
$2.05 |
$68 |
How to read this data
Costs are installed averages for a 2,000 sq ft roof and vary by roof complexity, material grade, and season. Storm counts are historical (since 2010) and indicate risk, not prediction. See the full methodology for sources.