Part 9 of our series on ERP for Maltese businesses, by sector.
A patient calls to book a follow up. The appointment goes in the diary. They arrive, are seen, and pay at the counter. Somewhere in the same building, stock is being ordered, a delivery is being checked against a supplier invoice, and someone is going through the shelves looking for anything close to its expiry date.
Four activities, four systems. The diary is one thing. The clinical record is another. The till is a third. Stock is a spreadsheet, or a set of habits, or both.
None of them talk to each other. So the answer to any question that spans two of them, such as which services actually make money, or how much stock was written off last year, or whether the busiest clinic session is also the most profitable one, requires somebody to sit down for an afternoon and work it out manually.
Healthcare businesses in Malta tend to run well clinically and blindly commercially.
Why this sector is different
A pharmacy with a clinic attached, or a private practice with several practitioners, is really two or three businesses sharing a roof.
One part is retail. Stock, margins, a till, footfall, promotions.
One part is services. Appointments, practitioner time, room utilisation, session yield.
And one part is regulated. Batch traceability, expiry control, record keeping, and data protection obligations that are considerably stricter than in most sectors.
Those three have genuinely different rhythms and different measures of success, which is why so many healthcare businesses end up with separate systems that were each sensible on their own.
Add the Maltese specifics. Most product is imported with real lead times, so running out is not a same day fix. Many pharmacies participate in government funded medicine schemes with their own recording requirements. Practices are usually small, so one person's absence removes a whole capability. And patients are also customers, which makes the commercial side feel awkward to examine, so often it is not examined at all.
The five things that quietly cost money
1. Expiry losses
Stock that reaches its expiry date on the shelf is money that was spent, held, and then thrown away.
The problem is rarely negligence. It is that expiry dates live on packaging rather than in a system, so the only way to know what is approaching expiry is for someone to physically check. That happens when there is time, which in a busy pharmacy means less often than it should.
Without batch level tracking and alerts, you find out about the loss when you find the box.
2. Stock that runs out on long lead times
The mirror image. A product that sells steadily runs out because nobody noticed it declining, and the replacement takes weeks to arrive.
In retail generally that is an annoyance. In healthcare it means a patient goes elsewhere, and having gone elsewhere once, may not come back. The commercial cost of a stockout is much larger than the margin on the missed sale.
3. Appointment gaps and no shows
Practitioner time is the most expensive thing in a clinic and it perishes exactly like an unsold hour anywhere else.
Gaps in the diary from cancellations, no shows and inefficient booking patterns are usually treated as unavoidable. Some of it is. But without recording no show rates, tracking which slots go unfilled, or sending reminders systematically, nobody knows how much of it is actually recoverable.
A clinic running at 70% utilisation and one running at 85% look identical from the waiting room.
4. Traceability that depends on paper
Where you need to know which batch of a product went to which patient, whether for a recall, a query or a regulatory requirement, the answer needs to be retrievable quickly.
If that information exists in handwritten logs or in separate files, the retrieval is slow and the confidence is low. Most of the time that never matters. On the day it matters, it matters enormously.
5. Nobody knows which services are profitable
A clinic offering several services across several practitioners rarely knows the contribution of each.
The reasons are structural. Practitioner cost, room time, consumables used and revenue collected sit in different places, so the comparison never gets made. As a result, decisions about which services to expand, which sessions to add and how to price are made on impression.
What good looks like
Setting software aside, a well run healthcare business looks like this:
- Stock is tracked at batch level with expiry dates recorded, and near expiry items are flagged automatically with enough notice to use or return them
- Reordering reflects actual sales history and real supplier lead times
- Appointments, practitioners and rooms are managed in one place, with automated reminders reducing no shows
- Retail sales, service billing and stock all sit on the same commercial system
- Consumables used in a service are recorded against it, so the true cost of that service is known
- Traceability from supplier batch through to point of sale can be produced in minutes
- Access to sensitive information is restricted by role and logged
- Practitioner and service profitability can be compared
Where Odoo fits, and where it does not
An important caveat before anything else, because it determines whether this is the right conversation at all.
Odoo is a business system, not a clinical one. It is not an electronic medical records platform, and clinical notes, diagnoses and treatment histories generally belong in dedicated clinical software chosen for that purpose. What Odoo does well is the commercial and operational side that sits around the clinical work: stock, purchasing, retail, appointments, billing, staffing and reporting.
For most Maltese clinics and pharmacies, that is exactly where the problems are. But anyone promising you a single system that also handles clinical records should be asked some hard questions.
With that established, here is what Odoo does:
Batch and expiry tracking. Products can be tracked by lot with expiry dates recorded at receipt. Odoo can then pick oldest first, flag items approaching expiry, and give you a list of what needs attention before it becomes a write off. For most pharmacies this alone changes the annual stock loss figure.
Full traceability. Because lots are recorded from receipt through to sale, you can trace a batch forwards or backwards. A recall becomes a query rather than a search through paperwork.
Reordering with real lead times. Minimum and maximum levels per product, with supplier lead times recorded, so the system proposes purchases before you run out rather than after.
Point of Sale for the counter. A fast till that draws from the same stock as everything else, so a sale reduces stock immediately and reconciliation is per session rather than reconstructed monthly.
Appointments and scheduling. Odoo's Appointments app handles bookings by practitioner and by service, with online booking if you want it, and automated reminders to reduce no shows. Room and practitioner availability is visible in one place.
Service billing alongside retail. Consultations, treatments and products all invoice from the same system, so a patient who has a consultation and buys something is one transaction rather than two.
Consumables recorded against services. Where a treatment uses stock, that consumption can be recorded, which is what makes true service costing possible.
Access control and audit trail. User groups and record rules restrict who can see what, with actions logged. Given the data protection obligations that come with health related information, this is not a nice to have, and it is worth designing deliberately rather than accepting defaults.
Practitioner and service reporting. Revenue and margin by service, by practitioner, by session, by month. Utilisation rates. Which is how you find out that the service everyone assumes is the flagship is being subsidised by something quieter.
Document management. Supplier documentation, certificates, compliance records and correspondence filed centrally with controlled access.
A second honest note. Any project touching health related data needs a proper look at data protection obligations before it starts, not after. That means deciding what data lives where, who can access it, how long it is kept and how it is secured. It is worth taking specific advice on this rather than treating it as a configuration detail.
How these projects usually run
Sensible phasing: stock, batch tracking and purchasing first, since that is where the measurable losses are and where the payback is quickest. Then the till and retail side. Then appointments and service billing. Then reporting and refinements.
Starting with stock also has a practical advantage. It builds confidence in the system on the part of the business that is easiest to verify, before moving into the areas that touch patients.
Avoid going live during your busiest season, and avoid it during any period when regulatory reporting is due.
Where to start
Three things you can do this month, without buying anything:
Add up last year's expiry write offs. Whatever record you have, however rough. Most pharmacies have never totalled this figure, and it is usually larger than the impression of it.
Check your appointment utilisation for one month. Slots available against slots filled, per practitioner. Then count the no shows. The gap between those two numbers is recoverable revenue.
Pick one product and try to trace which batch was sold when. Time yourself. If it takes more than a few minutes, you have a traceability problem that is currently invisible because nobody has asked.
If those exercises are difficult with the records you have, that difficulty is the finding.
Centric Malta is an Odoo implementation partner based in Birkirkara, working with Maltese pharmacies, clinics and healthcare providers. If you would like to talk through how your stock, appointments and billing currently connect, and what it would take to see them properly, get in touch.
Mob +356 7746 9333 | Tel +356 2746 3333 | info@centricmt.com
Previously in this series: ERP for logistics, freight and transport businesses in Malta.