The do it yourself resource for homeowners from home improvement professionals.

How to Measure a Roof for Shingles

If you need to replace your shingles or add a new roof on your home, then you’ll need to learn how to measure a roof for shingles. You can approach the task in two ways. The first method allows you to estimate roof square footage without going up on a ladder. To use the second method, which is the most accurate, you’ll need to climb on your roof.

Tools You’ll Need How to Measure a Roof for Shingles

The level is only needed if you’re estimating roof size based on its pitch.

  • Measuring tape
  • Notepad and pen
  • Extension ladder
  • Level

How to Measure a Roof for Shingles Steps

For the estimation method:

  1. Measure the width and length of every room in your home that is directly under your roof, including garages and covered porches.
  2. Multiple each room’s width and length individually to find square footage.
  3. Add the square footage of all spaces to arrive at total square footage.
  4. Enter your attic with a level.
  5. Hold the level against the bottom of a roof rafter and make a mark 12 inches up the rafter.
  6. Keep the level against the bottom of the rafter while lowering it into a horizontal position.
  7. Stop the level once it shows that it’s level.
  8. Measure up from it vertically to the point you marked on the rafter.
  9. Record the vertical measurement on paper as the ratio X/12.
    1. X represents the vertical dimension.
    2. 12 represents the 1 foot mark.
  10. Find a slope factor chart on the internet to obtain the slope factor for your ratio.
  11. Multiple total square footage by the slope factor.
  12. Pad this figure by 5% (multiple by 1.05).

For the actual measurement method:

  1. Draw a general representation of your roof showing every surface plane.
  2. Secure a ladder and climb onto the roof while wearing nonskid shoes.
  3. Measure the width and length of every section of the roof.
  4. Record the dimensions for each section of roof on drawing.
  5. After gathering all measurements, begin calculations.
    1. Multiply the lengths and widths of each section to determine square footage.
    2. Add all individual square footage results to get the total square footage.
  6. Multiply the total by 5% (1.05).
  7. Use this final figure to select quantities of shingles and rolls of roofing paper.

Contact PJ Fitzpatrick’s Expert Roofers for Help

Replacing your roof involves a great deal of labor. Should you choose to hire a professional for the job, PJ Fitzpatrick is an experienced, licensed roofing contractor. We’ve been specializing in roof replacements in Delaware, Maryland, New Jersey, and Pennsylvania since 1980. Ask us for a roofing estimate today.

Need help with this project?

We have trained professionals that can help.

Contact us today. 1-888-446-6492 Get Estimate

P.J. Fitzpatrick, Inc.

21 Industrial Blvd
New Castle, DE 19720

  • NJ Lic. #13VH10727200
  • DE Lic. #2009603070
  • PA Lic. #PA011323
  • MD Lic. #105494

© 2020 P.J. Fitzpatrick, Inc.

Website by the Prager Microsystems, Inc. Digital Marketing Agency

Live Chat With Us
[gravityform id="20" title="false" description="false"]
<div class='gf_browser_gecko gform_wrapper' id='gform_wrapper_20' ><form method='post' enctype='multipart/form-data' id='gform_20' action='/diy/roofing-installation/how-to-measure-a-roof-for-shingles/'> <div class='gform_body'><ul id='gform_fields_20' class='gform_fields top_label form_sublabel_below description_below'><li id='field_20_1' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_20_1' >Your Name:<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_1' id='input_20_1' type='text' value='' class='medium' aria-required="true" aria-invalid="false" /></div></li><li id='field_20_4' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_20_4' >Phone Number:<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_phone'><input name='input_4' id='input_20_4' type='text' value='' class='medium' aria-required="true" aria-invalid="false" /></div></li> </ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_20' class='gform_button button' value='Submit' onclick='if(window["gf_submitting_20"]){return false;} window["gf_submitting_20"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_20"]){return false;} window["gf_submitting_20"]=true; jQuery("#gform_20").trigger("submit",[true]); }' /> <input type='hidden' class='gform_hidden' name='is_submit_20' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='20' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_20' value='WyJbXSIsIjExY2Q2ODU0YWI0Y2RiZGJiMzBhMmEyNzEwY2IwZDM1Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_20' id='gform_target_page_number_20' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_20' id='gform_source_page_number_20' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div><script type='text/javascript'> jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 20) {jQuery('#input_20_4').mask('(999) 999-9999').bind('keypress', function(e){if(e.which == 13){jQuery(this).blur();} } );} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [20, 1]) } ); </script>