What Should a Handyman Charge?
A planning estimate for your state and city, with the math shown. Your real rate comes from your own costs, so run the free calculator when you're ready.
The method
This is the formula in our hourly rate calculator: add your pay and your overhead, add the percentages, then divide by the hours you really bill.
- Pay: the BLS wage for general maintenance and repair workers in your area. The low end uses the median, the high end uses where the top quarter starts. It's an employee wage, used as a floor for what the work pays.
- Overhead: $33,148 a year, the sum of the median monthly answers from members using our calculator (insurance, truck, fuel, phone, software, taxes set aside and so on), adjusted with BEA's local price index.
- Percentages: profit 15%, paid time off 10%, refunds and warranty 3%, business taxes 12%, also member medians. Sales tax is left out, because it's collected from the customer where it applies.
- Hours: 30 billed hours a week at the low end (member median), 25 at the high end (lower quarter), times 52 weeks. Every hour on the job takes about another hour running the business.
It's an estimate for planning, not the market rate, and we don't use competitor prices.
Pick your state
Alabama$66–$89/hr
Alaska$85–$118/hr
Arizona$73–$101/hr
Arkansas$65–$88/hr
- Ashley County
- Barling
- Bella Vista
- Benton County
- Bentonville
- Cave Springs
- Centerton
- Conway
- Corning
- Crawford County
- Elm Springs
- Faulkner County
- Fayetteville
- Fort Smith
- Franklin
- Gravette
- Highfill
- Jonesboro
- Little Rock
- Logan
- Lowell
- North Little Rock
- Pea Ridge
- Pine Bluff
- Pulaski County
- Rogers
- Sebastian County
- Sherwood
- Springdale
- Washington County
California$84–$116/hr
- Alameda
- Alturas
- Anaheim
- Arcata
- Bakersfield
- Banning
- Bishop
- Camarillo
- Carmichael
- Cathedral City
- Chula Vista
- Corona
- Cotati
- Desert Hot Springs
- El Cerrito
- Fallbrook
- Fresno
- Galt
- Healdsburg
- Joshua Tree
- Kern County
- La Quinta
- La Verne
- Lakeside
- Long Beach
- Los Altos
- Los Angeles
- Madera
- Marin County
- McKinleyville
- Merced
- Moorpark
- Murphys
- Murrieta
- Novato
- Oakland
- Oceanside
- Ojai
- Orange
- Palm Desert
- Palm Springs
- Penngrove
- Petaluma
- Placer County
- Placerville
- Rancho Cucamonga
- Rancho Mirage
- Riverside
- Rohnert Park
- Sacramento
- Salinas
- San Bernardino
- San Diego
- San Francisco
- San Jose
- San Luis Obispo
- San Rafael
- San Ramon
- Santa Barbara
- Santa Clarita
- Santa Rosa
- Santee
- Sebastopol
- Simi Valley
- Sonoma
- Sunnyvale
- Temecula
- Thousand Oaks
- Truckee
- Tulare
- Twentynine Palms
- Ventura
- Victorville
- Visalia
- West Covina
- Whittier
- Yucca Valley
Colorado$77–$104/hr
Connecticut$83–$114/hr
Delaware$75–$103/hr
Florida$72–$98/hr
- Alachua
- Aventura
- Bonita Springs
- Bradenton
- Bradford County
- Brandon
- Brevard County
- Broward County
- Cape Coral
- Collier County
- Crestview
- Davie
- Daytona Beach
- Dunedin
- Duval
- Englewood
- Eustis
- Florida City
- Fort Lauderdale
- Fort Myers
- Fort Pierce
- Four Corners
- Gainesville
- Green Cove Springs
- Hallandale Beach
- Hernando County
- Hialeah
- Hillsborough
- Jacksonville
- Jacksonville Beach
- Jefferson County
- Jupiter
- Lakeland
- Lakewood Ranch
- Largo
- Lee County
- Lehigh Acres
- Leon County
- Manatee County
- Margate
- Marion County
- Melbourne
- Miami
- Miami-Dade County
- Milton
- Nassau County
- New Port Richey
- Ocala
- Okaloosa County
- Orange County
- Orange Park
- Orlando
- Palm Bay
- Palm Beach
- Palm Coast
- Panama City
- Panama City Beach
- Pasco County
- Pensacola
- Pinellas County
- Polk County
- Punta Gorda
- Riverview
- Ruskin
- Saint Johns County
- Saint Lucie County
- Saint Petersburg
- Sarasota
- Tallahassee
- Tampa
- Taylor County
- Volusia County
- Wakulla County
- Winter Haven
- Yulee
Georgia$71–$99/hr
- Acworth
- Albany
- Athens
- Atlanta
- Augusta
- Blue Ridge
- Buford
- Calhoun
- Carrollton
- Cartersville
- Cherokee County
- Clayton
- Cobb County
- Columbus
- Covington
- Dade County
- Dawson
- Dawsonville
- Gordon
- Hoschton
- Jackson
- Jones County
- Lumpkin
- Macon
- McDuffie County
- Milner
- Muscogee
- Nashville
- Peachtree Corners
- Perry
- Rossville
- Roswell
- Sandy Springs
- Savannah
- Screven
- Thomas County
- Valdosta
- Warner Robins
- Wayne County
- Woodstock
Hawaii$85–$117/hr
Idaho$72–$100/hr
Illinois$81–$110/hr
- Aurora
- Barrington
- Bartlett
- Beach Park
- Belleville
- Carterville
- Champaign
- Chicago
- Cook County
- Decatur
- East St. Louis
- Elgin
- Frankfort
- Glenview
- Goodfield
- Herrin
- Johnson County
- Joliet
- Kane
- La Grange
- Lake in the Hills
- Marshall
- McHenry
- Moline
- Morgan County
- Naperville
- Oak Lawn
- Orland Park
- Palatine
- Palos Heights
- Peoria
- Princeton
- Rockford
- Round Lake Beach
- Savanna
- Sheldon
- Springfield
- St. Charles
- Sycamore
- Tinley Park
- Wauconda
- Waukegan
- Will County
- Williamson County
Indiana$73–$100/hr
- Allen
- Avon
- Bloomington
- Bristol
- Brownsburg
- Carmel
- Crawfordsville
- Crown Point
- Delaware County
- Elkhart
- Evansville
- Fishers
- Fort Wayne
- Goshen
- Granger
- Greensburg
- Hamilton
- Hammond
- Hendricks County
- Indianapolis
- Indianapolis city
- Jefferson
- Johnson County
- Kokomo
- Kosciusko County
- Lafayette
- Lake County
- Lawrence
- Marion
- Merrillville
- Middlebury
- Mishawaka
- Monroe County
- Nappanee
- Noblesville
- Plainfield
- Saint Joseph County
- Shelbyville
- Shipshewana
- South Bend
- Speedway
- Warsaw
- West Lafayette
Iowa$73–$99/hr
Kansas$69–$94/hr
Kentucky$69–$98/hr
Louisiana$66–$94/hr
Maine$73–$100/hr
Maryland$77–$105/hr
Massachusetts$84–$113/hr
Michigan$71–$98/hr
- Ann Arbor
- Cass County
- Cassopolis
- Clawson
- Clinton
- Clinton Charter Township
- Dearborn
- Dearborn Heights
- Detroit
- Flint
- Fraser
- Garden City
- Genesee County
- Grand Rapids
- Grosse Pointe
- Harrison Charter Township
- Hudsonville
- Kalamazoo
- Lansing
- Livonia
- Macomb
- Macomb Township
- Mason
- Midland
- Mount Clemens
- New Baltimore
- Niles
- Oakland County
- Port Huron
- Saginaw
- Shelby
- Southfield
- Southgate
- Sterling Heights
- Three Rivers
- Troy
- Van Buren County
- Vandalia
- Warren
- Washtenaw County
- Westland
- Whitehall
Minnesota$82–$110/hr
- Anoka
- Bloomington
- Blue Earth County
- Brainerd
- Brooklyn Park
- Cottage Grove
- Dakota County
- Duluth
- Faribault County
- Ham Lake
- Hastings
- Hennepin County
- Hopkins
- Hugo
- Little Canada
- Mankato
- Maple Grove
- Martin County
- Minneapolis
- Morris
- Park Rapids
- Paynesville Township
- Plymouth
- Ramsey
- Rochester
- Roseville
- Slayton
- St. Cloud
- St. Paul
- Stevens County
- Stillwater
- Waconia
- Waseca
- White Bear Lake
- Woodbury
Mississippi$66–$91/hr
Missouri$70–$99/hr
- Blue Springs
- Bowling Green
- Branson
- Cameron
- Center
- Clay County
- Columbia
- Crystal City
- Festus
- Franklin
- Fulton
- Hannibal
- Independence
- Jackson
- Jasper
- Jefferson County
- Joplin
- Kansas City
- Lee's Summit
- Lincoln
- Mehlville
- Monroe City
- Monroe County
- O'Fallon
- Ozark
- Palmyra
- Perry
- Platte City
- Ralls County
- Raymore
- Saint Charles
- Saint Louis
- Savannah
- Springfield
- St. Joseph
- St. Louis
- Troy
- Wentzville
- Weston
Montana$70–$97/hr
Nebraska$72–$98/hr
Nevada$77–$111/hr
New Hampshire$78–$105/hr
New Jersey$82–$111/hr
New Mexico$68–$94/hr
New York$84–$114/hr
North Carolina$71–$98/hr
- Alamance County
- Asheville
- Buncombe County
- Cabarrus County
- Carteret County
- Cary
- Charlotte
- Chatham County
- Concord
- Cumberland County
- Davidson
- Durham
- Eden
- Elizabeth City
- Ellerbe
- Fayetteville
- Greensboro
- Hampstead
- Harnett County
- Hendersonville
- High Point
- Huntersville
- Iredell County
- Kings Mountain
- Lee County
- Leland
- Lenoir
- Lillington
- Mecklenburg County
- Montgomery County
- Moore County
- Moyock
- Murphy
- Onslow County
- Orange County
- Polk County
- Raleigh
- Richlands
- Richmond County
- Robeson County
- Rocky Mount
- Ruffin
- Scotland County
- Sneads Ferry
- Stanly County
- Statesville
- Surf City
- Thomasville
- Topsail Beach
- Union County
- Wake County
- Washington County
- Wilmington
- Winston-Salem
North Dakota$71–$96/hr
Ohio$76–$102/hr
- Akron
- Amherst
- Ashville
- Avon
- Avon Lake
- Canton
- Chagrin Falls
- Cincinnati
- Circleville
- Clark County
- Cleveland
- Columbiana
- Columbus
- Cuyahoga County
- Dayton
- Eastlake
- Elyria
- Franklin
- Grafton
- Hardin County
- Hartford
- Hocking County
- Independence
- Jackson Township
- Kenton
- LaGrange
- Lake County
- Lakewood
- Lorain
- Mahoning County
- Medina
- Mentor
- Miamisburg
- Mount Orab
- North Olmsted
- North Ridgeville
- Oberlin
- Olmsted Falls
- Parma
- Paulding
- Plymouth
- Sheffield
- Sheffield Lake
- St. Clairsville
- Sylvania
- Toledo
- Van Wert
- Wapakoneta
- Westlake
- Willoughby
- Wooster
- Youngstown
Oklahoma$64–$90/hr
Oregon$80–$105/hr
Pennsylvania$73–$101/hr
- Allegheny County
- Allentown
- Ambler
- Ardmore
- Bangor
- Berks County
- Bethlehem
- Butler County
- Carbondale
- Chambersburg
- Chester
- Clarks Summit
- Dauphin County
- Delaware County
- Duncannon
- Erie
- Farrell
- Franklin County
- Gardners
- Greensburg
- Harrisburg
- Hermitage
- Hershey
- Huntingdon County
- Irwin
- Lancaster
- Luzerne County
- Mercer County
- Meyersdale
- Montgomery County
- Muhlenberg Park
- New Brighton
- Perry County
- Philadelphia
- Pittsburgh
- Pottsville
- Reading
- Royersford
- Scranton
- Sharon
- Shippensburg
- West Lawn
- Westmoreland County
- Windber
- York County
Rhode Island$76–$103/hr
South Carolina$71–$99/hr
- Aiken
- Anderson
- Charleston
- Cherokee County
- Clarendon County
- Clemson
- Clover
- Columbia
- Conway
- Darlington County
- Edgefield County
- Florence
- Georgetown County
- Goose Creek
- Greenville
- Horry County
- Kershaw County
- Lancaster County
- Laurens
- Lexington
- Little River
- Lyman
- Mount Pleasant
- Myrtle Beach
- North Augusta
- North Charleston
- Pendleton
- Pickens
- Richland County
- Rock Hill
- Seneca
- Six Mile
- Spartanburg County
- Summerville
- Sumter County
South Dakota$70–$93/hr
Tennessee$70–$96/hr
- Ashland City
- Blount County
- Blountville
- Bradley County
- Bristol
- Burns
- Carroll County
- Carter County
- Carthage
- Charlotte
- Chattanooga
- Cheatham County
- Clarksville
- Cleveland
- Coffee
- Coopertown
- Crossville
- Davidson County
- Dickson
- Estill Springs
- Fentress County
- Franklin
- Greeneville
- Hendersonville
- Henry
- Jackson
- Johnson City
- Kingsport
- Knox County
- Knoxville
- Lincoln County
- Linden
- Madison County
- Manchester County
- Maryville
- McKenzie
- Memphis
- Monteagle
- Montgomery County
- Mount Juliet
- Murfreesboro
- Nashville
- Nashville-Davidson
- Paris
- Roane
- Robertson County
- Rutherford County
- Savannah
- Sevier County
- Sevierville
- Sewanee County
- Shelby County
- Signal Mountain
- Smyrna
- Sullivan County
- Sumner County
- Tullahoma
- Washington County
- White Bluff
- Williamson County
- Winchester
Texas$71–$98/hr
- Abilene
- Anna
- Arlington
- Atlanta
- Austin
- Bandera
- Bedford
- Benbrook
- Bowie
- Brazoria
- Brazos County
- Bryan
- Burleson
- Cameron
- Castroville
- Cedar Park
- College Station
- Collin County
- Cooper
- Corpus Christi
- Corsicana
- Dallas
- Delta County
- Denton
- Denver City
- Devers
- El Paso
- Ellis County
- Fort Bend County
- Fort Worth
- Frisco
- Galveston
- Granbury
- Harper
- Harris County
- Honey Grove
- Houston
- Hurst
- Jacksonville
- Killeen
- Laredo
- League City
- Leander
- Lewisville
- Liberty
- Lindale
- Lubbock
- Melissa
- Midland
- Midlothian
- Montgomery
- New Braunfels
- Paradise
- Paris
- Plano
- Robertson County
- Rockwall
- Rosenberg
- Rowlett
- Rusk
- San Antonio
- San Marcos
- Santa Fe
- Smith County
- South Padre Island
- Spring
- Tarrant County
- Taylor
- Texarkana
- The Woodlands
- Tom Green County
- Tomball
- Travis County
- Tyler
- Van Alstyne
- Waco
- Waxahachie
- Whitesboro
- Wichita Falls
- Wise County
Utah$75–$103/hr
Vermont$79–$102/hr
Virginia$74–$103/hr
- Abingdon
- Albemarle County
- Alexandria
- Arlington
- Bristol
- Charlottesville
- Chesapeake
- Chesterfield County
- Culpeper County
- Fairfax
- Fredericksburg
- Hampton
- Harrisonburg
- James City County
- King George County
- Lanexa County
- Loudoun County
- Lynchburg
- Midlothian
- New Kent
- Newport News
- Norfolk
- Portsmouth
- Prince William County
- Richmond
- Roanoke
- Salem
- Stafford County
- Suffolk
- Virginia Beach
- West Point
- Williamsburg
- Winchester