Problems & solutions · Custom Software

EHR Software Development Problems: The 7 That Cost Clinics Real Money, and How to Avoid Them

EHR Software Development architecture and database illustration showing common problems and fixes.
The short answer

The most expensive failure is a data model that cannot represent the objects your specialty actually works with, because everything downstream becomes a workaround with a salary attached. A dermatology group ends up hiring scribes so charts close on time, an orthopedic group has medical assistants retyping imaging results into discrete fields, and physicians finish notes at home after dinner. None of that appears as a software cost. It appears as payroll, as slower throughput, and eventually as recruitment difficulty, which is the version of the bill that keeps growing after you have stopped noticing it.

Why does replacing the whole system at once go wrong so often?

The instinct is understandable. If the electronic health record system, or EHR, is the problem, replace the EHR. So the project is scoped as clinical, scheduling, billing, portal and interfaces, all cut over together, and it becomes the largest thing the practice has ever attempted while the practice continues seeing patients every day.

What goes wrong is not usually the engineering. It is that a single cutover puts clinical trust and revenue collection at risk in the same week. If charting is unfamiliar and claims are also flowing through new rails, every problem is ambiguous: nobody can say whether the denial is a coding issue, an interface issue or a training issue, and the practice loses confidence in the whole project rather than in one component.

The pattern that works is to build the layer where you are differentiated and leave the rest alone until it has earned trust. That usually means specialty charting, group wide scheduling and the analytics layer first, reading from the incumbent through its interface during transition, with proven billing rails untouched. Replace the core last, location by location.

Two rules make this survivable. Never put clinical go live and billing cutover in the same phase. And run each location in parallel for a defined period with a written fallback, including who decides to invoke it. A developer who has never rolled a clinic back has never really cut one over, and the plan they hand you will read like a schedule rather than a risk document.

What goes wrong when you migrate years of clinical data?

Migration in this category is where optimistic timelines die, and the reason is that the interesting data is the least structured. Problems, medications, allergies and results can be exported and mapped. What cannot be mapped cleanly is everything that was recorded as free text because the incumbent had nowhere else to put it, which in a specialty practice is often the clinically important part.

Three traps recur. The first is medication lists with reconciliation history: knowing what a patient takes now is straightforward, and knowing what was stopped, when and by whom is what a clinician actually wants at the next visit. The second is results that arrived as faxed documents and were never discretised, so an imaging result exists as an image of text and is unsearchable in the new system unless somebody plans for that. The third is duplicate patient records, which every practice has and which merging is a clinical safety decision rather than a deduplication script.

The workable approach is a split with a stated line. Migrate discrete data for active patients, meaning problems, medications with their history, allergies, immunisations and results your clinicians will act on. Archive everything else as searchable documents attached to the patient, retrievable without being pretended into structure. Then verify by sampling: have treating clinicians confirm a set of complex active charts is safe to work from before their location goes live. A quote that treats migration as a data load has not looked at your archive.

Why do lab, e-prescribing and clearinghouse interfaces break after launch?

Interfaces are the most common source of post launch incidents, and they rarely fail loudly. A laboratory results feed keeps delivering, then a compendium update renames a test code and results start filing as unmatched, sitting in a queue nobody watches. A clearinghouse changes a validation and a claim category starts rejecting, which looks like a billing problem for three weeks until someone traces it. An e-prescribing directory entry changes and prescriptions to one pharmacy chain stop routing.

The pattern is that interfaces degrade partially, and partial degradation is invisible unless you are looking for absence. A results feed that stops entirely triggers a call from the lab. A results feed that silently misfiles four percent of results does not, and those four percent are somebody's biopsy.

The fixes are operational as much as technical. Monitor expected volume per interface per day and alert on a drop rather than only on errors, because silence is the dangerous state. Give every unmatched or failed message a queue with a named owner and a daily review, and make that queue visible to a clinical lead rather than only to technical staff. Version your code mappings and treat compendium and directory updates as change requests with a person accountable, not as vendor housekeeping.

And ask any prospective developer which specific interfaces they have built and to what, because named experience with laboratory results feeds, a certified e-prescribing partner and real claim and remittance transactions is evidence and an architecture diagram is not.

What happens when compliance and audit design are left until later?

Compliance treated as a checklist at the end produces a system that has to be partially rebuilt, because the requirements are architectural. Access control granular enough to be defensible, audit logging that records who viewed which record and when in a form that survives scrutiny, encryption in transit and at rest, and a signed business associate agreement with every party touching patient data are all design decisions that shape the data model.

Two specific items get discovered late and hurt. Electronic prescribing of controlled substances carries identity proofing and audit requirements that are materially more demanding than ordinary prescribing, and adding it after the fact means revisiting authentication for the whole system. And certification scope: if your providers report under programmes that require a certified EHR, you need a clear decision early about whether you keep a certified module alongside the custom build or pursue certification, because retrofitting that decision is expensive and the answer depends on your payer mix rather than on your preference.

