The problem
Our client ran 14 retail locations, all tracking inventory through a mix of spreadsheets and a decade-old point-of-sale system that didn't talk to anything else. Every week, store managers manually counted stock and emailed numbers to head office, where someone re-typed them into a master spreadsheet.
Three things kept going wrong:
- Human error compounded fast. A single mistyped digit in one store's count threw off reorder calculations for the whole chain.
- Stockouts and overstock happened in the same week, at different locations, because nobody had a real-time view across stores.
- Reconciliation took two full days every month, done manually by one employee whose entire week revolved around it.
By the time head office spotted a discrepancy, it was usually two weeks old and impossible to trace back to its source.
What we built
Rather than replace their existing POS system (expensive, risky, and unnecessary), we built a lightweight companion app that sat on top of it.
Core features
- Barcode-scan stock counts: staff scan instead of type, cutting transcription errors to near zero
- Real-time sync across all 14 locations: head office sees live counts, not week-old snapshots
- Automatic discrepancy flagging: if a count doesn't match expected shrinkage/sales patterns, it's flagged instantly instead of discovered a month later
- One-tap reorder suggestions: based on real velocity per store, not a chain-wide average
The tech, briefly
| Layer | Choice | Why |
|---|---|---|
| Mobile app | React Native | One codebase for iOS and Android tablets already in stores |
| Backend | Node.js + PostgreSQL | Needed strong relational integrity across 14 concurrent locations |
| Sync | WebSockets | Head office dashboard updates live, no manual refresh |
| Barcode scanning | Device camera, no extra hardware | Stores didn't need to buy scanners |
"The first week, we caught a discrepancy at store #9 within an hour instead of finding out three weeks later during month-end reconciliation. That alone paid for the project."
Rollout
We didn't flip a switch across all 14 stores at once - that's how migrations turn into disasters.
- Week 1–2: built and tested with one pilot store
- Week 3: rolled out to three more stores, gathered feedback, fixed two workflow issues staff actually found (not ones we'd guessed at)
- Week 4–6: rolled out to the remaining ten stores, with a simple in-app tutorial replacing what would have otherwise needed in-person training
The results
| Metric | Before | After |
|---|---|---|
| Inventory count errors | ~18% of counts had discrepancies | 94% reduction - down to ~1% |
| Monthly reconciliation time | 2 full days | Under 2 hours |
| Stockout incidents per month | 11 average | 3 average |
| Time to detect a discrepancy | Up to 3 weeks | Under 24 hours |
What made the difference
Two decisions mattered more than the technology itself:
- We didn't try to replace the existing POS system. Integrating alongside it meant zero disruption to checkout operations - the riskiest, highest-stakes part of any retail system.
- We rolled out gradually and listened. The three issues we fixed after the pilot store weren't bugs - they were real workflow mismatches we never would have caught in a spec document. Store staff found them in day one.
If your team is still reconciling inventory by hand or by spreadsheet, the gap between "good enough for now" and "actually accurate" is usually smaller than it looks - most of the cost isn't the software, it's the manual re-entry and delay in catching mistakes.
Tech Valley Corp
Nikunj Kumar, CTO & COO





