What does a failed chilled delivery actually cost?
By Muhamed Selmani, Founder
Food waste from failed deliveries is five lines, not one: the stock written off at landed cost, the recovery run or emergency purchase, the sales lost while the shelf was empty, the hours your team spent absorbing it, and the customer outcome. The delivery charge is the smallest of them. No published percentage describes your operation, so the number worth having is your own, measured over a quarter from a rejection log.
The delivery charge is the smallest number in the calculation
A finance lead sees one number for a delivery — the carriage line — and a failure costs five. That asymmetry is the whole subject. The carriage line is contracted, known in advance and lands on a statement. The other four are larger, and they scatter across accounts nobody adds together: stock write-off, recovery, lost sales, and the hours somebody spent fixing it.
It is also how the cheapest delivery becomes the expensive one. The saving is visible every month and the exposure is invisible until the morning it happens, which is precisely the shape that survives a budget round and then costs a service.
The five lines to add up
None of these is hard to measure. They are hard to attribute, which is a different problem and a solvable one: attribution needs a field on a form, not a model.
What a failed delivery costs, and how to instrument each line
- Stock, at landed cost. The ingredient, the labour and the packaging are already spent, so prepared food is written off at full value rather than at the price on the delivery note. Instrument: a write-off reason code that names the delivery.
- Recovery. The second run, the emergency purchase at whatever the spot price is that morning, the overtime. Instrument: a purchase reason code, and a rule that recovery spend is booked against the failure rather than into general purchasing.
- The service gap. Covers not sold, a line withdrawn from the menu, a shelf empty through the trading window, a site that opened short. Instrument: sales on the affected lines that day against a comparable day — the crude version beats not doing it.
- Labour. The chef who re-planned, the goods-in person who waited, the manager on the phone, the account manager writing it up. Salaried hours feel free and are the largest recurring line here. Instrument: 15-minute increments, logged by role on the same form as the rejection.
- The customer outcome. A credit, a cancelled cover, a delisting, a group that stops calling you first. Hard to attribute to one event, and attributable in aggregate. Instrument: record it rather than estimate it, and read the notes quarterly.
Spoilage, waste and shrinkage are three different words
They get used interchangeably and they measure different things, which is one reason published figures do not compare. Spoilage is product that went off. Waste is product thrown away for any reason, including over-production and trim. Shrinkage is the aggregate gap between what the system says you hold and what you actually hold — theft, mis-picks, short deliveries, unrecorded write-offs and spoilage all land inside it.
A delivery failure shows up in all three, and it cannot be pulled back out wherever the reason code stops at wastage. That is the finding worth having: the delivery-caused share of shrinkage is not a number you look up, it is a number you make visible by changing one field on a form.
Why nobody can give you a percentage, including this piece
The honest answer to how much stock is lost to cold chain failure is that no published figure describes your operation. Before using one, read what it pooled: retail alongside foodservice, categories and countries together, a chilled distribution centre averaged with a restaurant group whose failure mode is a missed window rather than a compressor. Quoting one at you would be quoting somebody else's business back as though it were yours.
Fleetable publishes no benchmark here for the plainest reason available: it has no audited one. The measurement below is yours to run. It takes a quarter, and at the end of it you hold a figure that is about your own sites.
The arithmetic, with every input assumed
Numbers help here, as long as nobody mistakes them for measurements. What follows is arithmetic on invented inputs, and the output worth keeping is the ratio rather than the total.
Worked example
One rejected chilled delivery
Assumptions
- Assume the carriage line is £95 ex VAT — the from-price on this site's rate card, and the smallest number here by design.
- Assume the load is worth £2,000 at landed cost. Chilled and prepared food is light and expensive, so a modest stack reaches that quickly.
- Assume half of it is judged unsellable after the break.
- Assume recovery costs £250: a second run, and a spot purchase to cover the gap.
- Assume 4 hours of salaried time across the kitchen, goods-in and the office, at £25 an hour fully loaded.
- Assume one site loses £400 of sales on the affected lines that day.
- Every figure above is an assumption chosen to show the arithmetic. None is measured, and none is a benchmark.
Working
- Stock written off — £1,000
- Recovery — £250
- Sales lost — £400
- Labour — £100
- Carriage on the failed route — £95 ex VAT
- Exposure on one failure — £1,845
- The carriage line as a share of it — around 5%
So: Change every input and the shape holds: the carriage line is the smallest one, and the exposure is set by the value of the load and the sales behind it rather than by the price of the vehicle. Which is why a decision taken on the carriage line alone — a cheaper provider, fewer routes, a bigger drop each time — is being taken on the one number that barely moves the total. Put your own figures in; the ratio is the output, not the pounds.
Instrumenting it: the rejection log
One form, one field, one monthly review. That is the whole programme, and it works because it changes attribution rather than adding measurement.
Then read it for shape before you read it for a total. One annual total spread evenly across 40 routes, and the same total concentrated in 3 handovers, call for completely different action — and only the log tells you which you have.
One row per incident
- Date, site, route and provider, so a pattern can be traced to a joint rather than to a season.
- What happened, in one line, and which handover it happened at.
- The temperature reading and the time it was taken, where there is one.
- Stock written off, at landed cost.
- Recovery spend, carrying the reason code that ties it back to this row.
- Time spent, in 15-minute increments, by role.
- Sales impact, where the site can see it.
- The decision taken, and who took it.
What a contract can do about it, and what it cannot
Start with what it cannot. Where carriage runs on the Road Haulage Association's conditions of carriage, a carrier's liability for the goods is capped by weight rather than by value — a figure per tonne, set by the edition your contract names. Fleetable contracts on the RHA Conditions of Carriage 2026, which caps it at £1,300 per tonne, or £1.30 a kilo. Chilled and prepared food is light and expensive, so a load worth several thousand pounds can sit under a cap of a few hundred, and claims for indirect or consequential loss are capped at the carriage charges. The cap can be raised, by written notice before the goods move rather than after a loss. Read that against your own arithmetic before you assume the load is covered.
What a contract can do is reduce how often this happens, which is where the money actually is. The terms that move the number are operational: a named backup, so a driver off sick is not a missed service; one named contact, so a decision takes minutes rather than a morning; a fixed sequence, so the same site is not always last; and one measure — on-time-in-full, per route, with the drops behind the figure visible — so the review is about a record rather than an impression.
And the cheapest way to find out whether a provider changes the number is to run one route alongside the current one for a few weeks with the log running, and compare like for like. You get a measured baseline instead of an argument, and nothing has to switch while you collect it.
Related
Continue reading
FAQ
Questions, answered.
How much stock does a food operation lose to cold chain failure?
Should a rejected delivery be charged for?
Can I claim the value of the load back from the carrier?
Is spoilage the same as shrinkage?
Start