The problem

A UK parcel sortation hub was losing throughput every night because parcels were being loaded onto the sortation belt at the wrong feeder positions.

A misrouted parcel doesn''t stop — it circles the loop until it finds its exit chute or a staff member catches it. Every extra lap eats belt capacity, delays the parcels behind it, and pushes the whole overnight run later. Management could see the symptom in overtime hours but couldn''t pin down where it was happening, when, or which team was responsible.

The Siemens barcode scanners along the belt were already capturing every parcel — scanner ID, timestamp, barcode — but the data was landing in a MySQL table that nobody was reading. Raw scans, no context, no reporting.

What we built

We turned that stream of raw scans into something the operations team could actually run the shift from.

A reporting layer over the scan data. Using the existing MySQL table, we built views and stored procedures that answered the questions that mattered: when did this parcel first hit the belt, how many circuits did it make before being sorted, and which feeder position did it originate from. Once we had that, misroute attribution was a join away — every circling parcel could be traced back to the exact scanner (and therefore the exact loading position) where it went on.

Live floor screens. We put dashboards on screens in the warehouse showing current throughput, active misroute count, and belt utilisation — updated in near real time so team leaders could react during the shift rather than after it.

Overnight reports. SSRS packaged the previous night''s numbers into Excel and PDF and emailed them to management before they walked in. Misroutes by feeder, by hour, by team lead. Nothing to log in to, nothing to remember to check.

The result

Once team leaders could see live where misroutes were coming from — and once management had the overnight numbers on their desk every morning — the conversation with individual loaders changed. It went from "we think there''s a problem somewhere" to "at 02:15 last night, feeder 7 misrouted eleven parcels in twenty minutes; here''s what we need to do differently tonight."

  • Misrouting cut by 30% within the first few weeks
  • Overtime reduced by 12 hours per week across five staff — the belt was clearing on schedule instead of running long
  • Higher belt capacity because parcels weren''t circling unnecessarily
  • Better resource planning — management could staff the hub against actual demand patterns instead of covering for hidden inefficiency

The data was already there. It just needed to be surfaced in a form that operations could act on.