Pour Detection
Barvis-X1 Vision
Barvis-X1 watches the pour zone and nothing else. It detects each pour, attributes it to a bottle and a station, and emits a count with a confidence band. It does not guess millilitres from pixels, because free-pour volume cannot honestly be recovered at that resolution. What you get is a second record of every drink that left the bottle.
The problem
You count the stock on Sunday. The numbers are off again. Not catastrophically — a few bottles across the month, the kind of gap you have learned to write off.
But you do not know when it happened. You do not know which station. You do not know whether it was a heavy hand on the rail, a round that went out unlogged, comps nobody wrote down, or something worse. Each of those has a completely different answer, and the stock count cannot tell them apart.
So you do nothing, and you write it off again.
The reason is simple: you have one record. The till. And a single record cannot be checked against anything.
Overview
One camera, mounted above the pour zone, pointed at nothing else.
Barvis-X1 identifies the pour event — a bottle tilted past a threshold, a spout over a tracked glass, a gripping hand, held long enough to be a pour and not a feint — and attributes it to a specific bottle and a specific station. It then estimates volume by fusing two independent cues and snapping the result to the nearest peg, with a confidence score attached.
Every count carries that confidence. Low-confidence events are flagged rather than quietly averaged in. Counts are reconciled over windows — a shift, a station, a bottle — never asserted drink by drink, because the measurement error on any single pour is large and the error across two hundred pours is not.
The model is trained on the pour, not on the person. There is no facial identification in the stack — not disabled, not behind a flag, not built. The event record has no field for who was standing at the rail, which means purpose limitation is enforced by the data structure rather than by a policy someone can change later.
Who it is for
Primary
Owner-operated bars and pubs with peg billing, two to eight pour stations, and enough volume that a few pegs a night compounds into something worth recovering.
Strong fit
Multi-outlet owners who cannot personally be in every room, and who currently rely on a manager’s word plus a monthly stock count.
Also fits
Hotel F&B, where the bar reports into a finance function that already expects reconciliation everywhere else and finds its absence at the bar strange.
Poor fit
Cocktail-led venues with heavy multi-ingredient builds and low spirit-by-peg volume, and rooms where no overhead camera position exists. We would rather say so at the survey than sell you an install.
What it does
Counts every pour
Independently of the POS, at the moment it happens.
Attributes it
To a station and a bottle — which SKU, which position on the bar.
Estimates volume
To the nearest peg, with a confidence value on every count.
Flags what it is unsure about
Rather than smoothing it into an average and hoping.
Hands the count on
To the Reconciliation Engine, where it becomes variance against your till.
How it works
01
Detection
A model running on the edge node locates bottles, glasses, spouts and hands in every frame. Small-object accuracy at this stage matters more than anything downstream.
02
Tracking
Persistent IDs follow each bottle and glass through occlusion, so a pour can be tied to a specific bottle even at a crowded rail.
03
Pour trigger
A cheap geometric and temporal test fires when bottle tilt crosses a threshold, the spout sits over a tracked glass, a gripping hand is confirmed, and the condition holds for enough frames. Reversed for pour end.
04
Volume estimate
Two independent cues — pour angle multiplied by duration, and the change in fill level in the glass — fused and snapped to the nearest peg, with a confidence score.
What you get
A second record
Independent of the till, of the stock count, and of anyone’s memory.
Variance you can locate
By station, by SKU, by shift — not a single monthly number you cannot act on.
A pattern, not an incident
Sustained negative variance on one station on one night of the week is a finding. One short pour is noise, and the product says so.
Evidence that your bar is clean
Worth as much as finding a problem, and far more common than owners expect.
A baseline
Once you know what a normal week looks like, an abnormal one becomes obvious without anyone watching for it.
Specifications
Camera
One per pour zone. Overhead or high-angle mount. 1080p minimum; 4MP–4K preferred for pixels-on-target.
Reporting granularity
One peg (30 ml half / 60 ml full). Confidence band on every count.
Accuracy floor
±30 ml on free-poured clear spirits — a physical limit, not a tuning target.
Reconciliation unit
Shift, station, bottle or SKU window. Never per-drink adjudication.
Attribution
Station and bottle. No person-level attribution exists in the schema.
Biometrics
None. No facial identification model is present in the stack.
Processing location
On the Barvis Edge Node, on your premises.
Data leaving the venue
{ timestamp, station, SKU, pegs, confidence }. No imagery.
Event types supported
Standard pour, half peg, cocktail (recipe-based multi-SKU decrement), owner-authorised complimentary pour.
What it does
not do
It does not measure millilitres.
It reports pegs, because that is the honest floor for vision on clear spirits in venue lighting.
It does not identify people.
No facial recognition, no re-identification of individuals across the room, no field for a person in the event record.
It does not send video anywhere.
Inference is local. Counts leave; frames do not.
It does not adjudicate a single drink.
One pour carries too much measurement variance to carry an accusation.
It does not act on its own.
Every figure is reviewed by the operator before it becomes anything.
It does not need new POS hardware.
It runs alongside whatever you already have.
Barvis counts every pour at the bar and reconciles it against the till
All products