The Veterinary Clinic KPI Guide: What to Measure, How to Calculate It, and When to Use Paper, Excel, or Software

Many clinics know they want “better analytics,” but the real question is simpler:

Which numbers actually matter, what do they mean to the business, and what is the most reasonable way to produce them?

This guide maps the KPI surfaces currently shown across Übik’s analytics-related pages and dashboard views. For each KPI group, it explains:

  • what the number means to the clinic
  • what data is needed to compute it
  • the conceptual equation in plain business variables
  • how difficult it would be to reproduce on paper, in Excel, or in Übik
  • which method is the most reasonable in practice

This is written for clinic operators and managers, not developers.


How to Read the Difficulty Bars

  • Lower is easier.
  • Format: Paper [#####] Excel [###--] Ubik [#----]
  • [#----] means easy.
  • [#####] means very difficult.

One Rule Before We Start

  • Paper is only realistic for small same-day counts.
  • Excel works for short exports and simple rollups.
  • Übik is the right tool when a KPI spans many records, uses timestamps, or needs to stay current.

Home Dashboard

The home dashboard is the clinic’s fast operational snapshot. It answers: what is happening today, where is pressure building, and are we adequately staffed, stocked, and collecting?

Page: /

KPI surface What it means to the clinic Data required Equation (plain business variables) Difficulty Best method
Appointment status mix: scheduled, waiting, serving, done, canceled Shows today’s visit flow and whether the day is piling up or moving Appointments for the clinic day; appointment status; appointment type Scheduled Visits = count(appointments where Status = Scheduled); Waiting Visits = count(appointments where Status = Waiting); Serving Visits = count(appointments where Status = Serving); Done Visits = count(appointments where Status = Done); Canceled Visits = count(appointments where Status = Canceled) Paper [##---] Excel [#----] Ubik [#----] Ubik
Appointment type mix Shows what kind of clinical demand is filling the day Appointments; appointment type Visits for Appointment Type X = count(appointments where Appointment Type = X) Paper [##---] Excel [#----] Ubik [#----] Ubik
Average waiting time Measures front-desk and doctor throughput from client arrival to service start Waiting timestamps or stored waiting minutes Average Waiting Time = Total Waiting Minutes / Number of Visits Included in Waiting Pool Paper [####-] Excel [###--] Ubik [#----] Ubik
Average serving time Shows how long visits are consuming clinical capacity Serving timestamps or stored serving minutes on completed visits Average Serving Time = Total Serving Minutes for Completed Visits / Number of Completed Visits Paper [####-] Excel [###--] Ubik [#----] Ubik
Smart close: cutoff time and projected finish Helps decide whether to keep taking more work and whether the team will finish late Business hours, staff currently clocked in, current load, historical close model Projected Finish Time = Forecast(Current Queue + Current Staffing + Historical Close Pattern + Business Hours); this is a forecast, not a simple hand formula Paper [#####] Excel [#####] Ubik [#----] Ubik
New vs returning customers Shows how much of today’s demand is acquisition vs repeat demand Appointments; linked customer created date New Customers Seen Today = count(visits where Customer Created Date is Today); Returning Customers Seen Today = count(visits where Customer Created Date is Before Today) Paper [###--] Excel [##---] Ubik [#----] Ubik
New vs returning pets and species mix Shows case mix and whether growth is coming from new pets or established households Appointments; linked pet created date; pet species New Pets Seen Today = count(visits where Pet Created Date is Today); Returning Pets Seen Today = count(visits where Pet Created Date is Before Today); Species Count = count(pets seen where Species = X) Paper [###--] Excel [##---] Ubik [#----] Ubik
Staff mix and staffing now: admins, staff, scheduled to work, currently working Shows whether coverage is in place and whether the scheduled team has actually clocked in User roles; employee schedules; open time checks Admins = count(users where Role = Admin); Staff = count(users where Role = Staff); Scheduled to Work = count(shifts scheduled today); Currently Working = count(open time logs with no clock-out yet) Paper [###--] Excel [##---] Ubik [#----] Ubik
Payment volume and payment-method mix Shows today’s collection activity and how money is being collected Payments; refunds; payment method; linked appointment type Total Payments = count(payment rows); Sales Payments = count(payments linked to POS sales); Appointment Payments = count(payments linked to non-sale visits); Payments by Method = count(payments where Payment Method = X) Paper [###--] Excel [##---] Ubik [#----] Ubik
Inventory health: total items, low stock, out of stock, type mix Shows whether stock is broadly healthy before the team feels shortages Inventory records; low-stock flag; out-of-stock flag; inventory type Total Items = count(inventory records); Low Stock Items = count(items flagged Low Stock); Out of Stock Items = count(items flagged Out of Stock); Items by Type = count(items where Type = X) Paper [###--] Excel [##---] Ubik [#----] Ubik
POS snapshot: sales, unpaid, payments, POS revenue Shows retail checkout health for the day Sale appointments; POS payments; POS refunds POS Sales = count(POS sale appointments); Unpaid POS Sales = count(POS sale appointments where Status = Unpaid); POS Payments = count(POS payment rows); POS Revenue = Total POS Payments - Total POS Refunds Paper [###--] Excel [##---] Ubik [#----] Ubik

Appointment Analytics

Appointment analytics is where the clinic can see flow, workload, collection behavior, and operational bottlenecks over a selected period.

Page: /appointment/analytics

KPI surface What it means to the clinic Data required Equation (plain business variables) Difficulty Best method
Appointment overview: total, done, waiting, canceled, unassigned, sales Fast operating summary for the selected period Appointments in range; status; type; assignment Total Visits = count(all visits in range); Done Visits = count(visits where Status = Done); Waiting Visits = count(visits where Status = Waiting); Canceled Visits = count(visits where Status = Canceled); Unassigned Visits = count(non-sale visits with no assigned clinician); Sales Visits = count(visits where Appointment Type = Sale) Paper [###--] Excel [##---] Ubik [#----] Ubik
Cashier collection totals by person and by method Shows who collected money and through which channels Payments; refunds; cashier; payment method Cashier Net Collection = Total Payments Collected by Cashier - Total Refunds Processed by Cashier; Method Net Collection = Payments by Method - Refunds by Method Paper [####-] Excel [###--] Ubik [#----] Ubik
Appointment detail table: waiting time, serving time, charges, payments Lets managers audit which visits were slow, underpaid, or high-value Appointments; charges; payments; refunds Visit Charges = sum(charge lines linked to visit); Visit Payments = sum(payments linked to visit) - sum(refunds linked to visit); Waiting Time = visit waiting minutes; Serving Time = visit serving minutes Paper [#####] Excel [####-] Ubik [#----] Ubik
Technician table: served count, served minutes, revenue Shows workload and money associated with each clinician or technician Appointments with assignee; serving minutes; payments; refunds Visits Served by Technician = count(visits assigned to technician); Technician Serving Minutes = sum(serving minutes for technician's visits); Technician Revenue = sum(net payments linked to technician's visits) Paper [####-] Excel [###--] Ubik [#----] Ubik
Payment table and payment method counts Shows collection mix and traceability for each payment Payments in range; linked customer; cashier; method Payments by Method = count(payment rows where Method = X); the table is the row-by-row payment ledger Paper [###--] Excel [##---] Ubik [#----] Ubik
Waiting load chart Shows when the clinic had the heaviest waiting-room pressure Appointments with waiting start; waiting minutes Visits in Time Bucket = count(visits whose waiting start falls in bucket); Average Waiting Time in Bucket = Total Waiting Minutes in Bucket / Visits in Bucket Paper [####-] Excel [###--] Ubik [#----] Ubik
Serving load chart Shows when service demand peaked and which technicians absorbed it Appointments with serving start; serving minutes; assignee Served Visits in Time Bucket = count(visits whose serving start falls in bucket); Average Serving Time in Bucket = Total Serving Minutes in Bucket / Served Visits in Bucket; technician bars are counts by technician in the same bucket Paper [####-] Excel [###--] Ubik [#----] Ubik
Initiator/source chart Shows where appointments are coming from: reception, doctor, customer self-service, kiosk, and more Appointment initiator or source field Visits from Source X = count(visits where Initiator Source = X) Paper [###--] Excel [##---] Ubik [#----] Ubik

Customer Analytics

Customer analytics turns appointments and payments into retention, value, and communication insight.

Page: /customer/analytics

KPI surface What it means to the clinic Data required Equation (plain business variables) Difficulty Best method
Active, new, and repeat clients Shows retention health and whether growth is coming from first-time or returning households Appointments; customer history; last completed appointment before range Active Clients = count(unique customers seen in date range); New Clients = count(unique customers seen in range with no completed visit before range); Repeat Clients = count(unique customers seen in range with at least one completed visit before range) Paper [####-] Excel [###--] Ubik [#----] Ubik
Total appointments, cancellation rate, average revisit days, median revisit days Shows repeat behavior and schedule reliability Appointments by customer over time; cancellation status Cancellation Rate = Canceled Visits / Total Visits; Revisit Days = days between one visit date and the previous visit date for the same customer; averages and medians are then taken across all revisit gaps Paper [####-] Excel [###--] Ubik [#----] Ubik
Average and median pets per customer Shows household depth and cross-sell potential Customers in range; active pets linked to each customer Pets per Customer = Active Pets Linked to Customer; Average Pets per Customer = Total Active Pets Across Included Customers / Included Customers; median is the middle household size Paper [####-] Excel [###--] Ubik [#----] Ubik
Revenue summary: gross charges, discounts, payments, promotion credits, net revenue, ARPU, unpaid estimate Shows client-book value and how much billed work actually converted into cash Charges; discounts; payments; refunds; promotions; linked customer Gross Charges = sum(all charge lines); Discounts = sum(discount value); Payments = sum(payments) - sum(refunds); Promotion Credits = sum(payments tied to promotions); Net Revenue = Gross Charges - Promotion Credits; ARPU = Net Revenue / Revenue-Generating Customers; Unpaid Estimate = sum(max(Visit Charges - Visit Payments, 0)) Paper [#####] Excel [####-] Ubik [#----] Ubik
Revenue by service type and by product type Shows which kinds of care and product demand are driving client value Charges; linked service or inventory category Revenue for Category X = sum(charge line revenue where Category = X) Paper [####-] Excel [###--] Ubik [#----] Ubik
Customer lists: active, new, repeat Turns the summary into action lists for follow-up and relationship management Customer profiles; pet counts; visit counts; revenue; last visit List membership follows the segment equations above; rows then show Visits, Revenue, Pets, and Last Visit for each customer Paper [####-] Excel [###--] Ubik [#----] Ubik
Loyalty candidates Finds clients most worth protecting with follow-up, perks, or reminders Customer visits; last visit; revenue; pet counts Loyalty Score = (Recency Score + Visit Score + Revenue Score) / 3, where recency rewards recent visits, visit score rewards frequency, and revenue score rewards higher spend Paper [#####] Excel [####-] Ubik [#----] Ubik
Appointment journey table and flow chart Shows how customers move from lobby to clinician to payment, and where friction appears Appointments; assignee; cashier; waiting and serving timestamps; appointment type Journey Path = Lobby -> Assigned Clinician -> Payment Destination; Waiting Minutes = Service Start - Waiting Start; Serving Minutes = Service End - Service Start Paper [#####] Excel [####-] Ubik [#----] Ubik
Unpaid appointments by customer Shows who still owes money and how big the balance is Appointments marked unpaid; charges; payments; refunds Appointment Balance Gap = Appointment Charges - Appointment Net Payments; Customer Unpaid Balance = sum(Appointment Balance Gap across unpaid appointments for that customer) Paper [#####] Excel [####-] Ubik [#----] Ubik
Charge/payment discrepancies Finds non-unpaid appointments where billing and payments still do not match Appointments in range; charges; payments; refunds Discrepancy = Appointment Charges - Appointment Net Payments; only non-unpaid visits with a non-zero absolute gap are shown Paper [#####] Excel [####-] Ubik [#----] Ubik
Communications: WhatsApp incoming/outgoing, email outgoing, template coverage, estimated cost, unreachable customers Shows messaging workload, messaging cost, template discipline, and contactability risk Daily account message stats; communication threads; customer unreachable flag WhatsApp Incoming = count(inbound WhatsApp threads); WhatsApp Outgoing = total WhatsApp messages sent; Email Outgoing = total emails sent; Estimated Cost = (WhatsApp Incoming x WhatsApp Unit Cost) + (WhatsApp Outgoing x WhatsApp Unit Cost) + (Email Outgoing x Email Unit Cost); Template Coverage = Template-Tracked Outgoing Messages / Total Outgoing Messages; Unreachable Customers = count(customers flagged unreachable) Paper [#####] Excel [####-] Ubik [#----] Ubik

User Analytics

User analytics shows whether the clinic’s people are being used effectively and whether workload is balanced.

Page: /user/analytics

KPI surface What it means to the clinic Data required Equation (plain business variables) Difficulty Best method
Appointments assigned, worked hours, time serving appointments, work utilization Shows whether each employee is busy, underused, or overloaded User records; assigned appointments; time checks; serving timestamps Appointments Assigned = count(visits assigned to employee); Worked Hours = sum(clock-out time - clock-in time); Time Serving Appointments = total non-overlapping serving time for that employee's visits; Work Utilization = Time Serving Appointments / Worked Hours Paper [####-] Excel [###--] Ubik [#----] Ubik
Employee comparison charts Makes staffing imbalance visible across the team Same data as above Charts plot Appointments Assigned, Worked Hours, Time Serving Appointments, and Work Utilization side by side for each employee Paper [#####] Excel [###--] Ubik [#----] Ubik

Achievement Analytics

Achievement analytics blends recognition with daily operational performance.

Page: /achievement/analytics

KPI surface What it means to the clinic Data required Equation (plain business variables) Difficulty Best method
Achievement award log Shows who is earning recognition and how often Achievement definitions; achievement logs; employee and date Achievement Awards = count(achievement log rows in period) Paper [###--] Excel [##---] Ubik [#----] Ubik
Employee performance combo chart Blends productivity, utilization, case mix, note and vitals completeness, appointment-type mix, and achievements Daily employee stats: appointments completed, utilization, serve hours, taxonomy mix, note completion, vitals completion, appointment counts by type, average serve duration by type, earned achievements Main equations include Appointments Completed = count(served visits assigned that day); Utilization Percent = Total Serve Minutes / Standard Workday Minutes; Vitals Completeness = count(appointments with all required vitals); Notes Completeness = count(appointments with all required note sections); Average Serve Duration for Type X = Total Serve Minutes for Type X / Visits of Type X Paper [#####] Excel [#####] Ubik [#----] Ubik

Additional notes on the employee-stat formulas used here:

  • Appointments completed: count of served appointments assigned to the employee that day.
  • Total serve minutes: merged serving time across the employee’s appointments so overlaps are not double-counted.
  • Utilization percent: total serve minutes divided by an 8-hour workday in the daily stats job.
  • Vitals completeness: count of appointments with all required vitals filled.
  • Notes completeness: count of appointments with key note sections filled.

Inventory Analytics

Inventory analytics is where operational stock control becomes financial control. It answers whether the clinic is safe on stock, where shortages are coming, what is moving, what is expiring, and what buying decisions are justified.

Page: /inventory/analytics

Planning Tab

KPI surface What it means to the clinic Data required Equation (plain business variables) Difficulty Best method
Planning summary: total items, below reorder, low cover, shortage soon, suggested lines, on-hand value, estimated reorder value Shows whether stock is safe, fragile, or already demanding action Inventory planning stats; current stock; reorder point; days of cover; suggestion lines; unit cost Below Reorder Items = count(items where Current Stock + On-Order Qty < Reorder Point); Low Cover Items = count(items where Days of Cover < Low-Cover Threshold); Shortage Soon Items = count(items with projected shortage inside horizon); On-Hand Value = sum(Current Stock x Business Cost per Unit); Estimated Reorder Value = sum(Recommended Qty x Business Cost per Unit) Paper [#####] Excel [####-] Ubik [#----] Ubik
Risk distribution chart Shows how much of the catalog is healthy vs risky Planning rows with state labels Items in State X = count(planning rows where State = X) Paper [####-] Excel [###--] Ubik [#----] Ubik
Top reorder gaps chart Shows the products with the biggest stock shortfall Current stock; on-order quantity; reorder point Reorder Gap = max(Reorder Point - (Current Stock + On-Order Quantity), 0) Paper [####-] Excel [###--] Ubik [#----] Ubik
Supplier pressure table Shows which suppliers are tied to the most inventory risk and replenishment demand Risky inventory rows; purchase suggestions; supplier links Risky Items for Supplier = count(items for supplier where State is risky); Suggested Lines for Supplier = count(open suggestion lines for supplier); Estimated Order Value for Supplier = sum(Recommended Qty x Business Cost per Unit for supplier's suggested lines) Paper [#####] Excel [####-] Ubik [#----] Ubik
Purchase suggestions Turns planning into a buy list with reason, quantity, value, and shortage date Purchase suggestions; suggestion lines; inventory unit cost Recommended Order Value per Line = Recommended Quantity x Business Cost per Unit Paper [#####] Excel [####-] Ubik [#----] Ubik
Negative quantity inventory Finds obvious stock data failures before they cause bad decisions Inventory quantity and package balances Negative Inventory = count(items where On-Hand Quantity < 0) Paper [##---] Excel [#----] Ubik [#----] Ubik
Planning overview table Gives the operator the full planning context per product Current stock; supplier; strategy; days of cover; average daily demand; reorder point; gap; shortage date; cost Core row equations are Days of Cover = Current Stock / Average Daily Demand; Reorder Gap = max(Reorder Point - (Current Stock + On-Order Quantity), 0); On-Hand Value = Current Stock x Business Cost per Unit Paper [#####] Excel [####-] Ubik [#----] Ubik

Over Time Tab

KPI surface What it means to the clinic Data required Equation (plain business variables) Difficulty Best method
Dispense summary: events, distinct items, quantity, packages, business value, customer value Shows how much inventory is actually moving and its cost/value footprint Inventory dispenses; quantity; packages; item cost; item sell value Dispense Events = count(dispense rows); Distinct Items = count(unique products dispensed); Dispensed Quantity = sum(dispensed quantity); Dispensed Packages = sum(dispensed packages); Business Value = sum(dispensed quantity x business cost per unit); Customer Value = sum(dispensed quantity x customer price per unit) Paper [####-] Excel [###--] Ubik [#----] Ubik
Dispense table Lets the clinic audit who dispensed what, to whom, and at what value Inventory dispenses; dispenser; customer; pet; quantity; values Row equations include Business Value = Dispensed Quantity x Business Cost per Unit and Customer Value = Dispensed Quantity x Customer Price per Unit Paper [####-] Excel [###--] Ubik [#----] Ubik
Dispense hierarchy Sankey Shows the flow from product to dispenser to recipient Dispense events; item; dispenser; customer, pet, or date Flow Value = sum(Dispensed Quantity along Product -> Staff -> Recipient path) Paper [#####] Excel [#####] Ubik [#----] Ubik
Quantity by day and stock-on-hand by day Shows use velocity versus remaining stock trajectory Dispenses over time; inventory logs over time Daily Dispensed Quantity = sum(dispensed quantity in day bucket); End-of-Day Stock = latest logged stock balance up to that day Paper [#####] Excel [#####] Ubik [#----] Ubik

Expense Cost Tab

KPI surface What it means to the clinic Data required Equation (plain business variables) Difficulty Best method
Inventory expense cost trend Shows how purchase prices are moving for selected products Inventory-linked cost-of-goods expenses; quantity purchased; taxes; supplier Total Expense Amount = Expense Subtotal + Tax Paid; Converted Inventory Units Added = Purchase Quantity x Purchase-Unit-to-Inventory Multiplier; Unit Price = Total Expense Amount / Converted Inventory Units Added Paper [#####] Excel [####-] Ubik [#----] Ubik
Inventory expense cost table Compares suppliers, quantities added, total spend, and average price per unit Same as above, plus purchase-unit conversion Total Spend per Product = sum(Total Expense Amount); Total Units Added per Product = sum(Converted Inventory Units Added); Average Unit Price = Total Spend per Product / Total Units Added per Product Paper [#####] Excel [####-] Ubik [#----] Ubik
Expense cost recommendations Suggests which products are most worth analyzing because they have repeated recent expense activity Recent inventory-linked cost-of-goods expenses Ranked by Expense Row Count, then Total Expense Amount, then Most Recent Expense Date Paper [#####] Excel [####-] Ubik [#----] Ubik

Lots and Expirations Tab

KPI surface What it means to the clinic Data required Equation (plain business variables) Difficulty Best method
Lot summary: tracked items, open lots, expired lots, expiring in 7 days, expiring in 30 days, estimated expiring value Shows expiry risk before loss hits margins or patient care Inventory lots; lot quantity; expiry date; item business cost Expired Lots = count(lots where Days to Expire < 0); Expiring in 7 Days = count(lots where Days to Expire <= 7); Expiring in 30 Days = count(lots where Days to Expire <= 30); Estimated Expiring Value = sum(Lot Quantity x Business Cost per Unit for expired and near-expiring lots) Paper [#####] Excel [####-] Ubik [#----] Ubik
Expiration risk by bucket Shows whether expiry exposure is immediate or still manageable Lot status buckets Lots in Bucket X = count(open lots where Status Bucket = X) Paper [####-] Excel [###--] Ubik [#----] Ubik
Top expiring-value items Shows where the clinic is most likely to lose money first Lots with expiry risk; item business cost Expiring Value per Product = sum(Lot Quantity x Business Cost per Unit for risky lots on that product) Paper [#####] Excel [####-] Ubik [#----] Ubik
Inventory lots table Gives the operator the per-lot details needed to act Product, supplier, lot number, expiry date, quantity, cost value, lot status Lot Business Value = Lot Quantity x Business Cost per Unit; Days to Expire = Expiry Date - Today Paper [#####] Excel [####-] Ubik [#----] Ubik
Data quality issues Finds stock records that should not be trusted yet Inventory quantity; lot quantity; untracked lots; missing expiry dates Quantity Mismatch = Total Lot Quantity - Current On-Hand Quantity; flags appear when mismatch, missing lots, untracked quantity, or missing expiry quantity are present Paper [####-] Excel [###--] Ubik [#----] Ubik

Accounting Analytics

Accounting analytics shows whether the clinic is collecting, spending, moving cash intelligently, and protecting margin.

Page: /accounting/analytics

Overview and Expenses/Income

KPI surface What it means to the clinic Data required Equation (plain business variables) Difficulty Best method
Pending payments to suppliers Shows how much cash is still owed to vendors Expenses; supplier remaining balance; supplier payments Pending Supplier Balance = sum(Remaining Amount Owed to Supplier across pending expense rows) Paper [###--] Excel [##---] Ubik [#----] Ubik
Income over time chart and payment totals by method Shows collection timing and payment-method mix Payments; refunds; payment method; date Net Payments = Total Payments - Total Refunds; Net Payments by Method X = Payments by Method X - Refunds by Method X Paper [####-] Excel [###--] Ubik [#----] Ubik
Expense type chart Shows where money is going by expense type and CFDI use Expenses; subtotal; discount; tax paid; expense type; CFDI use Expense Amount = Expense Subtotal - Discount + Tax Paid; Expense Type Total = sum(Expense Amount where Expense Type = X) Paper [####-] Excel [###--] Ubik [#----] Ubik
Payments table and expenses table Gives row-level traceability behind the summary Payments; expenses; customer; cashier; supplier; type Row-level ledger; the main supporting equations are the same as the payment and expense equations above Paper [###--] Excel [##---] Ubik [#----] Ubik

Cashflow

KPI surface What it means to the clinic Data required Equation (plain business variables) Difficulty Best method
Cashflow summary: cash in, cash out, net, average daily net, largest inflow, largest outflow Shows whether the clinic is generating or consuming cash in the selected period Payments; refunds; expenses; supplier payment events Cash In = sum(all inflow events); Cash Out = sum(all outflow events); Net Cashflow = Cash In - Cash Out; Average Daily Net = Net Cashflow / Number of Days in Range; Largest Inflow = max(single inflow event); Largest Outflow = max(single outflow event) Paper [#####] Excel [####-] Ubik [#----] Ubik
Cashflow over time chart Shows when cash pressure or cash generation happened Same as above with dates Net Cashflow for Time Bucket = Cash In for Bucket - Cash Out for Bucket Paper [#####] Excel [####-] Ubik [#----] Ubik
Cash out by supplier and by type Shows where cash is leaving the business Expenses; supplier payment events; expense type Cash Out for Supplier X = sum(outflow events where Supplier = X); Cash Out for Expense Type X = sum(outflow events where Expense Type = X) Paper [####-] Excel [###--] Ubik [#----] Ubik
Cash in by method Shows how clients are paying Payments by method, net of refunds Cash In by Method X = Payments by Method X - Refunds by Method X Paper [###--] Excel [##---] Ubik [#----] Ubik
Cashflow events table Provides an auditable event ledger behind the totals Inflow and outflow events with date, amount, method, note This table is the event-level ledger used to build the cashflow totals above Paper [#####] Excel [####-] Ubik [#----] Ubik

Profitability

KPI surface What it means to the clinic Data required Equation (plain business variables) Difficulty Best method
Profitability summary: revenue, COGS, gross profit, gross margin, operating expenses, net profit Shows whether the clinic is actually making money after product cost and operating spend Cash inflows; cost-of-goods expenses; operating expenses Revenue = sum(cash inflows); COGS = sum(cost-of-goods outflows); Gross Profit = Revenue - COGS; Gross Margin = Gross Profit / Revenue; Operating Expenses = sum(non-COGS operating outflows); Net Profit = Gross Profit - Operating Expenses Paper [#####] Excel [####-] Ubik [#----] Ubik
Profitability waterfall and trend Explains where margin is lost and when profit changed over time Same as above with time buckets Net Profit for Time Bucket = Revenue for Bucket - COGS for Bucket - Operating Expenses for Bucket Paper [#####] Excel [####-] Ubik [#----] Ubik
Operating expenses by type and COGS by supplier Shows which overhead classes and which vendors are weighing most on margin Expenses by type; COGS-linked supplier payments Operating Expenses for Type X = sum(operating expense outflows where Type = X); COGS for Supplier X = sum(cost-of-goods outflows where Supplier = X) Paper [####-] Excel [###--] Ubik [#----] Ubik

Promotions

KPI surface What it means to the clinic Data required Equation (plain business variables) Difficulty Best method
Promotions summary: promotions used, total loss, average loss, unique promotions, top promotion type, top type loss Shows how expensive discounting really is Promotion-linked expense rows; linked payment; promotion type or name Promotion Events = count(promotion-linked loss rows); Total Promotion Loss = sum(promotion-linked loss amount); Average Promotion Loss = Total Promotion Loss / Promotion Events; Unique Promotions = count(unique promotion IDs used); Top Type Loss = max(sum(loss amount by promotion type)) Paper [#####] Excel [####-] Ubik [#----] Ubik
Promotion loss by name Shows which named promotions are costing the most Same as above Promotion Loss for Promotion Name X = sum(loss amount where Promotion Name = X) Paper [####-] Excel [###--] Ubik [#----] Ubik
Promotion events table Lets management audit each discount event by customer, cashier, payment method, and note Promotion expense rows; linked customer and cashier This table is the event-level ledger used to build the promotion-loss totals above Paper [#####] Excel [####-] Ubik [#----] Ubik

Performance

KPI surface What it means to the clinic Data required Equation (plain business variables) Difficulty Best method
Product performance table Shows which products move volume, generate revenue, and keep or lose margin Inventory charges; quantities; revenue after discount; business cost Units Sold = sum(quantity sold); Revenue = sum(net sale value after discount); Cost = sum(quantity sold x business cost per unit); Margin Percent = (Revenue - Cost) / Revenue Paper [#####] Excel [####-] Ubik [#----] Ubik
Service performance table Shows which services carry the most revenue, cost, profit, and trend Service renders; quantity; service sell price; service business cost Units Sold = sum(service quantity rendered); Revenue = sum(service sell price x quantity); Cost = sum(service business cost x quantity); Profit = Revenue - Cost; Margin Percent = Profit / Revenue Paper [#####] Excel [####-] Ubik [#----] Ubik
Sales summary table Gives a mixed leaderboard of services and products by volume and pricing Charges linked to services or inventory Charge Count = count(charge rows for item); Average Price = Total Price / Charge Count; Total Billed Amount = sum(charge price values) Paper [####-] Excel [###--] Ubik [#----] Ubik

Short Recommendations by Metric Type

Use paper only for:

  • daily headcounts
  • small one-off status counts
  • very small clinics checking one day’s worth of visits

Use Excel for:

  • short exported lists
  • simple monthly rollups
  • ranking customers, products, or suppliers after export

Use Übik for:

  • anything mixing appointments, charges, payments, refunds, expenses, inventory, or staff logs
  • anything time-based
  • anything you need to trust repeatedly
  • anything where live or near-live visibility matters

Bottom Line

The easiest metrics to reproduce outside Übik are simple counts:

  • status counts
  • new vs returning counts
  • low stock and out-of-stock counts
  • basic payment-method totals

The least practical metrics to reproduce outside Übik are the cross-record metrics:

  • smart close forecasting
  • profitability and promotion loss
  • delinquent and discrepancy balances
  • inventory planning and lot-risk analytics
  • loyalty scoring
  • employee performance blends

If the clinic wants one practical rule:

  • use paper for quick same-day headcounts
  • use Excel for exported ranking and follow-up lists
  • use Übik for every metric that affects staffing, cash, pricing, stock, or collections

Schedule a Free Demo or Send Us a Message

We’d love to show you how Übik can help your clinic turn analytics into better operational decisions.

📞 WhatsApp: 1-612-383-6374
🌐 Website: goubik.com
📧 Email: [email protected]
👉 Or send us a message on Facebook