Skip to main content
Snap Tech
Management systemHealthcare & pharmacy2025

A pharmacy chain that stopped losing stock to expiry

Internal system · Closed deployment

Primary Measured Result

৳11 lakh

annual expiry loss recovered

Timeline: 11 weeksVerified Outcome
Rx Care Pharmacy — A pharmacy chain that stopped losing stock to expiry
A pharmacy chain that stopped losing stock to expiry — Rx Care Pharmacy
Client
Rx Care Pharmacy
Industry
Healthcare & pharmacy
Timeline
11 weeks
Year
2025
Core Stack
LaravelPostgreSQLReact

The problem

What was broken before we arrived

Every successful build starts with an honest diagnosis of where the manual process failed.
Issue 01

Four branches, three ledgers, and one shared WhatsApp group. Stock was counted on paper at each location, purchase decisions were made from memory, and nobody could answer how much inventory the business held on any given day without a physical count.

Issue 02

The expensive problem was expiry. Medicines were reaching their expiry date on the shelf because no system flagged them in time, and the owner estimated the annual write-off in lakhs of taka — real money, disappearing quietly.

Issue 03

Two previous attempts to fix this had failed. Off-the-shelf software had been bought and abandoned twice, both times because it assumed a single-branch business and required the counter staff to change how they billed.

Strategy & Discovery

How we solved it

Observation in the field before writing code. Designing around how people actually work rather than imposing assumptions.

We spent the first week behind the counter at two branches during peak hours, watching how billing, stock receiving, and end-of-day reconciliation actually happened — including the workarounds staff had invented, which is where most of the real requirements were hiding.

The critical insight was that the counter workflow could not change. Staff bill fast, by keyboard, often with a queue waiting. Any system requiring more clicks per sale would be abandoned like the previous two, so we designed billing to be faster than the paper process rather than merely digital.

Batch and expiry tracking was modelled from the start rather than added as a field, because expiry is not an attribute of a medicine — it is an attribute of a specific batch of it, and getting that data model wrong makes accurate expiry reporting impossible later.

The Build

The system in detail

Custom interfaces built for high daily volume, speed under load, and clear role separation.
Billing built for a queue
Feature 01

Billing built for a queue

Keyboard-first billing with barcode support, medicine search that matches on brand or generic name, and batch selection that defaults to the oldest stock so first-expiry items sell first automatically. A sale takes fewer keystrokes than the paper book it replaced.

Rx Care Pharmacy — Admin
Feature 02Admin Screen

Expiry as a forecast, not a report

The dashboard shows what expires in 30, 60, and 90 days, valued in taka, so the owner can discount or return stock while it still has worth. Alerts escalate as dates approach instead of appearing once and being missed.

Rx Care Pharmacy — Admin
Feature 03Admin Screen

Stock that agrees across four branches

One stock figure per batch per branch, with transfers between locations recorded as movements rather than manual adjustments. A branch running short can see which other branch holds the item before ordering more.

Rx Care Pharmacy — Admin
Feature 04Admin Screen

Roles that match the actual hierarchy

Counter staff bill and check stock. Branch managers receive goods, adjust stock with a mandatory reason, and see their own branch reporting. The owner sees everything across all four, including an audit trail of every adjustment and who made it.

The Outcome

Measured results in production

Numbers verified after go-live. The only test that matters is whether the business runs better.
Metric 01
৳11L
Annual expiry loss recovered
Metric 02
4 hrs
Saved per branch per week
Metric 03
4
Branches on one system
Metric 04
0
Paper stock ledgers remaining

The verdict after rollout

Within three months the business had a single accurate stock figure for the first time, and expiry write-offs dropped sharply because slow-moving batches were being discounted while they still had value rather than discovered after they expired. End-of-day reconciliation went from roughly forty minutes of paperwork per branch to a few minutes on screen. The system is still in daily use across all four branches.

We had bought software twice before and both times the staff went back to the notebook within a month. This time they preferred it by the second week, because billing is genuinely faster. That is the difference.
Client name · Owner, Rx Care Pharmacy

Screens & Views

Interface gallery

Responsive layouts across desktop and mobile form factors.
Owner dashboard — all branches

Owner dashboard — all branches

Purchase order and goods received

Purchase order and goods received

Stock check on a phone

Architecture

Why we chose this stack

Technology chosen for project fit, transactional stability, and long-term maintainability.

Laravel

Mature, well-documented, and easy for the client to find another developer for later — which matters for software a business depends on daily.

PostgreSQL

Strong transactional guarantees for stock movements, where a half-completed update would corrupt inventory counts.

React

The billing screen needed to feel instant under rapid keyboard input, which a page-reload architecture cannot deliver.

Redis

Caches medicine search results so lookups stay fast as the catalogue grows past ten thousand items.

Ready to build a system like Rx Care Pharmacy's?

Tell us what your business actually needs. We will come back with an honest view of scope, timeline, and cost.

No obligation · We reply within one business day