Back to blog

· 7 min read

The veterinary data migration checklist: moving records without losing any

By KaliVers Team

You've decided to switch practice management software. The new system looks better, costs less, or does things your current one can't. Then someone asks: "What happens to five years of patient records?" That question stops more migrations than pricing ever does.

Data loss during a PMS switch is rarely dramatic. You don't lose everything at once. What happens instead: vaccination histories arrive without dates, invoice line items detach from the patients they belong to, drug batch records disappear, and you only discover the gaps six months later when a client asks about their dog's last titre test.

This checklist is built around that specific failure mode — the partial migration that looks fine on day one and costs you quietly for years.

Why Migrations Break (The Mechanism)

Most vet PMS databases store data in proprietary formats. When you export, you get a CSV or XML dump that flattens relationships. A patient record in your old system links to dozens of tables: owner, visits, invoices, prescriptions, vaccine lots, weight history. A flat export collapses those links. The new system imports the rows but loses the joins.

The second failure point is encoding. Clinic names, drug names, and owner names with regional characters — Marathi, Tamil, Arabic — often corrupt when moved between systems that handle Unicode differently. You won't notice until a staff member searches for a client and gets no result.

The third is timing. Migrations done over a weekend, with the old system switched off Friday night, leave no room to catch errors before they affect Monday's consults.

Before You Touch Anything: The Audit Phase

Do this before you sign a contract with the new vendor, not after.

  • Export a sample. Ask your current vendor for a full data export in their standard format. Open it. Count the tables. If they can't or won't produce one, that tells you everything about the migration ahead.
  • Map your data types. List every category of data you care about: patient demographics, visit notes, diagnoses, prescriptions, vaccine records (including batch and expiry), invoices, payments, inventory batches, staff records. This becomes your acceptance checklist.
  • Identify your critical lookback window. For most clinics, three years of visit history is the minimum. Vaccination records may need to go back further — a dog's full vaccine history matters for titre tests and boarding certificates.
  • Check your current data quality. Run a report on records with missing fields: patients without species, invoices without patient IDs, vaccines without lot numbers. These gaps will amplify during migration. Fix what you can now.
  • Get the new vendor's migration specification in writing. What formats do they accept? Which fields map to which? What do they do with data they can't match? If the answer is vague, push harder.

The Migration Checklist: Phase by Phase

Phase 1 — Data Extraction (Two Weeks Before Go-Live)

  • Full database export from current system, timestamped and stored in two locations (local + cloud).
  • Separate exports for: patient/owner records, visit history, prescription history, vaccine records with batch data, open invoices, inventory with FEFO batch details, staff and user accounts.
  • Document the record counts for each export: total patients, total visits, total invoices. You'll verify these against the new system post-import.
  • Confirm the export includes all historical data, not just the last 12 months. Some systems default to a rolling window.

Phase 2 — Parallel Running (One Week Before Go-Live)

This is the step most clinics skip because it feels like double work. It's also the step that saves you.

  • Import your data into the new system in a test environment before switching anything live.
  • Pick 20 patients at random — a mix of dogs, cats, and exotic species if applicable — and manually verify their records in the new system against the old. Check visit count, last diagnosis, last vaccine with batch number, outstanding balance.
  • Search for five clients by name using regional characters or common name variations. Confirm the results match.
  • Run the same revenue report (say, last month's invoices) in both systems and compare totals. A discrepancy here means invoice line items didn't migrate cleanly.
  • Test one complete workflow end to end: new consult, prescription, invoice, WhatsApp delivery. Catch integration failures before they hit a real client.

Phase 3 — Cutover (Go-Live Weekend)

  • Set a hard cutover time — Friday close of business works for most clinics. Everything after that point goes into the new system only.
  • Keep the old system in read-only mode for 30 days minimum. You'll need it to answer questions. Don't cancel the subscription the day you go live.
  • Print or export a list of all patients with appointments in the first week. Verify each one is in the new system before their visit, not during it.
  • Assign one staff member as the migration contact for the first two weeks. When something looks wrong — a missing record, a zero balance that should have a balance — it goes to them, not to a general complaint channel.
  • Brief your front desk on what to do if a record is missing: check the old system, note the gap, inform the migration contact. Don't improvise a workaround that creates a parallel record.

Phase 4 — Validation (First 30 Days)

  • Week 1: verify that every patient seen has a complete record in the new system. No orphaned visits.
  • Week 2: run your GST invoice report and reconcile against your Tally export or accountant's records. Migration errors show up here as unexplained gaps.
  • Week 3: check vaccine reminder queues. If reminders are firing for vaccines that were already given, the historical vaccine data didn't import with correct dates.
  • Week 4: compare inventory on hand in the new system against a physical count for your top 20 SKUs. Batch and expiry data is the most commonly dropped field in migrations.

The Worked Example: A Two-Vet Clinic's Migration Math

Take a two-vet clinic with, in this illustrative scenario, 1,800 active patients and five years of visit history. Their export produces roughly 14,000 visit records. During parallel testing, they find that 340 visit records imported without a linked patient ID — about 2.4% of their history. Small percentage, but those 340 records include prescription histories that matter for drug safety decisions. Catching that in test costs two hours of manual review. Catching it six months post-go-live, when a patient comes in and the vet can't see prior NSAID use, costs more.

What to Ask Your New Vendor Before You Sign

  • Do you provide a dedicated migration engineer, or does my team do the import?
  • What's your process if record counts don't match post-import?
  • Can I keep my old system in read-only access for 30 days after go-live, and will you help with the cost if there's overlap?
  • How do you handle vaccine batch and expiry data — is it imported as a field, or dropped?
  • What's your rollback plan if the go-live fails?

A vendor who answers these questions confidently has done this before. Vague answers mean you're the first clinic they've migrated at this scale, and you'll be solving problems in real time.

One Thing That Gets Missed Every Time

Staff training on the new system gets scheduled. The data migration gets a project plan. What doesn't get planned: the first week's billing workflow. Specifically, open invoices that existed in the old system at cutover. Take a two-vet clinic with, in this example, ₹40,000 in open balances at the time of switching — those need to be manually entered into the new system or they disappear from your receivables. Build that reconciliation into your cutover checklist explicitly.

For a deeper look at what to evaluate before you even get to migration, A no-BS guide to choosing practice management software for your vet clinic covers the selection criteria that determine whether a migration is worth attempting at all.

A migration done right also gives you a clean baseline — complete records, accurate inventory, no ghost invoices. That clean baseline is what makes revenue capture meaningful: you can only find unbilled items if your visit records are intact. CliniCore's AI Revenue Leakage Detection works from that foundation, scanning completed visits for services rendered but not charged. If you want to see what that looks like against your own data, the free 60-second audit is a reasonable place to start — no migration required to run it.

Who charges for this, and who does not

Run this checklist past any vendor before you sign. The answers vary more than you would expect: some scope migration as a paid implementation project, some do it in-house at no stated cost, and several publish nothing at all. CliniCore vs ezyVet is the clearest illustration — their implementation is explicitly excluded from the monthly price, ours is a self-serve wizard included on every plan.

What this will cost you

This checklist is about the mechanics — what moves, in what order, and how you verify it arrived. It deliberately says nothing about price. The money side is a separate question with a separate answer: the real cost of switching veterinary practice management software covers extraction fees, parallel running, retraining, and how to get the bill close to zero.

Worked examples in this article are illustrative scenarios based on industry-reported benchmarks and published research — not CliniCore client case studies.

See what your clinic is leaking

Most clinics lose 5–10% of revenue to unbilled work. Find your number in 60 seconds — or start plugging the leaks today.