Retail · 2024

Inventory API and operator console

Brought stock accuracy across eleven branches from roughly 82% to above 98%.

Client
Retail client (anonymised)
Duration
11 weeks
Team
1 designer, 2 engineers
82% → 98%
Stock accuracy
11
Branches on one source of truth
Quarterly → daily
Discrepancy detection

Structural placeholder — replace with a real engagement before publishing.

01

The challenge

Each branch tracked stock separately. Head office numbers were a week old and wrong, so purchasing was guesswork and popular lines ran out while slow stock accumulated.

02

What discovery found

  • Branches kept private spreadsheets because they distrusted the central figure
  • Transfers between branches were recorded at one end only
  • Stock counts happened quarterly and were reconciled by adjustment
  • No alerting existed for lines about to run out
03

The approach

A single stock API as the source of truth, with every movement — sale, delivery, transfer, write-off — recorded as an event. The operator console shows live positions and flags discrepancies as they appear rather than at quarterly count.

Event-sourced stock ledger. Current position is a projection, so any historical state can be reconstructed and discrepancies traced to the movement that caused them.

Architecture
04

What we built

  • Central stock API with event history
  • Branch transfer with two-sided confirmation
  • Live stock console with discrepancy flags
  • Reorder levels and alerts
  • Cycle counting to replace quarterly stocktakes
  • Purchasing reports by velocity
05

Security

Branch-scoped permissions, signed API access per terminal, and full attribution on every stock movement.

06

What went wrong

Opening balances were unreliable. We ran the new ledger alongside the old system for one full cycle and reconciled the difference before cutting over.

Why this section exists

Every project has one. A case study without it is a sales brochure.

07

The result

82% → 98%
Stock accuracy
11
Branches on one source of truth
Quarterly → daily
Discrepancy detection

Got a problem shaped like this?

Send a short brief. We reply within two working days and say plainly if we are not the right fit.

Start a project