The honest answer is that the range is enormous, and that most of the spread has nothing to do with how many screens you want. Two projects that look identical in a specification can differ by a factor of four once you account for what the software is allowed to touch and who has to sign off on it.

This explains where the money actually goes, what a quote should break into, and why the lowest number in your inbox is usually the one that ends up costing most. It is written for someone buying healthcare software from abroad, or from outside the software industry. For the shape of the work itself rather than its price, see what building healthcare software in Vietnam involves.

The market rate, and why it is the least useful number

Published 2026 rates put Vietnamese agency billing at roughly USD 25–39 an hour for a mid-level engineer and USD 39–56 for a senior, with leads and architects higher. For comparison, the same published surveys put US agency rates at USD 120–240 and Western European rates at USD 80–180. Those figures come from vendor-published market guides rather than from an independent survey, so treat them as a sense of the gap rather than a quotation — but the gap itself is real and is why you are reading this.

The reason the hourly rate is the least useful number in the conversation is that it tells you the price of an hour and nothing about how many hours. A team at USD 30 an hour that needs eleven hundred hours costs more than a team at USD 50 an hour that needs five hundred. In healthcare specifically, the hour count is driven by four things, and none of them appear in a rate card.

The four things that actually move the number

1. Whose rules the software has to live under

This is the largest single multiplier and it is set by your patients' location, not yours.

If the data belongs to US patients, HIPAA applies to your vendor as a business associate, which means a signed business associate agreement, documented safeguards, minimum-necessary access controls, breach notification timelines and an audit trail. That is real engineering work, not paperwork — it changes how authentication, logging and data retention are built, and it is cheaper to build in from the start than to retrofit.

Several US states go further than the federal rule. Florida law restricts certain licensed providers using certified EHR technology from storing qualified electronic health records outside the United States, its territories or Canada. Texas's managed care contract bars offshore access to state health and human services data. Federal Medicaid rules under Section 6505 of the Affordable Care Act prohibit payment for items or services furnished outside the US. None of these make a Vietnamese team impossible, but some of them make a Vietnamese team impossible for that specific data, and finding that out in month five is expensive.

If the data belongs to EU patients, you are in GDPR territory and the vendor is a processor under Article 28, with the transfer mechanism to arrange. If the data belongs to Vietnamese patients, Vietnam's Law on Personal Data Protection (Law No. 91/2025/QH15) has been in force since 1 January 2026. Health status is treated as sensitive data, which removes the five-year compliance deferral that smaller companies otherwise get.

A vendor who does not ask where your patients are, in the first conversation, is not pricing this. The detail of what each regime requires — and the cases where the answer is that offshore development is not permitted at all — is covered in our guide to sending patient data offshore.

2. What it has to talk to

A system that stands alone is a fraction of the cost of one that exchanges data with something else. Healthcare is unusually bad for this because the things you need to talk to are old, varied and often undocumented.

Budget differently for each of these, in ascending order of pain: a modern system with a documented FHIR API; an older one speaking HL7 v2 over a hospital interface engine; a vendor system with a proprietary API and a licence fee to access it; a system with no API at all, where the integration is a nightly file drop; and a system whose supplier does not want you integrating with it and will not return your emails.

The last two are where projects overrun. Before you accept any quote, name every system the software must exchange data with, and ask the vendor which category each one falls into. If they cannot say, they have not checked, and the estimate is a guess.

3. How much history has to come with you

Data migration is routinely underestimated, in healthcare more than anywhere, because clinical data accumulated over a decade is messier than anyone remembers. Dates in three formats. Names with and without diacritics. Patients duplicated because somebody re-registered them. Free-text fields holding information that should have been structured. Records from a system that was itself a migration from an older system.

Cleaning that is slow, it cannot be fully automated, and it needs somebody clinical to adjudicate the ambiguous cases. On a project replacing an existing system, migration is frequently a quarter of the total and it is the part most likely to be quoted as a line item with a suspiciously round number next to it.

