When it comes to performance and value, metal outperforms shingles, and you get what you pay for. On average, it may cost anywhere between $7,000 and $13,000 for a shingle roof replacement. Depending on the size of the home and the materials, the average for a metal roof replacement can be between $20,000 to $35,000.