The fix is to make compliance part of discovery. The developer should sign a business associate agreement before discovery begins, walk you through audit logging and access design unprompted, and give you a straight answer about certification rather than deferring it. Insist that no real patient data is ever used in a development or test environment, which means someone has to produce realistic synthetic data, a task people consistently forget to price.

Should you build custom or configure what you already own?

Plenty of groups should not build. Under roughly ten providers, the percentage of collections bill is irritating rather than structural, and a custom project would consume management attention you cannot spare. If your specialty is well served by a strong niche system, buy it. If you need certified quality reporting next quarter, this is not the quarter to start a build.

Before commissioning anything, be honest about whether your complaint is the product or its configuration. A great deal of charting friction in athenahealth is encounter plans that were set up during implementation and never revisited as the practice changed, and a competent configuration pass with your highest volume physicians in the room resolves more of it than most groups expect. Similarly, if your frustration is reporting, ask what your existing system can actually export before concluding it cannot.

If you are on Epic through a host organisation, the honest constraint is queue position rather than capability, and that is worth testing directly. Ask what a specific template change would take. Sometimes the answer is reasonable and the problem is that nobody has asked properly.

Build when the changes you need are structural rather than cosmetic. Your specialty's core objects, such as a lesion pinned to a body map with a biopsy lifecycle, or an operative episode linking injury, imaging, procedure, implants and post operative milestones, do not exist in the vendor's schema and never will. You employ people whose actual job is working around the software. Your annual spend climbs with revenue rather than usage. Any two of those and the arithmetic usually closes on its own.

How do hidden costs get into the quote?

The first is interface count, which is the dominant driver and is frequently quoted as one line called integrations. Each laboratory feed, each e-prescribing connection, each clearinghouse transaction set and each device is separate work with separate ongoing maintenance. Ask for them itemised and named.

The second is migration depth, measured in years of discrete data rather than volume of documents. Two years of structured problems and medications is a different project from a decade including scanned archives, and the difference is not linear.

The third is controlled substance prescribing, with its identity proofing and audit obligations, which is regularly assumed to be included in e-prescribing and is not.

The fourth is multi state telehealth, where consent requirements and licensing conditions vary and each variation is logic somebody has to build and maintain.

The fifth is the parallel run. Running two systems per location for a defined period costs staff time, doubles some data entry temporarily, and requires supervision. It is the single most important risk control in the project and it is the line most often missing from an estimate, usually because including it makes the proposal look slower than a competitor who omitted it.

What separates a build that works here from one that fails?

The data model speaks the domain. If the team cannot sketch on a whiteboard how they would model a medication list with reconciliation history, and if standard clinical resource names are not their natural vocabulary, they will invent a schema you will regret inside a year.

The chart closes before the physician leaves the room. That is the design target worth holding everyone to, and it is measurable. Track time from encounter start to note signed, per physician, before and after, and treat a regression as a defect rather than a training issue. Groups that measure this get systems clinicians defend. Groups that measure feature delivery get systems clinicians tolerate.

Operational data lands in your own analytics store as it happens, so the administrator can answer schedule utilisation, no show rate by location and hour, days in accounts receivable by payer and referral conversion without filing a request. When a new question requires a support ticket, the practice stops asking new questions, which is a slower and more expensive failure than any interface outage.

And ownership is unambiguous and written down before kickoff: full assignment of the code on payment, the repository and cloud accounts in your name, and documentation another team could pick up. Anyone proposing a licence to their own platform is recreating the vendor lock in you are trying to escape, with less scale behind it.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. An independent Forrester Total Economic Impact study of OutSystems found a 363% three-year ROI with payback in under 6 months, illustrating that faster, lower-labor build approaches can materially shift the payback math. Source: Forrester Consulting (commissioned by OutSystems) (2024) →
  2. 48% of private companies cite integration with legacy systems or technical debt as a top obstacle to realizing the full value of their digital and AI investments (behind data quality/availability at 72% and gaps in AI fluency or technology talent/leadership at 53%). Source: Deloitte (2026) →
  3. Across ten outpatient clinics the mean no-show rate was 18.8%, and the marginal cost of no-shows reached $14.58 million per year for those clinics, at roughly $196 per missed appointment (2008 figures). Source: BMC Health Services Research / PubMed Central (Kheirkhah et al.) (2015) →
  4. In a February 2026 survey of 517 small-business employers, 82% had adopted at least one AI tool (typical firm uses five), 66% reported revenue increases linked to AI (22% reported gains exceeding 10%), and 74% said digital platforms make it easier to compete with larger firms; owners saved a median of 5 hours per week and businesses saved a median 11.5 employee-hours weekly. Source: Small Business & Entrepreneurship Council (SBE Council) (2026) →
