Pricing & Margin FoodCore Editorial Team August 2026 · 10 min read

How to Build a Wholesale Price List for Your Bakery

A trade price list is not your retail menu with a discount stapled on. It is a different document, for a different buyer, priced from a different starting point — and the bakeries that get it wrong usually get it wrong in the same way, by working downward from retail instead of upward from cost. Here is how to build a wholesale price list that wins trade accounts without quietly selling volume at a loss.

Wholesale is a different business, not a bigger version of the same one

The first mistake in building a trade price list is treating it as your retail list with a discount stapled on. Retail and wholesale are different trades that happen to use the same oven.

In retail you are selling an occasion. Someone walked past, liked the window, and paid a price that includes your rent, your counter staff and the pleasure of buying it from you. In wholesale you are selling volume and reliability. The café owner is not buying an experience; they are buying the certainty that thirty croissants will be at their back door before 7am every Tuesday, at a price they can build their own menu around. Nobody is paying for your window display.

That changes what the customer values. A trade buyer will forgive a plain box. They will not forgive a late delivery, an inconsistent bake weight, a price that changes without notice, or an allergen sheet they have to chase you for. Reliability is the product — and a lower unit price does not automatically mean a worse deal for you, because you have stripped out the cost of selling one item at a time.

If you want the software-and-systems view of running wholesale alongside retail, we cover that separately in wholesale bakery software for UK bakeries. This article is about the list itself: how to build it and how to price it.

Setting the trade discount without destroying the margin

Here is the reflex that damages more small bakeries than any other: “My loaf is £4.50 retail. Trade is 30% off. So it’s £3.15.” That calculation never once looked at what the loaf costs to make. It works fine on a well-costed, high-margin product and is a disaster on anything expensive to produce — and you cannot tell which is which without doing the sum.

Work upward instead:

  1. Establish the true cost per unit. Ingredients at today’s prices, packaging, and a realistic allowance for labour and overheads. Not last year’s flour price.
  2. Decide the minimum gross margin you will accept on trade work. It will be lower than retail — that is expected — but it is a floor you set deliberately, not a residue left over after the discount.
  3. Derive the trade price from those two numbers.
  4. Then compare it with your retail price and see what discount it implies. If that discount is too small to interest a buyer, you have learned something real about your cost base — not that you should discount harder.

Cost a product properly with the free calculator →

A worked example — including the line that goes wrong

The table below applies a flat 30% trade discount across five illustrative products. The figures are made up to demonstrate the arithmetic, not drawn from any real bakery — but the shape is the point.

ProductRetailTrue costTrade at 30% offGross profitTrade margin
Sourdough loaf 800g£4.50£1.05£3.15£2.1067%
Butter croissant£2.80£0.68£1.96£1.2865%
Cinnamon bun£3.20£1.10£2.24£1.1451%
Focaccia tray slice£3.00£1.35£2.10£0.7536%
Gluten-free brownie, boxed£3.50£2.60£2.45−£0.15−6%

Four of the five lines survive a 30% discount comfortably. The fifth does not. The boxed gluten-free brownie costs £2.60 to make because the flour blend is expensive and the packaging is a separate item; at 30% off a £3.50 retail price the trade price is £2.45, and every one you sell loses you 15p. Sell three hundred a month to a new café account and you have won a customer who costs you £45 a month plus delivery. Nobody sets out to do this — it happens because the discount was applied as a policy across a whole list, and the one line that could not take it was never checked.

The blanket 30% discount is where margin goes to die. A single percentage across a whole range assumes every product has the same cost structure, and no bakery’s range does. Bought-in components, specialist flours, separate packaging and slow hand-finishing all push cost up without pushing retail price up in the same proportion. Set a default if you like — but check every line against its cost before the list goes out, and be willing to exclude a product from trade entirely.

Minimum order values and delivery charges

The trade discount is not the only thing eating your margin. Picking, packing, loading and driving cost roughly the same whether the order is worth £30 or £300. A £30 order with a 30% discount and a fifteen-mile round trip is not a customer; it is a hobby. Two controls fix this, and both belong on the price sheet in plain sight:

  • A minimum order value. Set it high enough that the delivery is worth making. Say it once, on the sheet, so it never becomes a negotiation.
  • A delivery charge below the threshold, or defined delivery days by area. This gives a smaller café a legitimate way to buy from you without you funding it, and it lets you cluster deliveries geographically instead of criss-crossing the county.

Also state your order cut-off. “Orders by 2pm for next-day delivery” is not bureaucracy; it is what makes your production planning possible, and trade buyers expect it.

Percentage rules versus pinned prices

Every line on a trade list is one of two things, and knowing which saves a great deal of trouble.

A percentage rule says “this product is 28% off retail”. Its virtue is that it stays correct: when butter goes up and you re-cost the recipe and lift the retail price, the trade price moves with it. This should be your default for most of the list.

A pinned price says “this product is £2.10 to this customer, full stop”. Pin a price when it genuinely must not move: a figure written into a supply agreement, a seasonal promotion, or a strategic loss-leader chosen with your eyes open.

The failure mode is having neither — a spreadsheet of numbers typed in eighteen months ago, where nobody now remembers which were deliberate and which were arithmetic. When costs rise, you cannot tell which lines are safe to update.

What a trade buyer expects to see on the sheet

