What Really Drives The Cost Of Custom Software
The single largest cost driver is not technology — it is almost always uncertainty. Each unanswered question in the specification is converted into padding inside the number you receive. A team that cannot see what happens on the unhappy path has to assume the worst. Spending a week on a discovery phase frequently cuts the total far more than haggling over hourly rates.
Integrations tend to be another reliable source of cost. A screen that writes to your own database is predictable; the same functionality talking to a legacy ERP is a different problem. The effort sits in the third party: undocumented APIs, waiting on someone else's team, data that does not match your model. Ask each bidder to fixed price vs time and materials integrations separately, as this is the usual source of overruns.
The requirements nobody writes down can easily double the estimate. An application used by a handful of staff costs far less than the same functionality serving public traffic. Security reviews, availability guarantees, scalability, audit logging and localisation all add measurable effort. Write them down at the start or else expect the estimate to move later.
The mix of people behind the number matters. A day rate reveals very little on its own: a senior engineer at a premium rate frequently turns out to be cheaper per delivered feature than two inexperienced developers who require heavy code review. Also ask which roles are billed: project management, vue.js software testing, release engineering and UX design are real work, which is better laravel or .net but they must be itemised.
The quoted figure is not the full cost of ownership. Budget for infrastructure, paid APIs, logging and alerting and a change budget for every year the software runs. A reasonable rule of thumb says that any production system needs a noticeable fraction of the original budget every year simply to stay current. Leaving it out of the budget has always been the most frequent planning error.