AI / GenAI·6 min·10 October 2026

A pairing matrix that names no bottle at all

Ask a model what to drink with a dish and you get a bottle. Usually a decent bottle, and usually one that isn’t sold here, or sits in a price bracket you didn’t mean, or comes from a vintage that has been gone for three years.

The problem is not the answer. It is the question. “Which wine with this dish” asks for a name, when what you need is a direction.

So I built a page that gives only directions: wine with food. You tick what is on your plate and it tells you which way the wine should go, why, and what goes wrong if you do the opposite.

Structure over region

The eight properties in the matrix are all structural: fat, acid, sweet, spice, umami, salt, smoke, herbs. Not one of them is a region or a grape, and that is the whole trick.

Fat wants acidity, because acid resets your mouth for the next bite. Spice wants lower alcohol, because alcohol amplifies the burn. Salt and bubbles is the most reliable pairing there is. These rules hold in every country and every price bracket, and they will still hold when the wine world looks different in ten years.

A bottle name is the opposite: precise, and perishable.

Why it also says what not to do

Every property carries a second block with the counter-direction. For fat: don’t reach for a soft round wine with no acidity, it turns cloying. That block is not there for completeness.

It is there because advice without a counter-example explains nothing. Read only “fat wants acid” and you memorise a rule. Read what goes wrong as well and you understand why, which means you can apply it next time to something that isn’t on the list. That is the difference between a tool you keep using and one you try once.

There is a prompt at the bottom

The page ends with a prompt that already has your choices filled in. You paste it into whichever model you use anyway, along with your budget and your shop, and then you get a bottle.

That order is deliberate. The matrix handles the part that is the same everywhere, which a fifteen-kilobyte page manages fine. The model handles the part that depends on where you live and what you like, which a static page cannot know.

What broke

The first version put the full labels into that prompt. You got “something that is mainly fatty or creamy and spicy heat”, which reads like a machine reciting its own menu. It now uses one short term per property, chosen separately per language. A small thing that decides whether you paste the prompt or start rewriting it.

The second is a choice I deliberately did not make, and it was the tempting one: a scoring function that merges every ticked property into a single recommendation. That sounds cleverer and it is nonsense, because fat and spice ask for opposite things, and that conflict is exactly what you need to see. The page puts them side by side and lets you decide which wins.

Ethics note

Rules of thumb become dogma the moment they appear on a screen. Red with meat was a rule of thumb too, and it blocked good pairings for two generations. These eight are better grounded, and in ten years one of them will look silly.

More importantly: the fact that it is a matrix suggests the question is solved. It isn’t. A matrix doesn’t know your guests, doesn’t know your mother can’t handle tannin, and doesn’t know the bottle you had in mind carries sentimental weight. Those are not edge cases. They are half the reason anyone opens anything.

And the page keeps nothing. No storage, no network traffic, so your plate stays yours.

Try it

Tick two properties that contradict each other, fat and spice for instance, and read the two answers side by side. The choice you make then says more about your taste than any questionnaire.