A price sheet that prompts three follow-up emails is a price sheet that costs you a sale. Include:

  • Product name — the name they will use on their own menu, not your internal recipe code.
  • Pack size or unit of sale — “croissant, tray of 12”, not “croissant”. Ambiguity here causes the most order disputes.
  • Trade price per unit, and whether it excludes VAT.
  • Allergens for every line. A café buying your product has its own legal duty to give accurate allergen information to its customers, and can only do that if you supply it. This is the most common gap on small-bakery trade sheets.
  • Lead time, minimum order value, delivery days and charges, and the order cut-off.
  • The date the list takes effect and how long prices hold. “Prices valid until 31 March” makes a future increase routine rather than a confrontation.
What must never appear: your ingredient cost, your gross margin, or your retail price shown next to the trade price. Cost data on a customer-facing document is negotiating ammunition you have handed over for free, and it is astonishingly easy to leak — a hidden spreadsheet column, a costing tab left in the workbook, a PDF exported from the wrong view. Build the customer sheet as a separate document that structurally cannot contain those fields.

How FoodCore builds wholesale price lists

Wholesale price lists are a Growth feature (£40/month inc. VAT, £400/year) and are included in Core (£65/month inc. VAT, £650/year). They are designed around exactly the problems above.

Build the list from your recipes

You pick the recipes that go on a list and set, per line, either a percentage off or a pinned price. You can bulk-discount everything at once for a starting position, then override the lines that cannot take it — which, as the table above shows, is where the real work is.

It stores the rule, not just the number

This is the important design decision. Because FoodCore stores the rule rather than a fixed figure, re-pricing a recipe re-prices the trade line automatically — update a recipe after a supplier price rise and every percentage-based line built on it moves in step. Meanwhile, pinned prices never move until you deliberately change them. Automatic maintenance where you want it, absolute stability where you need it, in the same list.

The exported sheet cannot leak your costs

The customer-facing sheet is generated server-side, and it includes allergens and never contains your cost or your margin. That is deliberate: the document you send a buyer is built from a separate, restricted view rather than by hiding columns in the one you work from, so there is no version of it that quietly carries your cost base into a buyer’s inbox.

Growth also gives you the cost calculator, stock, production runs and calendar, supplier price history and an orders and collections diary — together, what lets you cost a line honestly before you discount it. One thing to be clear about: FoodCore is not an accounting, invoicing, VAT or payroll system. It tells you what to charge a trade customer and produces the sheet you send them; raising the invoice and doing the books happens elsewhere.

See FoodCore for bakeries →

Start a 7-day free trial — no card required →

Wholesale price lists: frequently asked questions

What is a wholesale price list?

A wholesale price list, or trade price list, is the document you give a trade buyer setting out what you sell them, in what pack size, at what price. It is a different document from your retail menu: prices are lower, quantities larger, and it carries what a business buyer needs — pack sizes, allergens, lead times, minimum order values and delivery terms. It should never show your cost or your margin.

What discount should I give wholesale customers?

There is no standard figure, and the honest answer is that the discount is an output rather than an input. Work out your true cost per unit, decide the minimum gross margin you will accept on trade work, and see what discount that allows. A 25–35% discount off retail is common practice in UK baking, but on an expensive-to-make line it can wipe out the profit entirely. Set it line by line.

How do I work out a wholesale price for bakery products?

Start from cost, not from retail. Add up ingredients at current prices, packaging and a realistic allowance for labour and overheads, then add the gross margin you need on trade work. Compare the result with your retail price to see what discount it implies. If that discount looks too small to interest a buyer, the problem is usually your cost base — not the trade price.

Should I set a minimum order value for wholesale?

Almost always. Picking, packing and delivering costs roughly the same whether an order is worth £30 or £300, so small orders quietly destroy the margin the trade discount already reduced. A minimum order value protects that, and a delivery charge below the threshold lets smaller customers order without you subsidising them.

What should appear on a trade price sheet?

Product name, pack size or unit of sale, trade price per unit, allergen information and lead time. Add your minimum order value, delivery days and charges, order cut-offs, and how long prices hold. What must never appear is your ingredient cost, your margin, or your retail price alongside the trade price — that is negotiating ammunition handed over for free.

When should I pin a wholesale price instead of using a percentage?

Pin a price when it must not move: a figure written into a supply agreement, a seasonal promotion you have committed to, or a product where a percentage rule produces an awkward number the buyer has already been quoted. Use a percentage rule everywhere else, because a rule keeps the trade line in step with your costs automatically. In FoodCore a pinned price never moves when the recipe is re-costed, while a percentage line re-prices itself.

Which FoodCore plan includes wholesale price lists?

Wholesale price lists are on the Growth plan at £40/month inc. VAT (£400/year) and included in Core at £65/month inc. VAT (£650/year). Growth also adds the cost calculator, stock, production runs and calendar, supplier price history, and an orders and collections diary. Essentials at £25/month inc. VAT covers recipes, ingredients, allergens and labels but not wholesale price lists. All plans start with a 7-day free trial, no card required.

Further resources

Published by
FoodCore Editorial Team

FoodCore is kitchen management software built for small UK food businesses. We handle recipe costing, Natasha's Law labels, allergen matrices and order tracking.

Start free trial →

Related articles

Build a trade price list that keeps itself current

FoodCore stores the pricing rule, not just a number — so re-costing a recipe re-prices the trade line, while pinned prices stay put. Customer sheets include allergens and never your costs. Growth from £40/month inc. VAT. 7-day free trial, no card required.

Start free trial →