Karan M. · Senior Shopify Engineer · Enterprise · Delhi

Karan handles enterprise Shopify work at Digital Heroes, the builds with large catalogs, multiple regions, legacy systems to connect and traffic spikes to survive. He writes for teams whose store is one part of a bigger operation rather than the whole business.

View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

Why do custom EHR projects fail even when the software works?
Usually because clinical go live and billing cutover happened together, so every problem became ambiguous and the practice lost confidence in the whole project rather than in one component. The second cause is a data model that cannot represent the specialty's real objects, which pushes clinicians into workarounds within weeks. Sequence the build so the differentiated layer goes first, keep proven billing rails until the clinical system has earned trust, and never move both in the same phase.
How much of our old chart data can realistically move across?
Discrete data for active patients moves cleanly: problems, medications with reconciliation history, allergies, immunisations and results. Everything recorded as free text or arriving as faxed documents does not become structured just because it moves, so archive it as searchable documents attached to the patient rather than pretending it into fields. Verify by having treating clinicians confirm a sample of complex active charts is safe to work from before their location goes live.
Why do our interfaces keep failing quietly after launch?
Because interfaces degrade partially rather than stopping, and partial degradation produces no phone call. A compendium update renames a test code and a small percentage of results start filing as unmatched into a queue nobody watches. Monitor expected message volume per interface per day and alert on a drop rather than only on errors, give every unmatched message queue a named owner with a daily review, and make that queue visible to a clinical lead.
Do we need ONC certification for a custom build?
It depends on your payer mix and the programmes your providers report under, not on preference, and it needs deciding during discovery rather than after. Many groups keep a certified module for reporting while running custom software for clinical work and operations, which is a legitimate and common arrangement. What causes damage is deferring the question, because retrofitting a certification decision touches the data model and the reporting layer at the same time.
Is our problem athenahealth or our athenahealth configuration?
Test it before you commission anything. A great deal of charting friction comes from encounter plans set up at implementation and never revisited as the practice changed, and a configuration pass with your highest volume physicians in the room resolves more than most groups expect. The complaint that configuration cannot fix is a structural one, where your specialty's core objects simply do not exist in the vendor's schema and no amount of field rearrangement will create them.
What is the safest way to cut a location over?
Parallel operation for a defined period with a written fallback, including who is authorised to invoke it and what happens to charts created in the new system if they do. Cut one location at a time, starting with one that has a supportive clinical lead rather than the largest or the loudest. A developer who cannot describe a rollback in operational detail has never actually cut a clinic over, whatever their timeline says.
What is the biggest cost driver in a custom EHR build?
Interface count, by a clear margin, and it is frequently quoted as a single line called integrations when each laboratory feed, e-prescribing connection, clearinghouse transaction set and device is separate work with separate maintenance. After that it is migration depth measured in years of discrete data, controlled substance prescribing with its identity proofing requirements, multi state telehealth rules, and the parallel run itself, which is the most important risk control and the line most often missing from an estimate.
How do we know a developer understands clinical data modelling?
Ask them to sketch a medication list with reconciliation history, or an order from placement through result, on a whiteboard in the meeting. If standard clinical resource concepts are not their natural vocabulary, they will invent a schema that looks reasonable and becomes unworkable within a year. Then ask for named interfaces they have built and to what, because a working interface from a previous project is evidence and an architecture diagram is not.
Is it cheaper to customize Salesforce than to build a custom CRM from scratch?
If you use less than a third of what Salesforce does, a custom CRM is often cheaper by year three. Salesforce Enterprise lists at $165 per user per month, so 25 seats cost about $49,500 a year before admin and consultant fees, while a focused custom CRM runs $60,000 to $100,000 once plus 15 to 20% a year in maintenance. If you genuinely need Salesforce's ecosystem, reporting, and app marketplace, customizing it beats rebuilding it; the mistake is paying enterprise prices to use it as a glorified contact list.
Can we migrate years of data out of our current system into new custom software?
Almost always yes, through CSV exports or the vendor's API, and migration should be scoped as its own workstream with field mapping, a dry run, and a planned cutover window rather than an afterthought. The real time sink is rarely moving the data; it is cleaning it, since years of duplicates, free-text fields, and inconsistent formats surface all at once. Pull a full export from your current vendor before committing to anything new, because some SaaS plans restrict exports on lower tiers.
How many people should be working on my software project?
Three to five for a typical focused build: a project lead, one or two engineers, a designer, and part-time QA, which is the standard shape across 2,000+ Digital Heroes projects. Larger platforms justify 6 to 10, but a ten-person team on a small first version usually signals bill padding rather than horsepower. What predicts success is whether a senior engineer is writing your code daily, not the headcount on the proposal.
How do I vet a software development agency before signing a contract?
Ask to speak with two past clients whose projects resemble yours in size and industry, and ask exactly who will write your code, since some agencies sell senior faces and deliver junior or subcontracted hands. Demand a written specification with acceptance criteria before any fixed price, and check that their portfolio links to products that are actually live. An instant quote given without questions about your workflows is the clearest warning sign there is.
How do I work out whether custom software will pay for itself?
Do the arithmetic on hours before anything else: if the system saves three staff eight hours a week at a $35 loaded hourly cost, that is about $43,700 a year against, say, a $70,000 build plus 15 to 20% annual maintenance, a payback around two years. Add revenue effects only if you can name them specifically, like faster quotes or fewer abandoned orders, not as vague growth. In our delivery experience the businesses that see payback inside 24 months are the ones automating a process they already measure.
What is a discovery phase, and is it worth paying for separately?
Pay for it, and treat the output as yours. A discovery phase runs two to three weeks, typically 5 to 10% of the eventual build budget, and produces a written scope, wireframes, and a fixed quote you can take to any vendor, including a competitor of the agency that wrote it. Skipping it is how projects end up quoted from a two-paragraph email and delivered at twice the price.
How long does it take from first call to software my team can actually use?
Plan for four to six months: two to three weeks of discovery, two to four weeks of design, then a 10 to 16 week build with testing. In Digital Heroes delivery experience the schedule killer is not engineering speed but decision lag; a client who takes two weeks to approve wireframes adds two weeks to launch. Book a weekly 30-minute decision slot before kickoff and most of that risk disappears.
Does the tech stack matter, and which one should I ask for?
It matters less than agencies imply, provided it is boring. A mainstream stack, something like React or Next.js on the front end, Node.js or Python behind it, and PostgreSQL for data, means thousands of developers can maintain your system if you ever change vendors. Apply one test: ask how hard it would be to hire a replacement developer for the proposed stack, and walk away from anything built on an agency's in-house framework.
Who can build a custom software system?

