Platform

Fine Wine ERP Features, Built Around How Fine Wine Actually Moves

Bacchus ERP's full fine wine ERP feature set runs lot, case, and bottle stock tracking, bonded-warehouse status, duty and VAT, and en primeur allocation software inside one platform — no side spreadsheet, no separate allocation tool.

Bacchus ERP Trade Ledger screen recording a new sale, with bond status, currency and duty/VAT fields — the fine wine ERP's ledger view
The Trade Ledger: a new sale recorded against bond status, currency and duty/VAT — the same screen en primeur allocations post through.

Fine Wine ERP Features, in Full

Lot, Case & Bottle Tracking

Every unit of stock — lot, case, or individual bottle — carries pack format, location, and bond status, with full lineage preserved when a lot splits or merges.

Bonded & In-Transit Stock Tracking

Bond status (en primeur, in bond, duty paid, in transit) is tracked across multiple warehouse locations and operators — including stock that’s sold before it has even landed.

Ownership Provenance Timeline

A read-only, verifiable history of who has owned and where a lot has been stored, with an explicit account of what the data can and can’t confirm.

En Primeur Allocation Management

Run allocation campaigns bound to ordered quantities, issue multi-supplier purchase orders, and handle partial or short deliveries automatically.

Duty & VAT Calculation

Excise duty and VAT are calculated automatically at the right point in the movement, effective-dated so historical rate changes recompute exactly, with the scheme applied per your jurisdiction’s rules and a live preview calculator to check the figure before anything posts.

Cellarage Cost-Recovery Billing

Ingest a warehouse’s storage charges, match them to client holdings, recharge with margin, and generate itemised storage and withdrawal invoices on a schedule.

Consignment & Brokering Workflows

A full draft-to-sold lifecycle for consignment and brokered stock, with sales and purchase orders generated automatically, net of commission, the moment a sale completes.

Double-Entry Financial Ledger

Every transaction posts to an immutable, append-only ledger with a live trial balance — the accounting backbone the rest of the platform builds on. Capitalised cost stranded by an inconsistent posting history is detected automatically, with a required-reason write-off for an operator to correct it deliberately, never a silent sweep.

Client Reserve Portal

Give clients visibility into their own holdings and statements, with self-service delivery and brokering requests, so routine questions stop going through a support inbox.

Market-Aware Stock View

See your own stock alongside live wine market pricing in one screen, kept in step automatically as prices move, and send an order for execution from the same screen — confirmation-gated, idempotent, and fully logged through a broker-agnostic execution adapter.

Bonded-Warehouse Connectivity

Movement instructions to bonded-warehouse operators are generated and confirmed automatically the instant stock is released, with inbound stock reports reconciled against them, any mismatch flagged to a review queue, and a reminder raised if a confirmation runs overdue — across every operator and site.

See every bonded-warehouse operator →

Accounting System Integration

Ledger postings sync automatically to your accounting platform through a queued, retried drain worker, so what happens in the ledger reaches your books without anyone re-keying it.

See which accounting platform →

Automation

What Runs Itself, and What Deliberately Doesn’t

Most wine-trade admin is the same handful of consequences repeating. Stock lands, so a sale that was made in transit can finally settle. A case leaves bond, so duty and VAT fall due. A storage period closes, so somebody has to invoice for it. Bacchus ERP treats each of those as an event and does the follow-on work itself — while stopping short, on purpose, of anything that would mean inventing a number.

  • When a landing is recorded

    Sales made in transit complete themselves

    Stock sold while it was still in transit is held as a claim: no money posted, no stock moved. The moment matching stock is recorded as landed, the deferred sale completes against the newly landed position — the money posts, the stock goes out, the claim closes. If only part of the consignment lands, the rest keeps waiting for the next one.

  • When a dispatch is recorded

    The withdrawal invoice writes itself

    Stock leaving bonded storage produces its own itemised withdrawal invoice, with duty and VAT calculated at withdrawal from the unit’s own bond status — and never charged a second time on stock that already settled it. One invoice per movement, however many times the dispatch is retried.

  • When a storage period closes

    Cellarage bills on its own schedule

    A daily check watches every storage rate’s own charging period. When one closes, that period’s storage invoices are raised against the holdings they belong to and recharged with your margin — exactly once per period, even if the check runs twice or someone triggers it by hand at the same moment. There is a preview mode for when you would rather look before anything is written.

  • When a sale completes

    The ledger posts itself, cost and all

    Every sale writes its own balanced double-entry postings, and the purchase costs capitalised against those units — delivery, handling — are relieved into cost of goods sold at the same moment, at the rate they were loaded at. The margin you read afterwards is the margin that actually happened.

  • When a consignment sells

    Both sides of the trade are raised together

    A brokered sale generates the back-to-back sales order and purchase order in the same transaction, net of commission and fees, so a client’s stock going out and your obligation to them going on the books can never drift apart.

  • When a storefront order is paid

    The order arrives already matched

    A paid order from your storefront is signature-verified on arrival, then — for whichever of these you have switched on — matched to the trade cycle it belongs to, and turned into that client’s reserve holdings without anyone re-keying them. Settlement itself is left to a person, deliberately; see the first rule below. The same order delivered twice does nothing the second time.

