I worked on small to large projects and not once did we get the time right.
I think that the development time cannot be so easily predicted. Not without a deep and personal info on the project, people and skills. Even then it’s so easy to miss the time. You need to sit down with your programmers and develop a rough timeline.
If it’s a budget issue, isn’t it easier to pay fixed amount?