Поменяйте методологию разработки и не нужны будут ни ТЗ ни прайсы с услугами. Будет только стоимость часа вашей работы.
Сейчас в идеале у вас так: вы составляете ТЗ (зачастую бесплатно), договариваетесь о стоимости проекта, начинаете разработку, сдаете проект, получаете деньги, профит. Но! Зачастую бывает так, как вы сами сказали - заказчик сам не знает чего хочет. И вот вы пишете проект, и в какой-то момент заказчик говорит, 4что он не предусмотрел очень важную для него фичу. Вы понимаете, что малой кровью эту фичу не добавить, что ее нужно было предусмотреть на этапе проектирования системы. Пересчитываете стоимость, озвучиваете ее и прощаетесь, так как стоимость уже была озвучена ранее, бюджет под это дело выделен, а пересматривать его по разным причинам со стороны заказчика никто не хочет/не будет. Или еще хуже - вы написали проект, сдаете его, а заказчик его не принимает и говорит что это вообще не то, что он хотел.
В итеративном подходе, работа делится на спринты, например по 2 недели. В конце спринта вы показываете заказчику то, что сделали и оговариваете, что будете делать в следующем спринте. На протяжении всего проекта заказчик плотно общается с вами и активно в нем участвует, вы не выпадаете из поля зрения. Он видит как растет его проект, добавляются новые фичи. Меньше всякой бумажной бюрократии. Для вас думаю не надо плюсы объяснять )