Before the board, a chute jam was found when somebody walked the line. After it, every jam surfaced within a second of the controller latching it. Over the four weeks that followed, first pass yield climbed every week, and the site created a standing role around the repeat-offender table.
Before the board, a chute jam at this site was found when somebody walked the line, or happened to catch it on a supervisory screen covering hundreds of chutes. A jam that sat unseen did not just stop a lane. Packages kept arriving, got recirculated or defected, and the yield number absorbed it.
This is the longest-running deployment in the set and the only one with a site KPI attached to it. It is also the one where the honest caveats matter most, so they are stated with the numbers rather than after them.
What was built
Three parts, none of them clever:
- A read-only collector polls each chute controller's jam word and per-belt jam latches once a second over batched connections. Ten controllers, continuously, as a watchdogged service. At peak the wider monitoring path batches roughly two thousand tags per cycle.
- A historian stores jam intervals with start, end, time to resolve, attribution to belt or downstream or photo eye, and shift labels. It stores blocked-lane periods the same way.
- A live board on the shift display shows active jams, the clear-time trend, shift performance, repeat offenders, and the health of the collector itself.
A jam now lands on the board within a second of the controller latching it.
The honesty rules that shaped the build
A monitoring board that goes quiet when it breaks is worse than no board, because it converts an outage into a false all-clear. Two rules came out of that:
- A dead feed can never render as "no jams." Configured, connected, and collector-stale are distinct operator-facing states with their own banners. The absence of jams and the absence of data do not look alike.
- Ends that happened while the collector was down are flagged, never inferred. If the service restarts across a jam interval, that interval carries an uncertain-end marker rather than a plausible timestamp.
That second rule has a number attached to it now, further down, and it is the one we would point at first.
What changed on the floor
The board went live mid-week 26. Adoption took a few days from there.
| Week | First pass yield | Note |
|---|---|---|
| 22 to 25 | 25 to 27% | Flat, pre-board baseline |
| 25 | 26.23% | Last full week before go-live |
| 27 | 28.81% | First full week of use |
| 28 | 30.34% | |
| 29 | 32.99% |
First pass yield rose 6.76 points from the last pre-board week to week 29, and it climbed every week in between rather than stepping once. Over the same period the material handling defect rate fell 3% and the operations defect rate fell 4%, both as a share of total sort volume.
The change we did not anticipate is the organizational one. The site created a dedicated jam champion role working the repeat-offender table to target the highest-occurring locations. The Pareto stopped being a report somebody generated and became somebody's standing assignment. That is a better signal that the data is being acted on than any usage metric we could have collected.
Who actually uses it: the flow team, ten to twenty people per shift off the shared display, maintenance and operations associates and technicians on the same view, and operations managers on the blocked-lane scoreboard for shift-versus-shift response.
On attribution, plainly
This is correlational. One site, no control group, no holdout.
What supports reading it as causal is the mechanism rather than the timing. Before the board, a jam was found when someone walked past it. After the board, every jam surfaced within a second, and the defect rates fell in the same window. That is a specific, physical account of how the number would have moved, which is more than a coincidence of dates. It is still not a controlled experiment, and we do not present it as one.
The yield and defect figures come from the site's own weekly performance rollup, which is retained with the site records and quoted here rather than reproduced.
The production record
Historian logging was switched on two weeks after the board was already driving floor response, which means these figures measure the sustained state after the change rather than the improvement itself. All of them are reproducible from the export endpoints.
| Measure | Value |
|---|---|
| Jam and fault intervals in the first two weeks | 3,522 (3,252 jams, 270 faults) |
| Blocked-lane periods recorded | 187,448 |
| Blocked lanes cleared inside the 15-minute target | 94.7%, median 29 s |
| Median jam clear time, day versus night shift | 460 s versus 402 s |
| Top repeat offender | One chute at 394 events, roughly 60% more than the next worst lane |
| Intervals flagged with an uncertain end | 5 of 3,522, or 0.14% |
Two of those deserve to be pulled out.
The blocked-lane response rate had no baseline. Nothing at this site measured lane-block duration before this. The honest claim is not that response improved by some amount, it is that it became measurable at all, and that 94.7% inside the target is now a number somebody owns.
The 0.14% uncertain-end rate is the data-honesty rule holding under production conditions. Across every collector restart in two weeks, five interval ends out of 3,522 could not be established, and all five are marked as such. None were filled in. That rate is the reason the rest of the table is worth quoting.
What it did not close
The yield and defect attribution stays correlational, and a second site would do more to settle it than any further analysis of this one.
The historian's clear-time series starts after the change, so it describes the state that followed rather than the transition. The evidence for the movement itself is the site's rollup, not the historian.
The collector's API has no authentication and sits on a plant server. That is the known item to settle before this runs anywhere else, and it is tracked as such rather than discovered later.
The largest remaining gap is a second operator. A tool with one operator and one site is a good result; a consumer other than the person who built it is what turns it into something the lab can claim generalizes.