The problem
A pharmacy leaks in three places: stock nearing expiry that nobody noticed, an item short in one branch and sitting in another, and insurance claims rejected because the benefit rule was applied wrong.
What we built
Batches are bound to their expiry with alerts ahead of it, shortage requests convert into inter-branch transfers, and insurance benefit rules are computed at the point of sale rather than after — so the claim is right the first time.
The result
388,000 lines, 60 modules and 168 screens, with branch performance comparison and ready shortage reporting.