How Sapreno rates
A recommendation you can check.
Every number rests on a calculation with fixed rules, and the reason is shown with it. Here is what goes in and what never does.
How the rating is made
Fixed rules, same result
The Sapreno Match (scale 0 to 100) is calculated from the profile of the dish and the profile of the drink. The same input always gives the same number.
No AI as the sole judge
Photo and text recognition may read dishes and menus and put reasons into words. They never calculate the score alone.
Every change is checked
Anyone who touches the calculation runs it against fixed comparison cases (golden regression tests). A case that suddenly turns out differently is noticed.
What never changes the order
Merchants and commissions
Whether a merchant offers a product or earns from it changes neither the ranking nor the number.
The cheapest merchant
For a wine we show only the cheapest offer. That is presentation, not judgement: the wine is ranked beforehand.
Tradition
Classic pairings appear as a note (“Classic with this: …”). They do not change the number.
How reliable the data is
Data basis in three levels
Every recommendation names its data basis: solid, good or estimate. It shows how well the underlying details are documented.
Estimates stay estimates
Values estimated by a model are marked as estimates. They never count as verified, even when they appear in the calculation.
You confirm what is uncertain
If a photo or a menu cannot be read clearly, we ask before we recommend anything.
The method in detail
For everyone who wants to check the maths: how the Sapreno Match is made, which components enter with which weight, where its limits lie and how we safeguard changes.
What the Sapreno Match is
The Sapreno Match is a number from 0 to 100 for a pair of dish and drink. It is built from the dish's taste profile (intensity, fat, acidity, sweetness, heat, umami, protein, smoke, salt, sauce type, cooking method, aromas) and the wine's profile (body, acidity, tannin, residual sugar, alcohol, oak, aromatic intensity, aromas).
The same two profiles always give the same number. There is no randomness, no mood of the day and no estimate by a language model. Photo and text recognition may read dishes and menus; they never calculate the number.
The eight components and their weights
Eight components enter with fixed weights: intensity 20 %, acidity against fat 15 %, tannin against protein 10 %, sweetness against heat 10 %, alcohol against heat 10 %, sauce and style 10 %, aromas 15 % and data quality 10 %. The weights add up to 100 %.
Each component rates one relationship between dish and wine along a fixed curve. Example: the fattier the dish, the more acidity the wine needs to keep the palate fresh; the more protein, the better the dish carries tannin. The aroma component counts how many facets of the dish find a partner in the wine.
On screen we group the components into three: aromas (15 %), structure (75 %) and data quality (10 %). The groups are the same weights, just added differently.
What “raises” and “lowers” mean
On the pairing pages and in the app we name the components that raise the match (component value from 65) and those that lower it (component value up to 50). This is a reading aid over the stored component values of a recommendation, not a new calculation, and it never changes the number.
The three verdicts
From 72 points a pairing counts as good, from 55 as acceptable, below that as unsuitable. The thresholds are fixed and identical for every wine. A pairing page only highlights wines with the verdict “good” as a recommendation per wine type.
What never changes the number
Merchants, prices and commissions enter no component. For a wine we show only the cheapest offer; that is presentation, not judgement, the wine is ranked beforehand.
Popularity, other users' ratings or the number of views play no role. Classic pairings from tradition appear as a note, not as a factor.
Data basis in three levels
Every recommendation names its data basis: solid (profile confidence at least 0.8), good (at least 0.6) or estimate (below). The level shows how well the underlying profiles are documented; it changes neither the number nor the order.
Wines created from a label scan without expert review carry model values with a confidence of 0.5 and therefore appear as an estimate. Model values never count as verified, even when an expert confirms a proposal; verified is only what an expert entered themselves.
Golden cases and regression tests
Every change to the calculation runs against 30 fixed comparison pairings of the wine engine (as of 10 September 2026), plus separate golden suites for beverages, spirits and cigars. A case that suddenly turns out differently stops the change.
The engine carries version 0.1.0. Every stored recommendation remembers the version it was calculated with, so yesterday's result stays explainable tomorrow.
Expert review
Experts can confirm or contest individual pairings as golden cases. Only a pairing confirmed by a human appears on a pairing page as “Golden case: confirmed by an expert”; proposals from a language model are never shown as verified.
An expert judgement can enter the data-quality component as a signal. It does not change the sensory components, and the curves themselves are recalibrated only from 300 collected ratings onwards, with a report and golden regression.
Tradition as a note
For 56 dishes Sapreno knows the classic pairing, such as Chasselas with cheese fondue or Spätburgunder with Sauerbraten. The list is backed by sources and was approved on 12 September 2026. The line “Classic pairing” is information, not a factor: where the ranking departs from tradition, the page names the sensory reason.
Limits
Sapreno recommends only wines from its own catalogue; a wine that is not recorded cannot be recommended. Dish profiles come from reviewed ingredient profiles or from a photo recognition that you confirm before any recommendation.
Taste remains personal. The number describes the sensory fit, not your preference; a personal re-sorting of the same results is possible but never changes the number.
As of 6 November 2026, engine version 0.1.0. This page changes when the calculation changes.
