How to Price a Wine List: Rules, Markup, Rounding and VAT
A practical playbook for pricing a wine list: markup ranges, rounding logic, VAT basis, and glass pricing. Trade gut-feel for repeatable rules.
Most wine lists are priced by feel, and it shows
Here's how a lot of wine lists get priced. A case arrives. Someone glances at the invoice, multiplies by a number that feels about right, nudges it to land on a tidy figure, and moves on. Repeat a few hundred times, over a few years, with a few different people, and you end up with a list nobody can fully explain. Some wines are marked up aggressively, others barely at all. Costs have moved; prices haven't. When an owner asks "why is this 68 and that 71?", the honest answer is "I don't remember."
Gut-feel pricing isn't wrong because the instincts are bad. It's wrong because it isn't repeatable, explainable, or consistent. The same wine, priced by the same person on two different days, lands at two different numbers. There's no rule to point to, so there's no way to review it, defend it, or roll it out across multiple sites.
The alternative is rules-based pricing: define the logic once, apply it everywhere, and let a pricing engine do the arithmetic. This playbook walks through the four decisions that make up a pricing rule, markup, rounding, VAT, and the bottle-versus-glass split, and how they fit together into a system you can actually defend.
The pricing rule: four decisions, one repeatable output
A price isn't a single guess. It's the output of a short chain of decisions. Get the chain right once, and every wine on your list flows through it the same way.
The chain looks like this:
cost → apply markup → handle VAT → round → shelf price
Each step is a decision you make deliberately, at the rule level, rather than re-improvising per bottle. Let's take them in turn.
Step 1: Markup, and why a range beats a single number
Markup is the multiplier you apply to cost. A 20 bottle at a ×3.5 markup yields 70 before rounding and VAT.
The mistake is treating markup as one fixed number for the whole list. In practice, markup almost always varies by band:
- Entry-level wines often carry a higher multiple. A 9 bottle at ×4 is 36, a price the market accepts, and you need the cash margin.
- Premium and fine wines usually carry a lower multiple but a larger cash margin. Marking a 200 bottle up ×4 to 800 prices it off the list; a ×2.2 to 440 sells and still earns far more in absolute terms than the entry-level wine ever will.
So the right tool isn't a single markup, it's a set of markup ranges tied to cost bands or categories. This is exactly what a real pricing engine supports: lot-based pricing policies with markup ranges, rather than one blunt multiplier. You define the bands once; every wine lands in the right one automatically as it's costed.
| Cost band | Typical markup | 20 cost → | 200 cost → |
|---|---|---|---|
| Entry (< 15) | ×3.5–4.0 | 70–80 | , |
| Mid (15–50) | ×2.8–3.5 | 56–70 | , |
| Premium (> 50) | ×2.0–2.6 | , | 400–520 |
(Illustrative bands, yours will reflect your market and concept. The point is the structure, not these exact numbers.)
Step 2: VAT, decide your basis and be consistent
VAT (or sales tax, depending on your market) trips up more wine pricing than almost anything else, because there are two valid ways to handle it and mixing them quietly corrupts your margins.
The two bases:
- VAT-inclusive pricing: the shelf price already contains the tax. The guest pays exactly what's on the list; you remit the tax portion. Common in markets where displayed prices must include tax.
- VAT-exclusive pricing: the listed price is pre-tax, and tax is added at the point of sale.
Neither is "correct" universally, it depends on your jurisdiction and how you display prices. What is always correct: pick one basis and apply it consistently across the whole list. The failure mode is computing some prices inclusive and others exclusive, so your effective margins vary wine-to-wine for a reason that has nothing to do with strategy.
This is precisely why VAT basis belongs in the pricing rule, not in someone's head. A pricing engine that supports an explicit VAT basis choice applies the same treatment to every wine, so the tax handling is a setting you configure once, not a calculation you risk getting wrong three hundred times. (If "VAT basis" or "markup" are unfamiliar terms, our glossary defines the pricing vocabulary.)
Step 3: Rounding, the cheap, invisible margin lever
Rounding feels like a cosmetic afterthought. It isn't. It's a small, systematic margin decision applied across your entire list, and the cumulative effect is real.
Raw calculations produce ugly numbers: 67.40, 71.85, 14.20. You don't put those on a list. The question is how you tidy them, and the answer should be a rule, not a vibe:
- Round to the nearest whole unit (67, 72) for a clean, conventional look.
- Round up to fixed increments, the next .50 or the next whole 5, which nudges margin upward consistently and gives the list a deliberate rhythm.
- Round to charm points (.95, .50) if that suits your concept.
The discipline matters more than the specific choice. If every wine rounds up to the next .50, you've added a sliver of margin to the whole list and made the prices look intentional rather than calculated. If rounding is improvised, you get a list where some prices were rounded up, some down, some not at all, leaking margin and looking sloppy. A pricing engine applies venue-grade rounding logic as part of the rule, so the whole list rounds the same way, every time.
Step 4: Bottle vs by-the-glass, same engine, two contexts
By-the-glass pricing is not a separate pricing universe. It's the same rule chain applied to a different unit of sale.
The glass calculation:
cost per glass = bottle cost ÷ glasses per bottle
glass price = cost per glass → markup → VAT → round
The crucial discipline is anchoring the glass price to real bottle economics and the configured glass volume, not pricing glasses by feel as a separate exercise. A 24 bottle yielding five 150ml glasses has a 4.80 cost per glass; run that through your markup and rounding and you get a defensible glass price that moves automatically when the bottle cost or pour size changes.
Because both bottle and glass flow through one engine, they stay consistent with each other as costs move, no separate spreadsheet drifting out of sync. By-the-glass is also where margin leaks hardest if you get this wrong, which is why it has its own deep-dive: by-the-glass margin: how to stop the leak.
Putting it together: a worked example
Let's price one wine, end to end, with a rule:
- Cost: 18.00
- Band: mid-tier → markup ×3.2
- After markup: 57.60
- VAT basis: inclusive (already contains tax for this market), no further add
- Rounding rule: up to the next whole 5 → 60.00 shelf price
And the same wine by the glass (150ml pours, 5 per bottle):
- Cost per glass: 18.00 ÷ 5 = 3.60
- Markup ×3.5 (glasses carry a slightly higher multiple): 12.60
- Rounding rule: up to next .50 → 13.00 per glass
Now the important part: change one input and everything recomputes from the same rule. If your next allocation of that wine costs 22 instead of 18, you don't re-guess, the engine reruns the chain and the bottle and glass prices update together, consistently. That's the entire value of rules over feel: the logic is fixed, so the prices stay honest as the world changes.
Why rules win over gut-feel
Step back and the case for rules-based pricing is simple:
- Explainable. Every price traces to cost → markup band → VAT basis → rounding rule. When someone asks "why this number?", there's an answer.
- Repeatable. The same wine prices the same way every time, regardless of who's doing it or when.
- Consistent. The whole list, and, if you run several venues, every venue, uses the same logic. (That consistency across sites is its own topic: multi-venue wine pricing.)
- Resilient to cost changes. Costs move constantly; with rules, prices move with them automatically instead of going stale.
Gut-feel can't offer any of those. It produces a price; it can't produce a system. And a wine program priced by feel is a program where margin erodes quietly every time a cost changes and nobody re-prices.
The takeaway
Pricing a wine list well isn't about having good instincts, it's about turning those instincts into rules. Decide your markup ranges by band, pick a VAT basis and apply it consistently, set rounding as a deliberate rule rather than a vibe, and price by-the-glass through the same engine anchored to bottle economics. Do that, and pricing becomes explainable, repeatable, and consistent, and it stays honest as costs change, because the logic is fixed even when the numbers aren't. Define the chain once; let the engine run it everywhere.
Run your wine program with precision, not guesswork
Vinius unifies inventory, pricing, wine cards and reordering in one system, for hospitality teams and serious collectors. Access is by invitation, request yours for founding-member onboarding.