Cookies & privacy
We use essential cookies to run the site and, with your consent, analytics cookies to understand how it's used. You can change your choice anytime.

Data quality is the percentage of your patient database you can actually work with: valid phone number, no duplicates, a registered last visit and a stored consent. It sets the ceiling for everything else, because reactivation, recall and forecasting all work on top of that base. The arithmetic is quick: review 100 random records; if 12 have a bad mobile number, in a database of 3,000 that's roughly 360 unreachable patients. And in 2026, with AI systems operating the admin side, a clean database is no longer maintenance: it's the condition for delegating at all.
Your clinic's data quality is the percentage of patient records you can actually work with: a mobile number that exists, a record that isn't duplicated, a properly registered last-visit date, and a stored contact consent. More than an IT concept, it's the difference between "I have 3,000 patients in the system" and "I can reach 2,400 of them".
Your practice management software tells you how many records you have. What it doesn't tell you is how many of them work. And the two figures can be surprisingly far apart, because a broken record doesn't announce itself: it keeps its place in the database, counts towards every total, and only fails the day you try to use it.
That's the trap with this problem. An empty chair is visible. A dead phone number isn't: you discover it months later, when the reactivation campaign doesn't arrive, the check-up reminder never goes out, or the forecast misses. That's why almost no clinic knows its real percentage of usable records, and why it's worth calculating.
After connecting to clinic databases of every size, the patterns we find are almost always the same four:
None of this is anyone's fault. A front desk that answers the phone, greets patients and manages the diary doesn't have a spare hour a day to verify records: it's a capacity problem, not a dedication problem. The database ages silently, and you only notice when you try to lean on it.
You don't need any tool to estimate your situation. Open your software and review a random sample of 100 records. Count how many have an empty, incomplete or clearly invalid mobile number. Suppose 12 do.
Applied to a database of 3,000 records, that 12% is roughly 360 patients nobody can reach. No reminders, no recall, no reactivation: as far as any campaign is concerned, those 360 patients don't exist.
Now cross that with your dormant patients. If 1,200 haven't visited in over a year and the same 12% have a bad phone number, around 144 will never receive a reactivation message. At an average treatment value of €110, that's 144 × €110 = €15,840 of pending treatment beyond the reach of any campaign, however good it is.
Two caveats, to keep the arithmetic honest. First: not all of those patients would come back even with a correct phone number; some have moved away and others no longer need treatment. Second: your percentage may be higher or lower than the example's, which is why the first step is measuring it with your own sample rather than assuming someone else's average. What doesn't change is the structure of the calculation: every point of bad data is a slice of your database you can't work with.
"We thought we had 9,000 patients. When we looked at how many had a valid mobile number and a registered consent, the real number was quite a bit lower." That's a composite quote (it summarises several real, anonymised conversations with clinics), and it's one of the most repeated lines when a clinic looks closely at its database for the first time.
In the KPIs of a dental clinic we already flagged data quality as the number to prioritise above the rest. The reason is structural: everything you might want to do with your patient database starts with being able to reach people and count correctly. With bad data, all three of these break at once.
Reactivation breaks. Reactivating inactive patients means contacting people who haven't visited in over a year. If the phone number is wrong, the message never lands; if the patient is duplicated, they get two messages; if the consent is missing, you shouldn't be sending it at all. The best-designed campaign can't rise above the ceiling of its contact list.
Recall breaks. Dental recall depends on one specific field: the date of the last visit or check-up. A record without that date never enters the "patients due for a check-up" filter, so even the most disciplined system skips it. A duplicate does the opposite: it reminds the same patient twice, who perceives carelessness where they should perceive care.
Forecasting breaks. A revenue forecast is built by counting: confirmed appointments, reachable patients, the share that usually responds. If your database says 1,200 dormant patients but 150 are duplicates and 144 unreachable, any forecast built on 1,200 is inflated from birth. The calculation is right; what's wrong is the base it counts on.
The numbers you look at every month (patients recovered, check-ups closed, revenue forecast) rest on the same foundation. When the foundation is off, they all lie at once and in the same direction: they make you believe you have more usable database than you do.
An initial audit is an afternoon's work, not a month's. The goal isn't to fix anything yet: it's to learn how big the problem is.
Could you fix it by hand? Once, yes. At around 2 minutes per record to verify and correct, 3,000 records is 6,000 minutes: 100 hours of work, two and a half weeks full-time. No front desk has that gap in the diary, which is why the full clean-up gets postponed year after year.
And even if you do it: the database doesn't stay clean. New patients register every week, people change numbers, and duplicates get created in the rush at the desk. A database cleaned in January isn't the same one by June. A one-off clean-up helps; what changes the outcome is quality that maintains itself.
Until recently, a dirty database cost you missed opportunities. In 2026 it costs something more. Any AI system you might want to use at the clinic, from an assistant answering WhatsApp messages to an autonomous system operating the entire front desk, reads your database and works with whatever it finds. It doesn't ask whether the data is good: it uses it.
With clean data, that system multiplies your capacity: hundreds of personalised conversations, each with the right patient context. With dirty data, it multiplies the noise: reminders to old numbers, two messages to the same duplicated patient, forecasts about patients who don't exist. AI amplifies whatever base you give it, in both directions.
That's why data quality has stopped being a maintenance chore and become a condition of entry. A clinic with an orderly database can confidently delegate administrative work to AI systems; one without has to fix the foundations first. The good news is that the two aren't separate steps: the clean-up itself is among the first jobs you can delegate.
This is where the approach changes. At Keishal we treat database quality as a continuous process, not an annual project:
All of this happens on top of your current software: Gesden, Nubimed, Dentalink, Clinic Cloud or whichever you use. No migrations, and nothing new for your team to learn.
There's also a layer beyond hygiene. A database with correct, up-to-date data and registered consents is a signal of seriousness about data protection: the patient gets messages through the channel they authorised, with their name spelled right and no duplicates. A patient who sees their clinic taking care of their data trusts it more, and that trust is worth more than any campaign. The specific legal framework is best defined with specialised data protection advice; the practice of caring for data starts in the database itself.
Data quality can't be fixed in an afternoon, but it can be measured in one. Pull your 100-record sample this week and put the number on the table: what percentage of your database is actually reachable. It's probably the cheapest KPI to calculate in the whole clinic, and it's the one that sets the ceiling for all the others.
And if you want to see what your database looks like when it stays clean on its own, book a demo and we'll show you with your own data.
Every no-show is an idle chair with fixed costs still running: 20 no-shows a month × €90 average treatment value is €1,800 a month, €21,600 a year. The defence has two layers working at different moments: WhatsApp reminders that get a response before the appointment, and an automatic waiting list that refills the slot when the cancellation happens anyway. Neither requires changing your practice management software.
"Service-as-a-software" is the model where the provider doesn't sell you a tool to operate yourself, but operates it for you, and you only see the result. The difference from regular software can be counted in minutes: if your team spends even 15 minutes a day configuring reminders, checking why a template didn't send, or learning a new feature, that's 15 × 5 days × 4 weeks = 300 minutes a month, 5 hours operating a tool before it helps a single patient. In the service-as-a-software model, those 5 hours don't exist. The provider absorbs them.