Skip to main content

Clinic groups · Operations BI

DashboardClinic groups

One operations dashboard for a group of clinics

A group of clinics often runs on a spreadsheet from each branch manager, stitched together before the Monday meeting. Here is one dashboard with shared definitions, monitors that tell the right person and a weekly PDF for the owners.

Valnora & Elric team5 min read

Group operations · last 4 weeks (illustrative)
Illustrative example
All 6 branchesLast 4 weeksAll specialties
Appointments9,840+4% vs previous 4 weeks
Clinician utilisation74%-2 pts vs previous
No-show rate8.6%-0.9 pts vs previous
Call answer rate86%2 branches below 80%
Utilisation by week, best vs weakest branch (%)KoramangalaWhitefield
W1W2W3W4W5W6W7W8

Branch summary, last 4 weeks

BranchAppointmentsUtilisationNo-showAnswer rateStatus
Koramangala2,11085%6.9%91%On track
Indiranagar1,86079%7.8%88%On track
HSR Layout1,64076%9.1%84%Watch
Whitefield1,22061%11.4%78%Alert
Jayanagar1,59073%8.2%79%Alert
Illustrative

1 version

Of each number in meetings and alerts

Illustrative: every panel, monitor and PDF reads the same named metrics.

Illustrative

15 min

Typical refresh for materialized datasets

Or query live on each view, with results cached for about a minute.

Illustrative

0 hours

Spent merging branch spreadsheets

Illustrative: the weekly PDF replaces the Monday consolidation.

Illustrative example. Figures show how the workflow is measured; they are not customer results.

A group of six clinics usually runs its Monday meeting on six spreadsheets. Each branch manager counts appointments a little differently, nobody agrees what "utilisation" means, and the call answer rate is whatever someone remembers from the phone system. By the time the numbers are merged, last week is history.

This post walks through one operations dashboard for a clinic group, built with Agent Serve Dashboards: appointments, utilisation, no-shows, revenue per branch and call answer rates, with monitors and a weekly PDF to the owners. Branch names and figures are illustrative.

Where the numbers come from

Three sources cover most of it.

  • The practice system. If it runs on PostgreSQL, MySQL or MSSQL, connect the database under Data sources with a read-only user. If it only exports, a scheduled Excel export works too. Appointments, roster slots and invoices become datasets, either materialized and refreshed on a schedule as often as every 15 minutes, or live and queried on each view.
  • Calls. A workflow runs every hour, lists the last hour’s calls with the Twilio Voice block, or calls the phone system’s API with the generic API block, and writes one row per call to a calls table in Tables.
  • Reminder replies. If you run no-show reminders, those workflows already write confirmations and no-shows to a table as they happen.

No EHR or practice system integration ships. The database connection or the API block does the work.

Definitions before panels

From branch systems to one dashboard and a weekly report

Appointment, roster and invoice data comes from the practice system’s database or exports. Call records land in a table through a workflow. Shared definitions feed one dashboard, monitors alert branch leads, and a weekly PDF goes to owners.

Data · Sources

  1. 01Practice system databasePostgreSQL, MySQL or MSSQL behind the practice system, or Excel exports, as datasets.
  2. 02Call records workflowPulls call records each hour, from Twilio Voice or the phone system’s API, into a calls table.
  3. 03Reminder repliesConfirmations and no-shows written by the reminder workflows as they happen.

Definitions · Semantic model

  1. 04Shared entitiesBranch, clinician, appointment, roster slot, invoice and call, joined once.
  2. 05Named metricsUtilisation, no-show rate, revenue per branch and call answer rate, defined once.

Dashboard · Group operations

  1. 06Operations dashboardTiles, weekly trends and a branch table, filtered by branch and specialty.
  2. 07Branch monitorsNo-show, answer rate and utilisation thresholds, alerting the branch that owns them.
  3. 08Weekly owner PDFSent every Monday at 7:00 to the owners, including external email addresses.

Most arguments in the Monday meeting are about definitions. Settle them once in the semantic model and as named metrics:

  • Utilisation: booked clinician minutes divided by rostered available minutes.
  • No-show rate: no-shows divided by appointments not cancelled at least 24 hours ahead.
  • Revenue per branch: invoiced amount net of refunds, by visit date, not payment date.
  • Call answer rate: answered inbound calls divided by inbound calls during that branch’s opening hours.

Every tile, chart, monitor and report then reads the same number. When an owner asks why Whitefield is at 61%, the answer starts from the definition, not from whose spreadsheet it was.

What each panel shows

