AI Line Cleaning, Miscellaneous Pours, and Mis-keying
Our new AI-powered system identifies when beer products are poured without corresponding sales or incorrectly assigned to draft lines in the restaurant. The system automatically processes the sales data and draft line readings to catch errors.
Line Cleaning
Line cleaning removes false readings caused by the high-pressure cleaning process that happens during bar open hours. These are readings that look like massive beer pours but are actually line cleaning.
Why it happens:
Our flow meters are designed to measure beer pressure. That extreme pressure creates massive false readings that our meters cannot distinguish from real beer pours on their own.
When line cleaning happens during open hours and the data isn't removed, it makes the location appear to have enormous losses. Bars actually see less reported loss when this is left uncorrected — which sounds good to them but means our data is wrong.
Line cleaning overlapping with a real sale:
Data is grouped into 30-minute intervals. If line cleaning happens at minute 5 within an interval, but a real customer sale also happens at minute 10 in that same interval, we cannot automatically remove the whole interval — because a real sale happened there.
The condition is: do not treat it as a line cleaning removal if there is real sales data within that same 30-minute interval.
Sales in the same 30-minute interval prevent the initial automatic line-cleaning classification. Any remaining poured-vs-sold imbalance may be evaluated as a separate exception.
Overpour compensation:
Before reporting an unexplained residual (line cleaning), the system offsets opposing poured-vs-sold differences for the same product within a rolling two-hour window.
This logic prevents the AI from incorrectly removing legitimate data that simply crossed time boundaries.
What AI Line Cleaning does automatically:
-
The system evaluates 30-minute poured and sold totals using configured location hours, volume thresholds, rolling comparisons, and multi-line or multi-interval patterns. The pipeline also includes pre-open handling.
-
Checks the 30-minute interval for any real sales. If present, this will be flagged for manual review rather than auto-removing
-
Checks whether the overpour is compensated in a neighboring interval
- The service returns candidate line-cleaning intervals for downstream handling
-
For edge cases requiring manual removal: support team accesses SmartBar and removes the flagged readings for that time window
Important note: No data is deleted. The AI only changes flags, so any action can be undone. Clients see less reported loss, which they like, but the goal is accurate data, not just pleasing numbers.
Miskeying
Miskeying happens when a bar is physically pouring one brand (e.g. Bud Light) but the POS system is ringing up a different brand (e.g. Miller Lite). The lines were never updated to match the POS. The mis-keying detector identifies likely line/product mapping anomalies and returns suggested corrected mappings. It does not automatically reassign the line or alter the underlying sales data. .
The system can also identify cross-product mis-keying evidence within the same bar and business day. It checks for matching sales from 30 minutes before through 120 minutes after the pour and requires at least 80% coverage.
Why it happens
Bars change their POS keys regularly because customers will notice if they're charged for the wrong beer. But they don't update our line assignments with the same urgency — there's no immediate customer complaint if a line label is wrong in our system.
The result: Bud Light shows 100 oz poured, 0 sold. Miller Lite shows 0 oz poured, 100 sold. Both look like massive discrepancies — but the beer and the money both exist. It's just a labeling mismatch.
What the AI Mis-keying Identification does:
Using timestamps and pour volume patterns, the AI matches pour data to the correct sales item even when the line assignment hasn't been updated. It does not move or alter the sales data, it simply stops calling this a loss.
When a mis-keyed pour is detected, it is excluded from the miscellaneous pours report. It won't show up as unaccounted loss because we know what happened to it.
Currently, the AI sends a report to the support team identifying the mis-key. The support team reviews and can notify the client to update their line assignment. Automatic line reassignment is being explored as a future phase.
Relationship to the other modules: Line cleaning and mis-keying are separate processing tasks. The cleaning agent can use mis-keying evidence when classifying candidates. Once line cleaning noise is removed from the data set, miskey detection works on cleaner inputs and produces fewer false positives. These two modules are prerequisites for miscellaneous pours to be meaningful.
Miscellaneous Pours
Miscellaneous pours (also called unaccounted pours) are what's left after line cleaning and mis-keying have been resolved. Miscellaneous pours are candidate unexplained poured-vs-sold residuals that require review. The AI gives clients a daily snapshot of when and where this happened.
What it identifies:
Real pour events where no matching sale exists. The classic pattern: a bartender pours a beer at 6pm, charges for it. Pours another at 7:30pm, no charge. Pours one more at 8pm, no charge. At the end of the day, the location shows a 65 oz loss on that product — but the current system requires someone to click through every product manually to find when those moments occurred.
The example report lists the 30-minute time period, product, quantity in ounces, and total ounces.
What the client receives:
An email report showing: the time of each unaccounted pour, the product affected, the shift it fell under, and the dollar value of that loss. This gives the bar manager a specific conversation to have — not a vague "you lost beer last night" but "at 7:30pm, this product was poured and not charged for."
.png?width=670&height=561&name=image%20(64).png)
.png?width=670&height=549&name=image%20(62).png)