Не знаю как там с CMS, но если писать с нуля то после 20го проекта начнете говорит оценку с погрещностью в 10-20%(конечно если заранее все описано в ТЗ и оно не изменяется).
Я обычно делаю так:
1) Разбиваю проект на разделы, которые уверен что сделаю без гугла и stackovewflow, прикидываю время нужное, уумножаю на 1.2
2) На оставшиеся нестандартные разделы прикидываю время и умножаю на 1.5
3) Если в проекте есть общение с другими сервисами или внешний истоник данных(загрузка прайса в БД, связь с 1С, парсинг данных откуда-то еще) — прикидываю время в иделале и умножаю на 5(иногда нужно бы и на 10)