Of every five clients who ask us for a full roof replacement quote, four have already received at least one other quote that is meaningfully different from ours. Sometimes higher, sometimes lower, almost never within 10%. This is not because anyone is being dishonest; it is because roofing quotes are constructed in very different ways. This article is a walk through what actually goes into the number.

The worked example below is for a 2,000 sq ft (roughly 186 sq m) double-storey terrace in Petaling Jaya, with a moderate-complexity hip-and-valley roof, replaced with a mid-range Monier concrete tile.

The four real line items

Every honest roofing quote breaks down into four buckets. If you do not see all four, you are looking at an estimate, not a quote.

1. Strip and disposal: roughly RM 4,500 to RM 6,200

Removing the existing tiles is more labour than people imagine. Tiles need to be lifted in pairs, lowered to the ground, sorted into salvage and disposal, and either carted away or stacked for the manufacturer’s reclamation scheme. There is also a tipping fee at the construction-waste handler — usually RM 380 to RM 540 per skip.

2. Timber, membrane and flashing: roughly RM 5,800 to RM 9,400

The bones of the new roof. Batten replacement (typically 30% of the runs on a twenty-year-old roof), a breathable membrane (DuPont Tyvek or equivalent), and new aluminium flashings at every chimney, parapet wall, skylight and valley.

3. Tiles and ridge caps: roughly RM 9,800 to RM 16,500

The biggest variable. A mid-range Monier concrete tile costs roughly RM 4.20 per tile; a premium clay tile from Marley or Tudor can be RM 8.50 or more. On a 2,000 sq ft roof you need roughly 2,400 field tiles plus 320 ridge and hip caps. Tile colour and finish add 5–15%.

4. Labour: roughly RM 8,200 to RM 12,800

Eight to twelve days of work for a four-person crew. This is the line that contractors most often try to hide by inflating tile prices to bury the labour, or vice versa. We always list it separately so you can compare like for like with another quote.

So what does the total come to?

For our worked example, an honest mid-range quote lands at RM 28,300 to RM 44,900. Quotes meaningfully below RM 28,000 are usually skipping either the membrane, the timber replacement, or the disposal. Quotes meaningfully above RM 45,000 are usually padded on labour or use a high-end imported tile.

The cheapest roof you ever buy is the one that does not need to be touched again for twenty years. The most expensive roof you ever buy is the cheap one that fails inside eight.

The three places contractors hide margin

If you are comparing two quotes that look similar in headline price but feel different, the difference is almost always in one of these three places:

  • Material mark-up. Some contractors charge tile at “list price” while buying at a 30% trade discount. Always ask to see the supplier invoice.
  • Timber assumption. The quote may assume zero timber replacement — meaning any rot found becomes a chargeable extra. Honest quotes assume a 20–30% timber replacement rate built in.
  • Disposal as a separate line. The skip and the tipping fee can be conveniently omitted from the headline and added later. Make sure disposal is included, not “at cost”.

What is reasonable to pay up-front?

The industry norm in the Klang Valley is 30% on signing, 30% at the membrane stage, 30% at re-tile completion, and 10% on hand-over after the final inspection. Be wary of any contractor asking for more than 40% before any tiles are stripped — that is usually a cash-flow signal rather than a confident contractor.

A final note on quotes

A written, itemised quote should take at least an hour on site to produce. If someone gives you a number over the phone, by WhatsApp, or after a five-minute kerb-side look, they are guessing. The number will change. Better to wait for the climb-up.