A DNA—“did not attend”—count is only useful when everyone knows what went into it. If one report includes late cancellations and another does not, the same diary can produce two different answers.
Map the statuses before calculating the rate
Start with the statuses your practice actually records. Separate attended appointments, DNAs, cancellations and rescheduled bookings. Check whether an appointment’s status can change after its scheduled date and whether your export captures the latest state.
A reschedule can leave both an original booking and a replacement. Decide which record represents an appointment opportunity so that moving a booking does not silently inflate the count.
Choose and name the denominator
One possible measure is DNAs divided by attended appointments plus DNAs. This describes non-attendance among those two resolved statuses; it deliberately excludes cancellations. A measure that includes late cancellations answers a different question and needs its own definition.
Look at time as well as appointment counts
Ten missed short appointments and ten missed long appointments represent different amounts of diary time. Where reliable duration data is available, show missed minutes alongside the count. Avoid presenting a standard fee multiplied by DNAs as proven lost revenue: that assumes what would have happened if each slot had been filled.
Make practitioner comparisons fair
Show both counts and rates, with the number of appointments behind each rate. Review appointment mix and time period before drawing conclusions. A small number of bookings can produce a large percentage swing.
Check a sample against the diary
Pick a completed period and trace a sample of records back to the appointment book. Explain any mismatch before automating the report. Keep the reporting cutoff visible so a later status update does not look like an unexplained error.
Reliable reporting starts with the underlying data and the rules used to interpret it.