What it is
Hygiene reappointment rate is the share of patients seen in hygiene during a period who have a future hygiene appointment booked.
Practices define "booked" in different ways. The strictest rule counts only patients booked before they leave the office. A looser rule also counts patients booked within a few days by follow-up.
Why operators track it
- Retention. A patient with a next visit booked is more likely to return than one told to call later.
- Schedule planning. Reappointments fill the hygiene schedule months ahead.
- Front office follow-up. The patients who were not booked make a clear call list.
- Treatment. Hygiene visits are often where treatment needs are found, so missed visits can mean missed care. (This is a general observation, not a measured figure.)
How it is calculated
Hygiene reappointment rate = hygiene patients with a future hygiene appointment ÷ hygiene patients seen
- Count unique patients, not visits.
- Decide the rule for "booked": before leaving, or within a set number of days.
- Count only future appointments of a hygiene type.
Worked example
In one example month, 400 patients were seen in hygiene. 352 left with their next hygiene visit booked. The front office booked 28 more within 7 days. 20 were not booked.
How to read it
- Look at the gap between the two rules. A big gap means booking is happening by follow-up rather than at checkout.
- Look by hygienist and by day. Low rates on certain days can point to checkout workflow, not the clinician.
- Patients who should not be counted. Patients moving away or transferring care lower the rate. Some practices exclude them. Say if you do.
- We do not publish a benchmark. Rates depend on the patient base and the rule used.
Definitional choices and common pitfalls
- When booking counts. Before leaving, same day, or within N days. Pick one and label it.
- Patients or visits. Use unique patients so a patient seen twice is not counted twice.
- Which visit types count as hygiene. Prophylaxis, periodontal maintenance, and others. Write down the list of procedure codes or appointment types.
- Exclusions. Decide whether to exclude patients who are moving, deceased, or referred elsewhere.
- Cancelled later. A booked appointment may be cancelled the next week. The rate measures booking at the time, not attendance.
How different roles use it
| Role | How they use it |
|---|---|
| Owner dentist | Watches the trend as a sign of patient retention. |
| Office manager | Reviews it weekly, works the unbooked list, and coaches checkout. |
| Hygienist | Sees their own rate and asks patients to book before leaving. |
| DSO regional manager | Compares locations using the same rule. |
Questions it answers
- What share of hygiene patients left with a next visit booked?
- Which patients need a follow-up call this week?
- Which days or providers have the lowest rate?
- Is the rate improving after a checkout change?
How to present it in a report
- A headline rate with the rule stated, such as "booked before leaving".
- A monthly trend line.
- A table by hygienist and by location.
- A linked list of unbooked patients for the front office.
Data you need
Fields
| Field | What it means | Example value |
|---|---|---|
| Patient | A unique patient ID | Patient 40112 |
| Hygiene visit | A completed visit of a hygiene type, with date and provider | Oct 14, K. Lee, D1110 |
| Future appointment | Any later appointment, with its type and date | Apr 15, recall |
| Appointment created at | When the future appointment was booked | Oct 14, 10:42 |
| Checkout time | When the patient left, if recorded | Oct 14, 10:45 |
| Patient status | Active, inactive, moved, or deceased | Active |
| Location | The office | Maple Grove |
What the raw data looks like
Example data A few rows as they might come out of the source system.
| Patient | Hygiene visit | Hygienist | Next hygiene appt | Booked at | Status |
|---|---|---|---|---|---|
| 40112 | Oct 14 | K. Lee | Apr 15 | Oct 14, 10:42 | Active |
| 40187 | Oct 14 | K. Lee | Apr 22 | Oct 17, 2:10 | Active |
| 40203 | Oct 14 | M. Ortiz | none | Active | |
| 40219 | Oct 15 | M. Ortiz | none | Moved |
Where this data usually lives
- Practice management system (PMS) holds the schedule, procedures, fees, adjustments, treatment plans, and payments. For example: Dentrix and Dentrix Ascend (Henry Schein One), Eaglesoft (Patterson Dental), Open Dental.
- Insurance clearinghouse and eligibility tools hold claims, remittances, and payer details, which explain write-offs.
- Imaging systems hold x-rays and clinical images. They are rarely needed for these metrics.
- Payroll or HR may hold hours actually worked, if the schedule does not.
- DSO data warehouses combine data from many locations, sometimes from more than one PMS.
Common data gaps and traps
- Booked time not stored. Without the appointment created time, you cannot tell booked-before-leaving from booked later.
- Recall vs appointment. A recall reminder is not a booked appointment. Make sure you count real appointments.
- Appointment types not consistent. Hygiene may be booked under several types. List them.
- Inactive patients not marked. Patients who left the practice stay in the denominator.
Related metrics
- Production per hour: a full hygiene schedule supports hygiene production.
- Case acceptance rate: treatment found in hygiene still needs to be accepted.
- Collection rate: what the practice collects of what it is owed.
FAQ
- Is this the same as recall rate?
- Not always. Some practices use "recall" for reminders sent. Reappointment means an appointment is actually booked.
- Should I count patients or visits?
- Patients. A patient seen twice in a month should count once.
- What window should I use for booked later?
- Pick one, such as 7 days, and label it. Show the strict rule next to it if you can.
For your data teamFormula variants, tables, SQL sketch, and dashboard spec
Formula details
seen = DISTINCT patients with a completed hygiene visit in period
booked = seen patients with a future hygiene appointment
where appointment.created_at <= checkout_time -- rule A
(or created_at <= visit_date + :days) -- rule B
rate = COUNT(booked) / COUNT(seen)
Worked example detail
| Count | |
|---|---|
| Hygiene patients seen | 400 |
| Booked before leaving | 352 |
| Booked within 7 days by follow-up | 28 |
| Not booked | 20 |
| Rule A rate | 352 / 400 = 88.0% |
| Rule B rate | 380 / 400 = 95.0% |
Tables and fields
| Table | Fields | Notes |
|---|---|---|
appointments |
appt_id, patient_id, provider_id, appt_type, start_at, created_at, status | |
procedures |
patient_id, provider_id, cdt_code, status, completed_at | To identify hygiene visits |
patients |
patient_id, status, location_id | Exclusions |
SQL sketch
WITH seen AS (
SELECT DISTINCT a.patient_id, a.location_id, a.provider_id, a.start_at::date AS visit_date,
a.checkout_at
FROM appointments a
WHERE a.appt_type IN (:hygiene_types) AND a.status = 'completed'
AND a.start_at >= :start AND a.start_at < :end
),
booked AS (
SELECT DISTINCT s.patient_id
FROM seen s JOIN appointments f
ON f.patient_id = s.patient_id AND f.appt_type IN (:hygiene_types)
AND f.start_at > s.visit_date
AND f.created_at <= COALESCE(s.checkout_at, s.visit_date + INTERVAL '1 day')
)
SELECT COUNT(b.patient_id)::numeric / NULLIF(COUNT(DISTINCT s.patient_id), 0) AS reappointment_rate
FROM seen s LEFT JOIN booked b USING (patient_id);
As a dashboard card
- Card type: KPI with the rule in the subtitle, a monthly trend, and a table of unbooked patients.
- Measures:
seen,booked,reappointment_rate. - Dimensions: hygienist, location, day of week, period.
Common mistakes
- Counting recall reminders as appointments.
- Counting visits instead of patients.
- Not stating which booking rule is used.