Zdrovia reports in two places, and they answer different questions.
| Surface | Route | Answers |
|---|---|---|
| Analytics | /dashboard/analytics |
How is the clinic doing? Bookings, revenue, no-shows, providers |
| Graphs | /dashboard/graphs |
How is this patient doing? Anything recorded in a smart block, over time |
Analytics
Navigate to Analytics in the sidebar.
The reporting window
Choose Last 3 months, Last 6 months (default) or Last 12 months.
The window is a set of presets rather than a free-form date range on purpose: every figure on the page is bucketed by month, and an arbitrary start date mid-month produces a leading bucket that isn’t comparable with the others and reads as a dip. Whole months keep the trend lines honest.
Months are resolved in your clinic’s timezone, not the viewer’s. A clinic in Toronto and a manager checking in from Europe see the same numbers in the same buckets.
Headline figures
| Figure | What it counts |
|---|---|
| Total Patients | All patients on file |
| Appointments This Month | Bookings in the current month, with a month-over-month trend |
| No-Show Rate | Share of appointments not attended |
| Average Ticket | Average invoice value |
| Billed This Month | Total invoiced |
| Collected | Payments received |
| Outstanding | Invoiced and unpaid |
| Expiring Stock | Inventory approaching expiry, see Inventory |
The charts
| Chart | Shows |
|---|---|
| Appointments & New Patients | Both series over the window, monthly |
| Appointments by Day | Which days of the week fill up |
| Billing | Billed value over the window |
| Invoices by Status | Draft, sent, paid, overdue |
| Visit Outcomes | Completed vs cancelled vs no-show |
| By Provider | Booked value per staff member, see Staff |
| New vs Returning | Where the appointments are coming from |
Graphs
Navigate to Graphs in the sidebar (/dashboard/graphs).
Graphs plot clinical data: the values clinicians record in smart blocks. A pain score across a course of physiotherapy, a range of motion measurement per visit, a questionnaire total banded by severity.
How it works
Every smart block field declares whether it is a measure (something to plot) or a dimension (something to split or filter by), and the graph reads that declaration directly from the block. There is no mapping step in between, which is why authoring a field on a custom block makes it graphable immediately, and why renaming a field can never leave a graph pointing at something that no longer exists.
Building a graph
- Click New graph
- Choose a graph type: line, area, bar, scatter, and the other supported types
- Pick the measure to plot
- Choose what goes on the x-axis (usually the date the reading was recorded)
- Optionally split or filter by a dimension
- Save: the definition is stored and reusable
A saved graph definition opens at /dashboard/graphs/:id.
Graphs are patient-scoped
Graphs draw from a patient’s own records, which means a chart that isn’t attached to a service line still graphs. A phone-consult note with a pain score in it counts.
Chart report wizard
From a patient’s chart you can generate a report built from their recorded data (the readings, their trend, and the graphs you have defined) for a referral or a progress review.
Where else numbers appear
| Place | What it shows |
|---|---|
| Invoices | Outstanding, paid this month, overdue, drafts, revenue sparkline |
| Commissions | What each staff member has earned, by status |
| Tips | Collected, unallocated, awaiting payout, paid out |
| Insurance | Claims by stage, and what is ready to collect |
| Inventory | Stock at or below reorder threshold |
| Patient profile | Per-patient cards you arrange yourself, see Patients |
Asking your own questions
The dashboard shows a fixed set of figures. When you want one it doesn’t show, such as revenue by service category against last year or who had neurotoxin and has nothing booked, use Explore (the data explorer), covered on the Ask & Reports page. You can ask in plain English, write the query in ZQL, or build it step by step, and you see what it will read before it runs. Explore is included with Small Practice and Team Practice, and is free on every plan, Solo included, for a limited time.
Tips
- Compare like with like: leave the window on the same preset when you check week to week, or the month-over-month trend arrows change meaning.
- If No-Show Rate is the number you care about, look at Visit Outcomes alongside it; the rate alone doesn’t tell you whether cancellations moved into no-shows or out of them.
- Build the graph once and save it. A saved definition is what makes “show me their pain score since March” a click rather than a rebuild.
- Mark fields as measures deliberately when authoring a custom block: a graph can only offer what a field declares.