Where the Automation Deliberately Stops

Automating the wrong thing in an accounting system is worse than not automating it at all. Three rules are built in.

  • A trade cycle never settles itself. Settlement is a step no event is allowed to drive: a paid storefront order can be matched to the cycle it belongs to, but the bank posting that would close it is refused every time — and no account mapping, and no setting anywhere, turns that refusal off. The cycle waits in its last good state for a person; the platform will not invent an account code to finish a job on its own.
  • Nothing the platform writes for you is anonymous. Five of the six actions above are stored with the record that caused them — the movement that completed a deferred sale, the dispatch behind a withdrawal invoice, the sale its ledger entries belong to, the consignment its paired orders came from, the paid order a client’s holdings were built from. The sixth answers to a date rather than a record: a storage invoice for a closed period is flagged instead as one the platform raised itself, so you can always tell what it did on its own from what someone keyed in.
  • Each of these is either off until you switch it on, or the consequence of something you did. The ones that wait on an event — a landing completing a deferred sale, a paid order becoming a client’s holdings — start disabled, as does the daily check that raises the storage invoices, and you turn each one on deliberately. The rest follow an action you took yourself: mark a consignment sold, and its paired orders follow; record a dispatch, and its withdrawal invoice follows — and that one can still be suppressed on the call, or switched off across the business.

Market Data

One Trusted Price, and the Working Behind It

A market price is only worth what you can show behind it. Bacchus ERP sets your own holdings beside market data on one screen — and never puts a figure on that screen on its own. Every one arrives with the source it came from, which side of the market it represents, the moment it was captured, and whether that capture is still current. The rule that turns market data into the number you read is written down and deterministic: the same inputs re-derive the same figure, by hand if you want to check.

Two and a half years of one wine

What travels with every figure

A number nobody can account for is not an asset, it is a liability. So a figure never travels alone: it carries the source it was taken from, which price it is, when it was captured, and whether that capture still counts as current — and the derivation itself is written down as one deterministic rule, so it can be read, checked and agreed before anyone trades on it.

Derivation record

One wine, one figure
Source
Trade exchange — single trusted source
Price type
Market mid — the midpoint of the best bid and the best offer
As at
22 Aug 2026, 06:15 UTC
Staleness
Within policy — five hours old when this record was read. A capture is labelled stale once it passes 24 hours, rather than quietly served as current.
Method
Both sides quoted in one currency, so the figure is their midpoint — two currencies and it is the offer, never an average struck across two markets; one side only and it is that side, neither and it is the last recorded trade, none of those and there is no price rather than an estimate.

Sample record. The values are invented; the fields are the ones the platform attaches to a real figure.

The same fields follow the figure outward. A client-facing surface renders the derived trend and the derivation that goes with it — price type, as-at, staleness — but never the name of the source behind it; that stays on the operator’s side of the line, and the line is enforced in the code rather than left to editorial care.

What you sell at stays a separate, deliberate decision. Channel and customer-group pricing resolves in one fixed order, and a floor price always wins — so a market figure informs the number you quote without ever becoming it by default.

Sending an order for execution starts from this same screen — confirmation-gated, idempotent and fully logged, through a broker-agnostic execution adapter.

Product Overview

