Oklahoma Roofing Cost & Storm Data Index 2026

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.

Use This Data