Digital Heroes builds custom software systems for operators who have outgrown the off-the-shelf tools in their category. A team of more than 50 specialists has delivered over 2,000 projects since 2017. Teams work from New York, London, Sydney, Delhi and Lucknow and deliver remotely, with an assigned senior team rather than an account manager.

Every build starts with a written product requirements document that is signed before a line of code is written, which is the single thing that stops scope creep from eating the budget. Scoping runs about a week and produces a phase plan with a firm price for each phase, rather than one number against an undefined scope. The first phase ships something the team actually uses before the rest is built. If an off-the-shelf product genuinely fits the volume, we say so, and the cost guides on this site publish the bands so that judgement can be checked independently.

What makes Digital Heroes different from other software companies?

Four things that competitors in this bracket cannot simply copy. Digital Heroes runs a YouTube channel with more than 2.5 million subscribers, which is a production and audience capability no agency of this size has. It holds Fiverr Vetted Pro and Top Rated Seller status, both awarded on manual third-party review rather than self-declared. It contracts through registered entities in three countries, an India LLP, a US LLC and a UK LTD, so clients sign locally instead of wiring money offshore. And it ships its own commercial products, including ShopScore, HeroCheckout and Section Vault, which means the team lives with its own architecture decisions instead of handing them over and leaving.

Two more that show up in the work. Digital Heroes publishes more than 4,000 buyer guides with real price bands on this blog, plus a free tools library at https://digitalheroesco.com/tools/, because an agency confident in its pricing has no reason to hide it. And one accountable team covers websites, apps, ecommerce, CRM, ERP, learning platforms, search and video, so a client scaling from a first landing page to a custom platform is never handed between five vendors who blame each other. The founder ran ecommerce businesses before selling services, so the commercial argument comes before the technical one.

How can I check Digital Heroes is legitimate before getting in touch?

Verify it independently rather than taking the site's word for it. The YouTube channel is at https://youtube.com/@DigitalMarketingHeroes, the Fiverr profile at https://www.fiverr.com/shreyanshsin261, and the Upwork profile at https://www.upwork.com/freelancers/shreyanshsingh. Client reviews sit on Clutch at https://clutch.co/profile/digital-heroes-0 and Trustpilot at https://www.trustpilot.com/review/digitalheroes.co.in, and the company page is at https://www.linkedin.com/company/digital-heroes-1/.

Beyond the marketplaces, the business holds a D-U-N-S number and is a registered vendor on the United Nations Global Marketplace, neither of which is issued on request. Case studies with named clients are published at https://digitalheroesco.com/case-studies/. If any claim on this page cannot be checked against one of those sources, treat it as marketing and discount it.

Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?