From Intake to Sale, in Four Modules

  1. 1

    Intake & Stock Setup

    Register new stock as a lot, case, or bottle the moment it enters the system — whether it’s an en primeur purchase, a trade acquisition, or a consignment from a client’s own reserves.

  2. 2

    Bonded Storage & Movement

    Track stock across bonded and duty-paid locations spanning multiple bonded-warehouse operators and their own storage sites, generate warehouse movement instructions the moment stock is released, and follow it through to a despatch note — including stock sold while it’s still in transit.

  3. 3

    Allocation, Sale & Ownership

    Run en primeur allocation campaigns bound to ordered quantities, sell direct or through consignment and brokering, and move stock from company-held to client-owned in a single atomic transaction, with built-in guardrails that stop the ownership-change sale from crediting stock back to the same entity that’s already holding it.

  4. 4

    Billing & Ledger

    Calculate duty and VAT, recover cellarage storage costs from clients with margin, and post every transaction — including purchase costs, which are capitalised and automatically relieved into cost of goods sold at the point of sale — to a double-entry ledger with a live trial balance.

Bacchus ERP Private Client Reserves screen listing wines held in storage with purchase price, bond status and market valuation
Private Client Reserves: wines held in storage, valued and tracked by bond status — one view across the full fine wine ERP feature set.

Ledger

Every Charge on the Ledger. Every Cost in the Margin.

A purchase is rarely just wine. There is delivery, there is handling, and if those land anywhere other than the wine’s own cost, the margin you report afterwards is not the margin you made. Bacchus ERP posts each of them as its own balanced ledger line, capitalises them against the units they belong to, and relieves them into cost of goods sold when those units sell.

One purchase, four balanced lines

General ledger posting for purchase order PO-2026-0184. Three inventory debits — wine value £3,900.00, delivery provision £96.00, handling provision £39.00 — against one credit to trade creditors of £4,035.00. Debit and credit totals both £4,035.00.
Account Debit Credit
Inventory — wine value £3,900.00
Inventory — delivery provision £96.00
Inventory — handling provision £39.00
Trade creditors £4,035.00
Totals £4,035.00 £4,035.00

A purchase posts the wine and its delivery and handling provisions as separate balanced GL lines against one credit to trade creditors. Because those charges are capitalised against the units they arrived with rather than swept into a general expense line, cost of goods sold is fully loaded when the case sells — £67.25 a bottle here, not £65.00 — and the margin you read back afterwards is the margin that actually happened.

Reversal of #4471 A correction posts a compensating entry against the original, with both sitting on the record. Nothing already posted is edited or deleted.

Duty and VAT, worked out before anything is posted

Duty & VAT preview

Read-only preview — nothing is posted.

One case, 12 × 75cl at 13.5% ABV, withdrawn from bond duty paid. Goods value £1,050.00.

Duty band
8.50–22.00% ABV — £30.62 per litre of pure alcohol
Pure alcohol
0.75 L × 12 × 13.5% = 1.215 L
Duty
£37.20
VAT treatment
Standard scheme, the setting this book is on — 20.0% of (£1,050.00 + £37.20) goods value plus duty, a duty-point crossing
VAT
£217.44

Duty and VAT raised at withdrawal £254.64

One invoice per movement: a dispatch that is retried still raises this once.

The same case, left where it is. No withdrawal, so no withdrawal invoice.

Duty band
8.50–22.00% ABV — £30.62 per litre of pure alcohol, applied when it leaves
Pure alcohol
0.75 L × 12 × 13.5% = 1.215 L
Duty
£0.00
VAT treatment
Nothing raised on this movement — the case has not left bond
VAT
£0.00

Duty and VAT raised while it stays in bond £0.00

£37.20 falls due when the case is withdrawn, at whichever rate is in force that day. Stock that already settled duty is never charged it twice.

One case, 12 × 75cl of fortified wine at 20.0% ABV, withdrawn duty paid — on a book set to the margin scheme instead. Goods value £1,050.00, acquisition basis £780.00.

Duty band
8.50–22.00% ABV — £30.62 per litre of pure alcohol, the same band as the still wine
Pure alcohol
0.75 L × 12 × 20.0% = 1.800 L
Duty
£55.12
VAT treatment
Margin scheme — 20.0% of £1,050.00 less the £780.00 acquisition basis
VAT
£54.00

Duty and VAT raised at withdrawal £109.12

Same band, more duty: the charge follows the alcohol in the bottle, not the label on it.

