+20 11 00 289 896|+966 53 646 4828|info@extramile-egy.com

CASE STUDY

Cutting Expiry Losses Across a Pharmacy Chain with Odoo

An 8-branch pharmacy group in Egypt moved to one Odoo system: expired-stock write-offs fell about 40% in six months and month-end close went from 9 days to 3.

The challenge

The group ran each branch on separate tools and spreadsheets. Head office had no view of stock or expiry dates across branches, which led to three recurring problems:

  • Short-dated medicine was discovered late and written off instead of being sold or transferred.
  • Monthly stock counts took each branch about two days and disrupted normal service.
  • Month-end closing took nine working days because branch figures had to be collected and reconciled by hand.

Our solution

ExtraMile implemented a customized Odoo Community Edition solution built around pharmacy workflows, with every product tracked by batch and expiry date. The main components were:

  • Expiry alerts at 90, 60 and 30 days, with suggested inter-branch transfers to sell short-dated stock in time.
  • A point-of-sale flow for prescriptions, insurance pricing and loyalty rewards.
  • Purchasing linked to supplier price lists and minimum stock levels per branch.
  • Management dashboards showing live stock, sales and margin by branch.

How we delivered it

  • Weeks 1–3: workflow analysis, product and batch data cleanup.
  • Weeks 4–9: configuration, custom expiry and transfer logic, pilot in two branches.
  • Weeks 10–14: staff training, rollout to the remaining six branches, and hypercare support.

Project team: 1 project manager, 2 implementers and 2 developers.

Results

Measured against the six months before go-live: expired-stock write-offs fell by about 40%, branch stock counts dropped from two days to about three hours, month-end closing went from nine working days to three, and stockouts on top-selling items fell by about 25%.

Measurable results

Results before and after Odoo
MetricBeforeAfter
Expired stock write-offs (first 6 months, inventory adjustment reports)Baseline (6 months before go-live)About 40% lower
Branch stock count time (average of 8 branches, from count logs)2 daysAbout 3 hours
Month-end closing (last 3 closings vs. prior 3)9 working days3 working days
Stockouts on top-selling items (weekly stock reports)BaselineAbout 25% lower

For the first time we can see every branch's stock and expiry dates in one place. We now move short-dated stock before it becomes a loss.

Operations Director, regional pharmacy group

Project snapshot

Client
A regional pharmacy group (anonymised), 8 branches
Industry
Pharmacy / Healthcare Retail
Country
Egypt
Odoo modules
Point of Sale, Inventory (batch and expiry tracking), Purchase, Accounting, CRM (loyalty), custom reporting
Timeline
14 weeks from kickoff to go-live across all branches