The invoice is the smallest number you'll see all year

When a practice owner tells me they're budgeting $40,000 for an EMR migration, I ask what number they've put next to "everything else." Usually there's a pause. The vendor quote is real, and it's often the honest part of the exercise. The rest of the spend hides inside your payroll, your patient no-show rate, your billing lag, and the three weekends your clinical lead won't get back.

I've been through four migrations, two as an operator and two helping other clinics untangle theirs. Every single one blew past the initial budget, and in every case the overruns came from the same set of line items nobody wrote down at the start. Here's what those look like, and how to actually plan for them.

Labor you're already paying for, spent on something else

The biggest hidden cost of any migration is your existing team's time. Your MA is not billing while she's re-uploading allergy lists. Your billing manager is reconciling patient balances instead of working denials. Your NP is validating problem lists after hours because the daytime schedule can't absorb it.

A useful exercise: before you sign anything, ask each role to estimate the hours they'll lose to the migration over a 90-day window. Then multiply by their fully loaded cost, not their hourly wage. In a 6-provider concierge practice I worked with last year, that internal labor number came out to $71,000. The vendor quote had been $52,000. The team had budgeted zero for their own hours.

Two ways to blunt this:

  • Pay for extra vendor-side data mapping and cleanup rather than assuming your staff will do it "on the side." It's almost always cheaper.
  • Bring in per-diem clinical or admin help specifically to cover the go-live weeks. Budget four to six weeks, not one.

Data cleanup, which is really data archaeology

Every EMR you've ever used has garbage in it. Duplicate charts. Patients labeled as active who moved three years ago. Custom fields that one provider used and nobody else understood. Free-text notes where structured data should live.

Your new system will either import that mess faithfully or refuse to import it at all. Both outcomes cost money. Faithful import means you're now paying to store and search rotten data in a new place. Refusal means somebody has to decide, chart by chart, what to keep.

In practice, I budget 15 to 25 cents per active chart for cleanup labor, assuming a mid-size panel with reasonable hygiene. If you're a compounding-adjacent practice with a lot of custom formulation notes, or if you've never done a data audit, double it. Also budget for a formal decision log so you can defend your choices later if a chart gets audited.

The productivity dip nobody wants to model

Providers see fewer patients for the first 30 to 90 days on a new system. That's not a failure of the software or the training. It's physics. New clicks, new workflows, new keyboard shortcuts. A physician who typically closes 22 encounters a day will close 14 to 17 during the ramp.

If you don't model this in advance, two things happen. Cash flow tightens right when you're paying migration invoices, and providers get frustrated and blame the tool (sometimes correctly, sometimes not). Do the math before you commit to a go-live date. If a provider generates $2,800 a day in collections and drops to 70% for six weeks, that's roughly $25,000 in delayed or lost revenue per provider. In a 6-provider group, you can see where this goes.

The fix is not to power through. The fix is to reduce the schedule intentionally for two to three weeks, communicate it to patients, and stop pretending your team can hit normal volume while learning a new chart. Reduced-schedule revenue is easier to budget than surprise burnout and turnover.

Integration surprises

Your EMR does not live alone. It talks to labs, e-prescribing, your payment processor, your patient messaging tool, your accounting system, maybe your compounding pharmacy or 503B partner, and increasingly some AI layer for intake or documentation. Every one of those connections has to be re-established, tested, and often re-contracted.

Things that regularly show up as unbudgeted line items:

  • Lab interface fees, sometimes per-interface, sometimes per-message.
  • New merchant account setup or a switch in card processor because the old integration doesn't port.
  • Re-credentialing for e-prescribing controlled substances (EPCS) with new tokens and identity proofing for each prescriber.
  • Pharmacy integration work if you're sending scripts to a compounding partner with a custom formulary.
  • Custom report rebuilds, because your old dashboards do not come with you.

Ask your vendor for a written list of everything they will and will not migrate, and everything they will and will not integrate. Then ask your current vendor the same question about export. The gap between those two documents is your integration budget.

The training you'll pay for twice

Vendors include training hours. Those hours are almost never enough, and they're almost always front-loaded. The first round of training happens before anyone has used the system on a real patient. The training you actually need happens six weeks in, when your team has hit the real workflows and started developing bad habits.

Budget for a second training pass at day 45 or 60. It's the single highest-ROI line item in the whole project. Also budget for someone internal to be the "power user" who owns configuration and answers questions. That person needs protected time, not just a title.

Your BAA changes. Your notice of privacy practices may need to reference new subprocessors. If you're in a state with specific record retention rules, you need documented evidence of what happened to the old data and how long it will be accessible. If you use AI features (scribing, intake, messaging), your consent language likely needs an update.

None of this is exotic, and none of it is optional. Get your counsel involved before go-live, not after. Confirm specifics with your own attorney; the goal here is just to make sure it's on the budget line at all.

A working budget framework

For a small-to-mid practice, a defensible total-cost estimate looks something like this as a share of the vendor quote:

  • Vendor implementation and first-year license: 100% (the baseline)
  • Internal labor during migration: 80 to 150%
  • Data cleanup and validation: 20 to 40%
  • Productivity dip (net of reduced schedule): 60 to 120%
  • Integrations and interfaces: 15 to 30%
  • Extended training and change management: 10 to 20%
  • Legal, compliance, contingency: 10 to 15%

Add it up and a $50,000 vendor quote is realistically a $150,000 to $220,000 project. That number is not a reason to avoid migrating. Staying on a bad EMR is almost always more expensive over three years. The point is to walk in with your eyes open, so you don't run out of runway in month two.

What actually helps

The migrations that go well share a few operator habits. Pick a go-live date that isn't in your busy season. Overstaff the first three weeks. Assign one person, not a committee, to own the project. Treat data cleanup as a real project with its own budget line. Ask your vendor hard questions about what they've actually done for practices your size, and talk to two references who went live in the last twelve months.

If you're evaluating a move and want to see how a modern EMR with AI agents handles the parts that usually cause overruns (intake, refills, messaging, documentation), talk to our team. We're happy to walk through what a realistic migration looks like for your specific setup.

Frequently Asked Questions

How long should an EMR migration actually take?

For a practice under 15 providers, plan on 90 to 120 days from contract to full go-live, plus another 60 days of stabilization. Anything a vendor promises under 60 days is either a very simple environment or a promise they won't keep.

Should we run both systems in parallel?

For a short window, yes, usually 2 to 4 weeks read-only on the old system so staff can reference historical records. Running both fully live for months is expensive and confuses your team. Set an end date for parallel access and enforce it.

What's the biggest mistake practices make?

Underestimating internal labor and going live during a high-volume month. Those two together cause most of the migrations I've seen stall out. If you have to choose between paying the vendor more to do cleanup or asking your team to do it, pay the vendor.

How do we handle historical records we don't migrate?

Keep them in a read-only archive that meets your state's retention requirements, with documented access controls. Your counsel should sign off on the retention plan in writing before you decommission the old system. Do not assume the old vendor will keep your data accessible after the contract ends without a specific written agreement.