Alcohol duty bands effective 1 February 2026, at a VAT rate of 20.0%. Bands and rates are effective-dated, so a movement dated before an uprating is still calculated at the rate that was in force on the day it happened. The VAT scheme is a setting on the book rather than a choice per transaction: the first two scenarios are one book on the standard scheme, and the third is a book set to the margin scheme instead. For the standard scheme, duty enters the taxable base on which VAT is calculated at a duty-point crossing like withdrawal from bond. For the margin scheme, duty sits beside the VAT figure rather than inside the base — the two schemes’ respective approaches are what the platform’s own preview calculator applies. Figures are illustrative, on sample stock. Which scheme applies to your own transactions is a matter for you and your accountants; the platform calculates whichever one your book is set to.

Questions

Bonded Stock, Answered

How Does a Wine ERP Handle Duty on Wine in Bond?

A wine ERP has to treat wine in bond as a distinct stock state with its own tax consequences, not a variant of ordinary inventory. Bacchus ERP calculates UK excise duty and VAT automatically at the point wine actually leaves bond — not when it's purchased or landed. It uses whichever duty band and VAT scheme (standard or margin) was actually in force on the day of that specific withdrawal. The duty preview calculator above shows exactly how a withdrawal is worked out. Duty already settled at an earlier withdrawal is never recalculated and charged a second time on the same stock.

What Happens to Bonded Stock When It Moves Between Warehouses?

Bonded stock rarely stays with one warehouse operator forever. A system that models bond status per warehouse rather than per stock unit forces someone to reconcile positions by hand every time stock moves. Bacchus ERP tracks bond status as a property of the stock unit itself — en primeur, in bond, in transit, or duty paid — across every bonded-warehouse location and operator a merchant uses, so a case moving between warehouses stays on one continuous record. The whole model is built around the movement rather than around a single shelf. Movement instructions are generated and confirmed automatically the instant stock is released, with any mismatch against the warehouse's own inbound report flagged to a review queue rather than discovered at the next stocktake.

Questions

Frequently Asked Questions

Does Bacchus ERP track wine down to the individual bottle, or only by case?

Both. Every unit of stock — lot, case, or individual bottle — carries its own pack format, warehouse location, and bond status. Full lineage is preserved when a lot splits or merges, so a single bottle can still be traced back to the lot it came from.

Can Bacchus ERP calculate duty and VAT automatically for wine held in bond?

Yes. Excise duty and VAT are calculated automatically at the point of withdrawal from bond. They are effective-dated, so historical rate changes recompute exactly, with the scheme applied per your jurisdiction's rules. A live preview calculator checks the figure before anything posts.

Does Bacchus ERP integrate with Shopify, Xero, and other trade platforms?

Yes. Bacchus ERP connects live to Shopify, Xero, Liv-ex, LiveTrade/Bordeaux Index, and bonded-warehouse operators, on top of a double-entry, append-only ledger.

What happens to the ownership record when stock is sold from company stock to a client?

A single atomic ownership change moves the stock unit out of company stock and onto the client's holding. Both sides of the ledger entry are written in the same transaction. The unit's full provenance history is carried forward rather than starting again on the far side.

How does a wine ERP handle duty on wine in bond?

Bacchus ERP calculates UK excise duty and VAT automatically at the point wine actually leaves bond. It uses whichever duty band and VAT scheme was in force on the day of that specific withdrawal. Duty already settled at an earlier withdrawal is never charged a second time on the same stock.

What happens to bonded stock when it moves between warehouses?

Bond status is tracked as a property of the stock unit itself, not of any one warehouse's own system. Bonded stock held across multiple warehouse locations and operators therefore stays on one continuous record. Movement instructions are generated and confirmed automatically the instant stock is released.

Go Deeper

More on How Bacchus ERP Handles the Trade

Wine Merchant Inventory System

Stock tracked at lot, case, and bottle level, with bond and duty status attached to every unit — not one count per warehouse.

Trade Wine at Scale

Bottle-level inventory, bonded-warehouse tracking, market-aware trading, duty and VAT, en primeur allocation, and one ledger — on a single platform.

ERP Migration Guide for Wine Merchants

What actually breaks in a wine-trade ERP migration — legacy data, bonded stock, open en primeur allocations, ledger balances — and a realistic cutover timeline.

Wine Software, Compared

“Wine software” mixes four different products — winery production systems, cellar apps, inventory tools, and merchant trade ERP. How to tell them apart.

Winery Software vs Wine Trade ERP

Producer-side production tracking and merchant-side bond, duty, and ledger management solve different problems. Here’s the split.