Сроки можно расчитать, если ТЗ составлено грамотно и полно — до последнего винтика. Но такие ТЗ мало кто составляет т. к. это те же сроки и процентов 20 от разработки, иначе все сроки будут сильно плавающими до нескольких раз, особенно если заказчиком вносятся коррективы во время работы.
В данной ситуации виноваты оба — фрилансер в том, что взялся за работу скорее всего не имея полного ТЗ, заказчик — что доверился фрилансеру не имеющему полной информации о проекте. Выход такой — остановить работу, сесть за написание ТЗ фрилансеру и заказчику вместе, по ТЗ уже разбить работу на мелкие части и оценивать из по срокам и стоимости. Естественно написаное ТЗ тоже оплачивается заказчиком, как часть проекта.