The biggest cost driver is not technology — it is almost always unclear scope. Every open question in the brief turns into a buffer in the estimate. A vendor that does not know the exceptions and edge cases will assume the worst. Putting two weeks into a proper discovery can cut the final cost by far more than haggling over hourly rates.
Integrations are another reliable source of cost. A form that saves data is easy to estimate; the same functionality wired into a legacy ERP is a different problem. The unknown lives in the third party: undocumented APIs, long certification processes, data that does not match your model. Ask any vendor to list every external system, because that is where the numbers slip.
The requirements nobody writes down can easily double the estimate. A tool used by a handful of staff is a very different build from the same functionality serving a hundred thousand users. Security reviews, high availability, load handling, data retention rules and multi-language support all add weeks of work. Write them down at the start or flutter vs react native expect them to arrive later as change requests.
The team you are quoted changes the arithmetic. A rate card tells you very little on its own: an experienced engineer at a higher rate can be less expensive in the end than two juniors who need heavy code review. Ask as well what else appears on the invoice: project management, testing, DevOps and hire llm developers UX design are real work, but they must be named rather than hidden inside a blended rate.
The quoted figure is rarely the total cost. Expect cloud costs, subscriptions and licences, logging and alerting and an ongoing support budget annually. A useful planning figure holds that software in active use consumes a meaningful share of its original build cost per year for updates, security patches and small improvements. Leaving it out of the budget remains the most frequent planning error.