You have two associate vets. One sees more complex cases, one sees more volume. At the end of the month you try to split revenue fairly — and you realise you don't actually have clean numbers. You have a total. You have rough memory. You have a spreadsheet someone built six months ago that nobody's updated.
This is the moment production-based pay breaks down — not because the concept is wrong, but because the data underneath it was never built correctly.
Why attribution goes wrong before the report even exists
In a busy clinic, the consult and the invoice are created by different people at different moments. Dr Priya sees the patient. The receptionist raises the invoice — sometimes at checkout, sometimes later. If the invoice isn't explicitly linked to the consulting vet, the revenue floats. It lands in the clinic total but belongs to nobody in particular.
Add a shared-duty day — two vets splitting a Saturday — and the problem compounds. Add a locum covering a half-day and you have charges that are genuinely ambiguous unless someone made a note at the time.
The second failure point is unbilled work. An associate vet who administered a vaccine, dispensed a dewormer, or ran an in-house test that never made it onto the invoice has effectively worked for free — and so has the clinic. When you run a revenue-by-doctor report on incomplete billing data, you're measuring attribution on top of leakage. The vet's number looks low; you assume they had a slow month; the actual problem is that charges slipped before the report was even generated.
These two problems — missing attribution and missing charges — need to be solved in that order. Fix the billing first, then read the split.
The columns your revenue-by-doctor report needs
A useful report isn't just total invoiced per vet. That number alone doesn't tell you whether a low figure means a quiet month, a lot of free rechecks, or a billing gap. Here's what the report should show:
- Visits attributed — how many consultations are linked to this vet. If you see a vet with 80 visits but another with 0, the attribution is broken, not the workload.
- Invoices raised on attributed visits — of those 80 visits, how many produced an invoice? A gap here is a billing process problem.
- Gross billed (before discounts) — the total on the invoices before any courtesy discounts or adjustments.
- Discounts and write-offs — shown separately, not buried. A vet who gives a lot of courtesy discounts will show a lower net; you need to see whether that's policy or habit.
- Net collected — what actually came in, after discounts and any outstanding balances.
- Average invoice value — gross billed divided by invoices raised. Useful for spotting whether a vet is under-charging on service lines (consult fee too low, procedures not itemised).
- Pharmacy / dispensing attributed — separately from services, because margins and attribution logic differ.
- Uninvoiced visits (if tracked manually) — visits where the appointment is marked complete but no invoice exists. This is a flag for your front desk to chase, not a number the report generates automatically.
The last column is the hard one. Your practice management system can only report on what was invoiced. The gap between 'visit happened' and 'invoice raised' has to be caught by a daily reconciliation step — someone comparing completed appointments against invoices before the day closes. That's a process discipline, not a software feature.
A worked example: what the numbers actually reveal
Take an illustrative two-vet clinic seeing roughly 30 patients a day. In this example, Dr A sees 15 patients and Dr B sees 15. At month-end, Dr A's attributed revenue is ₹1,80,000 and Dr B's is ₹1,10,000. The owner assumes Dr A had a better case mix.
But when you add the 'invoices raised on attributed visits' column, Dr B's number drops: 15 daily visits × 22 working days = 330 visits, but only 290 invoices. Forty visits produced no invoice. At an assumed average of ₹600 per visit in this scenario, that's ₹24,000 sitting unbilled — not because Dr B worked less, but because forty checkouts slipped through without an invoice being raised.
The production pay calculation was penalising Dr B for a front-desk process failure. That's the kind of thing that quietly corrodes trust between an associate and the practice owner — and the associate can't even articulate why their number feels wrong, because they don't have access to the report.
The process that keeps the report honest
The report is only as good as what goes into it. Three habits protect the data:
- Attribute at booking, confirm at checkout. Every appointment is assigned to a vet when booked. At checkout, the invoice is raised under that vet's name. If a different vet actually saw the patient, the receptionist corrects it before closing the visit — not at month-end.
- Day-end reconciliation, every day. Before the system closes for the night, someone checks: completed appointments versus invoices raised. Any gap gets flagged and resolved the same evening. This is the single most effective charge-capture habit a small clinic can build. The post on end-of-day reconciliation covers the full routine.
- Share the report with your associates. A vet who can see their own numbers — visits, invoices, average value — will notice anomalies faster than any manager will. If Dr B can see that 40 visits went uninvoiced last month, they'll mention it. Transparency is also a retention tool.
Where a practice system helps — and where it doesn't
When appointments, clinical records, and invoices sit in separate places — a paper diary, a Word doc, a Tally entry — building a revenue-by-doctor report means manually joining three sources at month-end. People do it, but it takes hours and the error rate is high.
When they sit together, the report is a filter, not a project. MyCliniCore links appointments, visit records, and invoices so the revenue-by-doctor view is available whenever you need it — by day, week, or month — without exporting anything. The reports and dashboard show attributed revenue, visit counts, and invoice totals per vet. You still need the day-end reconciliation habit; the system shows you what was billed, not what was missed.
That distinction matters. No system reads a consult note and tells you a charge was forgotten. That gap is closed by the person at the front desk who checks completed visits against invoices before going home. The report confirms the billing was done; the process ensures the billing happened.
Making production pay actually work
Production-based pay is a reasonable model. It aligns incentive with output, and associate vets generally prefer it to a flat salary when the billing is clean. The problem isn't the model — it's that most small clinics implement it on top of a billing process that was never designed to support it.
Fix the attribution first: every visit linked to a vet at the time of booking. Fix the billing second: day-end reconciliation so no visit closes without an invoice. Then run the report. At that point the numbers mean something, and the conversation with your associate about their monthly figure is based on data you both trust.
For a broader look at the metrics that sit alongside revenue-by-doctor, the post on 7 KPIs every vet practice owner should check weekly covers average transaction value, visit volume, and the other numbers worth watching.
If you want a sense of how much revenue your clinic might be leaving unbilled — across all vets, not just one — the free 60-second audit estimates leakage from industry benchmarks. It doesn't look at your clinic's own data, but it gives you a starting point for the conversation.