Ordering · Reports

Popular is not a pairing

If a drink is in a third of all baskets it will be the top "goes well with" for every dish on your menu. That is not a pairing — it is a restatement of the bestseller list. What to measure instead.


Ask any till what goes well with the beef tacos and the easy answer is to count how often the two appear on the same order. It is easy and it is almost useless.

If Coke is in a third of every basket you sell, it will be the top partner of every dish on the menu — the tacos, the churros, the coffee. You have not discovered a pairing. You have rediscovered that Coke sells well, which the bestseller list already told you.

The question worth asking

The useful question is not "how often are these bought together" but "when somebody buys this, does that become more likely than usual".

The arithmetic has a name — lift — and it is a division. Take the share of baskets containing the drink given the dish is in the basket, and divide it by the drink's share of all baskets. A result of 1.0 means no relationship: the drink is simply popular. Two means twice as likely as usual once the dish is in the basket, which is a real pairing. Below one they actually repel, which is worth knowing and worth never suggesting.

It runs once a night against the last sixty days of paid orders. It costs nothing per guest, because the answer is worked out in advance and arrives with the menu.

Two guards that matter more than the maths

A pairing needs at least five baskets behind it before it is used. Two baskets containing the same two items is a coincidence, and a rule built on a coincidence goes in front of every guest for a week. Five is low enough that a new kitchen starts getting pairings within days of trading, and high enough that one large party cannot mint one.

And a pairing between two things you cannot currently sell never reaches a guest. Both ends are checked against tonight's menu before anything is sent — because being offered something and then told you cannot have it is worse than not being offered it.

That guard earned its keep on the first live run. The venue's only pairing that cleared the floor was between two drinks that had been archived off the menu months earlier but still appear in old orders. It was correct arithmetic about the past and useless advice about tonight, and it was dropped before it left the server.

Why this is not a language model

Arithmetic cannot invent a pairing that never happened. On a screen whose job is to suggest what somebody should buy, an invented pairing is the whole risk. A model has real work to do around this — noticing that a second main is not an upsell, that a beer at nine in the morning is wrong, covering a kitchen with no history at all — but the counting is not the part to hand over.


Try it on tonight’s service.

Nothing to install, no card. Not better by the weekend? Close the tab.