The cheapest honest answer is often to migrate less: bring the last two years live and keep the rest in a read-only archive. That decision is yours to make and it can take a very large number off the quote.

4. What happens at three in the morning

A booking site going down overnight is an inconvenience. A clinical system going down overnight is a different category of event, and the arrangements that prevent it — monitoring, redundancy, somebody genuinely on call, a tested restore rather than a backup nobody has ever restored — cost money both to build and to maintain.

Decide which category you are in and say so in the brief. Paying for availability you do not need is waste; discovering you needed it is worse.

What a quote should break into

Ask for the number split at least this far. A single figure for "development" is not a quote, it is a position.

  • Discovery and specification — usually two to four weeks, and the one line you should be least keen to cut.
  • Build, itemised by functional area so you can see what each part of the system is costing and make trade-offs.
  • Integration, itemised per system, with each one's category named.
  • Data migration, with the volume and the number of source systems stated.
  • Compliance work — named explicitly rather than assumed into the build line.
  • Testing, including who does acceptance testing and how long you have.
  • Infrastructure, monthly, for the first year.
  • Support and maintenance, annual. Industry guidance commonly puts ongoing maintenance at twenty to thirty per cent of the original build cost per year. If your quote does not contain a maintenance figure, add one at that rate before you compare.

That last point is where comparisons go wrong. A build quote of USD 60,000 with no maintenance line and a build quote of USD 75,000 with three years of support included are not fifteen thousand apart. They may be the other way round.

Why the lowest quote is usually the most expensive

Three mechanisms, all common enough to plan for.

The first is scope. A low quote is frequently an accurate price for a narrower reading of your specification. Everything outside that reading becomes a change request at a rate set after you have lost the ability to walk away.

The second is the specification itself. If nobody has invested in discovery, the gaps surface during the build, and each one is a conversation during which work stops. The cheapest discovery phase is the one that found the problem before anyone was coding.

The third is handover. Software that works but that nobody else can maintain has a cost that arrives later, when you want to change something and find that the only people who understand it are the people who built it. Ask what documentation you receive, and ask whether a different team could pick it up — then put the answer in the contract.

Published market guidance suggests around forty per cent of companies outsourcing development report unexpected fees. The way to not be in that forty per cent is to make the quote itemised enough that a surprise has nowhere to hide.

What legitimately makes it cheaper

Not the hourly rate. These:

  • Reduce the regulatory surface. If only a small part of the system touches identifiable patient data, say so and design for it. Keeping clinical data in one well-controlled component, with the rest of the system working from de-identified references, is both cheaper and safer than treating the whole application as clinical.
  • Migrate less history. As above. Frequently the single largest saving available.
  • Buy the commodity parts. Authentication, scheduling, messaging, payments and document storage are solved problems. Paying a team to build them from scratch in 2026 is paying for a worse version of something you could rent.
  • Phase it. One clinic, one workflow, real patients, then expand. This costs more in total hours and less in total money, because the second phase gets built against what you learned rather than against what you assumed.
  • Write the brief properly. The quality of a fixed-price quote is capped by the quality of the specification. A vague brief is priced for risk, and you pay that risk premium whether or not the risk happens.

Before you ask anyone for a number

Have an answer to these five, because the quotes you get will be worth roughly as much as your answers:

  1. Where do your patients live? That sets the regulatory regime, and the regime sets a large part of the cost.
  2. What systems must this exchange data with, by name?
  3. How many patient records exist today, in how many systems, and how far back do you actually need?
  4. What happens to your business if the system is unavailable for four hours?
  5. Who internally will make decisions, and how many hours a week do they genuinely have?

Send the same page to everyone you approach. The quotes become comparable, and the vendors who come back with questions rather than a template are the ones worth continuing with.

If you want a second opinion on a quote you have already received — including a view on whether the maintenance line is missing — send it over and we will tell you what we see.