The inventory platform does the counting — that's its job, and it's good at it. Our job is what happens next: its variance numbers land in the quality layer as telemetry, alongside every agent metric, with the same freshness checks and the same audit trail. This is a bridge, not a build. Read by Tommo, Beverage
Computer-vision bottle counts and stock depletion by SKU. Nightly count deltas plus a weekly full audit, pulled over the partner API every 6 hours. 214 SKUs tracked.
We never touch the counting logic. Backbar or Bar-i drop onto the same connector shape.
Rung sales by PLU in 15-minute batches. Variance is only meaningful as sold versus depleted — the till provides the "sold" half, the partner provides the "depleted" half.
Flow-meter yield on Tommo's six rotating taps. The counting platforms sit this one out — flow-metered draught is outside their model — so beer variance arrives from our own keg tool instead.
Why partner, not build: WISK, Backbar and Bar-i already own bottle counting credibly. Competing there would be building a worse scale. The differentiated piece is underneath — variance as first-class telemetry in the quality layer, with freshness guards and an audit trail the counting apps don't offer.
Draught note: the beer line is the one category the partner feed doesn't cover — its variance comes from the UC23 keg tool's flow meters. From the quality layer's side it's just another telemetry source; the pane below treats them identically.
Free-pour drift on the well. The gap scales with volume and clusters on Friday and Saturday late shifts — the signature of heavy hands at speed, not a one-off.
Test: jigger audit on the weekend late shift; blind pour-test three 30 ml pours per bartender.
The gin sits in three cocktails. The new pandan gimlet special was rung under a generic "cocktail special" PLU for nine days — depletion with no matching SKU sale. Explains roughly 0.6 of the 1.8 bottles.
Test: re-map the PLU and re-run the period.
No breakage logged this period, and unlogged spillage rarely repeats in the same weekly pattern. Kept on the list because staff under-report spills everywhere, but the shape of the data doesn't point here.
Test: spot-check the spill log against the variance calendar.
| Time | Source | Event | Detail | Status |
|---|---|---|---|---|
| 17:42 | WISK bridge | variance.sku_over_threshold | Straits dry gin +6.0% vs 2.0% threshold · drill-down opened | Flagged |
| 17:42 | WISK bridge | feed.sync_ok | 214 SKUs reconciled · 6 h cadence held | OK |
| 16:05 | uc01 phone agent | call.quality_scored | Reservation call scored 9.1/10 · no policy breaches | OK |
| 15:30 | uc23 keg telemetry | keg.yield_low | Tap 4 pale ale at 87% yield vs 92% theoretical | Watch |
| 14:12 | uc13 pairing agent | rec.accepted | Pairing recommendation accepted at table 12 | OK |
| 13:58 | WISK bridge | variance.category_over | Draught +1.8 pt vs target for the rolling 30 days | Watch |
The point of the pane: a pour-cost breach, a soft keg yield and a low-scoring phone call are the same kind of thing — a signal about the operation that deserves a threshold, a status and a paper trail. The partner keeps counting; the quality layer keeps watch.
The headline pour cost is struck through and date-stamped, category bars grey out, and every figure that depends on the partner feed carries the stale marker. The POS and UC23 keg feeds keep flowing — only the partner-fed numbers are demoted. Nothing pretends.
Root cause in this scenario: the partner API token expired. Two-minute fix — once someone knows. Knowing is the product.
Why this is the differentiator: the counting apps show you their last number; they don't tell you when their own pipeline into your reporting has died. Data freshness is a quality metric like any other, so the bridge treats a silent feed exactly the way UC12 treats a mis-scoring agent — flag, escalate once, refuse to act on bad ground.
This is deliberately a partner integration, not a build. WISK, Backbar and Bar-i own inventory counting credibly — computer vision, scales, specialist service — and competing with them would mean building a worse bottle counter. The same call we made on rostering: integrate the incumbent, differentiate underneath. The bridge is a read-only connector that pulls depletion and variance by SKU from the partner API, joins it to POS sales, normalises the result into telemetry events, and hands them to the UC12 quality layer with a freshness SLA attached.