Read it from top to bottom.

  • Tiles. Appointments, utilisation, no-show rate and call answer rate for the period, with the change against the previous one.
  • Utilisation trend. Weekly utilisation by branch. Filter to one specialty to see whether a gap is a branch problem or a rota problem.
  • Branch table. One row per branch with a status pill. A rule in plain language sets the pill, for example "alert when utilisation is below 65% or no-show rate is above 10%".
  • Revenue. Revenue per branch and per clinician session, next to utilisation, so a busy but low-revenue branch stands out.

Monitors that tell the branch, not everyone

Monitors re-check as often as every 5 minutes and alert by email, in the app or in Slack. Three are enough to start:

  1. Call answer rate below 80% during opening hours on a day, to the branch manager and front-desk lead.
  2. No-show rate above 10% for a branch over seven days, to the branch manager.
  3. Next week’s utilisation below 60% for a specialty, to the operations lead, while there is still time to fill or merge sessions.

What the solution produces

Weekly owner report summary (illustrative)

Memo

Week 41 · 6 branches · 2,480 appointments, up 3% on the previous week.

Utilisation 74% overall. Whitefield at 60% for a third week: two dermatology sessions run under half full.

No-shows 8.4%. Whitefield and HSR Layout above the 10% alert line on two days each.

Call answer rate 86%. Jayanagar fell to 72% on Saturday morning with one receptionist on leave.

Revenue by branch is on page 2, net of refunds, by visit date.

Scheduled report · PDF · Mondays 7:00 · owners and finance

Monitor alert to a branch manager (illustrative)

Message

Call answer rate at Jayanagar is 72% today during opening hours, below the 80% threshold.

41 of 147 inbound calls were missed between 9:00 and 13:00.

Open the dashboard, filtered to Jayanagar and today.

Monitor · checked every 5 minutes · email and Slack

The weekly PDF to owners

A scheduled report sends the dashboard as a PDF every Monday at 7:00 to the owners and finance, including email addresses outside the workspace. It carries the same panels and the same definitions, so the meeting starts from the report rather than from a merge.

How to measure it

Illustrative

1 version

Of each number in meetings and alerts

Illustrative: every panel, monitor and PDF reads the same named metrics.

Illustrative

15 min

Typical refresh for materialized datasets

Or query live on each view, with results cached for about a minute.

Illustrative

0 hours

Spent merging branch spreadsheets

Illustrative: the weekly PDF replaces the Monday consolidation.

Illustrative example. Figures show how the workflow is measured; they are not customer results.

Access

Controls and governance

Row-level access

Row-level policies narrow what each person sees in tables, dashboards, exports and scheduled reports.

Roles and permission groups

Admin, write and read roles per workspace, plus permission groups that limit which models, blocks and integrations a team can use.

SSO and SCIM

Sign in through your identity provider with SAML 2.0 or OIDC, and provision people with SCIM.

Audit trail

Proposals, approvals, declines and executed actions are written to the workspace audit log, which admins can export.

Self-hosting

Run Agent Serve in your own cloud or data centre, next to the systems it reads.

PII detection

A Guardrails block detects personal data and blocks or masks it before text reaches the next step.

More on how Agent Serve handles access, data and audit on the security page.

Row-level access means each branch manager sees their own branch in the dashboard, in exports and in scheduled reports, while owners see all six. Keep patient identifiers out of the datasets altogether; the dashboard needs counts and amounts, not names. Sign in through your identity provider, and run Agent Serve self-hosted if the practice database must stay on your own network.

Start with appointments and no-shows from one data source, agree the definitions with the owners, then add calls and revenue. For a wider look at branch reporting, see branch performance BI.

Questions teams ask

Does the dashboard show patient-level data?

It does not need to. Panels group by branch, specialty, clinician and week. Keep patient identifiers out of the datasets, and row-level access narrows what each person sees in panels, exports and scheduled reports.

Is this real time?

Near-real-time. Materialized datasets refresh on a schedule as often as every 15 minutes, live datasets query on each view, and rows written by workflows appear as they land. It is not second-by-second.

Before you start

What you need

  • Read access to the practice system’s database, or scheduled Excel exports, for appointments, rosters and invoices
  • Call records from Twilio Voice or a phone system with an API
  • Agreed definitions for utilisation, no-show, revenue and answer rate, signed off by the owners
  • Opening hours per branch, so answer rate counts only calls during them
  • Alert thresholds per metric and a named owner per branch
  • The owners’ email addresses for the weekly PDF
  • Row-level access policies so each branch manager sees their own branch

Written by the Valnora & Elric team.

Figures, dashboards and sample outputs in this article are illustrative examples, not customer results. This article is for information only and isn't legal or regulatory advice.

Enterprise access

Put AI agents to work across your team

Agent Serve is available to teams by invitation. Tell us what you want to build and we will set up your workspace with you.