Replacing a section of your roof varies by size and material. For asphalt shingles, expect $7–$22 per square foot; metal roofing runs $20–$50; tile is $30–$60; slate hits $40–$80; wood shakes are $16–$40; and flat roofing costs $4–$16, adjusted from Nerdwallet data. Small jobs often cost more per square foot than full replacements due to setup time. A contractor can give you a spot-on quote based on your roof’s specifics.