How a Wine Distributor Replaced a 90-Tab Excel Price Book
Ninety hand-typed tariff tabs, seven confirmed pricing errors, years of silent drift. The fix wasn't typing more carefully — it was making sure nobody ever types a price twice.
Jul 9, 2026
A Languedoc wine distributor sells around 20 estates and 195 cuvées through some 60 field agents. Until recently, all of its pricing lived in a single 20 MB Excel workbook: one master price grid — the grille tarifaire — plus roughly 90 per-agent tabs. Each agent gets their own view of the catalogue: their delivery zone, their pricing regime, only the estates they're authorized to sell.
On paper, one workbook. In practice, ninety price lists that each had to be right — and weren't.
What's wrong with a 90-tab price book?
The per-agent tabs were typed by hand, not derived from the master. Every tab was a copy that someone, at some point, keyed in — and copies drift. When we audited the workbook, we found 7 confirmed price-logic errors that had been shipped to agents: prices that went up at higher volume tiers, and delivered (franco) prices sitting below the ex-warehouse price they're supposed to exceed.
The structure had eroded too. The vintage column was doing three jobs at once: actual vintages, availability notes ("rupture", "sur demande"), and per-bottle surcharges like "+1,57 €/bt" — all free text, all in one cell. That's not a formatting quirk; it's data no system can safely act on.
Why not just be more careful?
Because ninety hand-maintained copies of the truth always drift — carefulness doesn't scale. Every reprice meant touching up to 90 tabs. Every new cuvée, every estate an agent picked up or dropped, meant editing the right subset of tabs and getting every cell right. Nobody notices a stale price in tab 73 until an agent quotes it to a client.
This is the same conclusion we keep reaching with wine catalogue data: when a by-hand step produces errors at scale, the fix isn't discipline. It's removing the by-hand step.
What does "generated, not maintained" look like?
Prices are edited once, in one master grid — every agent tariff is generated from it on demand and never stored. Prices now live in a database. An agent's tariff (web view, Excel, or PDF, with its table of contents built automatically) is rendered by filtering the master: their zone, their regime — delivered or ex-warehouse — and the estates they're authorized for. Because tariffs are generated on read rather than saved anywhere, they cannot drift.
Change a price, add a cuvée, drop an estate — every affected agent tariff reflects it immediately. Repricing season went from a week of tab surgery to editing one grid.
How do you keep bad prices out?
Validation at the point of entry, and a full audit trail. The exact error classes the audit found are now rejected on save: a volume discount that raises the per-bottle price, a delivered price below the ex-warehouse price. And every edit — who changed which price from what to what, and when — is logged. The sales admin team gets confidence that nothing changes silently; management gets an answer to "why did this price change?" in one lookup.
Is this only a wine problem?
No — it's any per-customer document maintained by hand. Zone-based price lists, negotiated wholesale grids, per-client catalogues, reseller rate cards: wherever one master truth is manually copied into many customer-facing variants, the variants drift. The domain vocabulary changes; the failure mode is identical.
It's also the same philosophy as our wine ERP data cleanup work, one step earlier in the pipeline: don't keep cleaning up after a process that produces errors — change what the process writes down. And as with legacy systems generally, the answer wasn't replacing what worked: the distributor kept their catalogue, their agents, and their Excel deliverables. Only the by-hand step went.
The point
Nobody at this distributor types a price twice anymore. The master grid is the only place a price exists; everything an agent receives is generated from it, checked on the way in, and logged. Ninety maintained tabs became zero.
If your price lists — or any per-customer document — are hand-maintained copies of a master, generation beats discipline. Let's talk. Related: how we clean wine catalogues before they hit your ERP.