On average, a new roof costs between $5,000 and $12,000. Some materials, like metal or clay tile, can cost more than twice that amount, while asphalt shingles are significantly cheaper.