Ferry Lane · A fair comparison
Keep score. Including the misses.
Save the suggestion and your own planned buy before either sees the outcome. Then compare both with the same units needed by Thursday. Lower units off is better. Ties stay in.
Inside the software
See the actual product
Open the real software exactly as an owner sees it each morning, with invented figures.
The worked examples on this demo site and the product pages use separate invented snapshots, so their dates and totals differ.
Stock engine · units off
Sum of absolute gaps across all 225 products compared
You · units off
Same 225 products compared against units needed by Thursday
Weeks won by stock engine
You won 2 weeks · 1 week tied
What does “units off” mean?
The size of the gap between units proposed and units later needed, ignoring whether it is over or under. Add every line’s gap. A 2-unit overbuy and a 3-unit underbuy add up to 5 units off.
“Needed” is the made-up extra stock required after usable opening stock, in sellable units. It is not a sales total. In a real shop, lost sales and stock-count errors would make it an estimate.
One honest bias in this yardstick: units off counts deliberate buffer as error. A shopkeeper who over-buys on purpose ahead of a sunny weekend scores worse here even when the call was right, and the engine is tuned to this exact yardstick. Read the gap as directional, not as a precise measure of better buying.
What does “lines closer” mean?
Give one point to the smaller gap on each product. Equal gaps are ties, including where both buy nothing. Do not turn this into a claim about accuracy or money saved.
44 closer for the stock engine + 37 closer for you + 144 ties = 225 products compared. Whole cases can leave both choices above the units needed by Thursday.
The weekly record
Units off decides the weekly winner| Week ending Thursday | Stock engine units off | You units off | Lines closer Stock engine / you | Tied lines | Week winner |
|---|---|---|---|---|---|
| 9 Jul | 26Running 26 | 38Running 38 | 6 / 4 | 15 | Stock engine |
| 16 Jul | 24Running 50 | 34Running 72 | 5 / 4 | 16 | Stock engine |
| 23 Jul | 27Running 77 | 23Running 95 | 3 / 4 | 18 | You |
| 30 Jul | 25Running 102 | 37Running 132 | 6 / 4 | 15 | Stock engine |
| 6 Aug | 36Running 138 | 30Running 162 | 4 / 5 | 16 | You |
| 13 Aug | 24Running 162 | 34Running 196 | 5 / 4 | 16 | Stock engine |
| 20 Aug | 28Running 190 | 28Running 224 | 4 / 4 | 17 | Tie |
| 27 Aug | 25Running 215 | 33Running 257 | 5 / 4 | 16 | Stock engine |
| 3 Sep | 27Running 242 | 39Running 296 | 6 / 4 | 15 | Stock engine |
| Nine-week total | 242 | 296 | 44 / 37 | 144 | 6 / 2 / 1 weeks |
Final column in the total row: stock engine wins / your wins / tied weeks. Click a date, then expand the matching basket below to check every line.
Check the numbers yourself
25 products checked in every sample
To make the arithmetic easy to follow, the suggested basket repeats across all nine samples. Your planned buys and the units needed by Thursday change. This is a teaching example, not a trading history.
9 Jul · 26 vs 38 units off
All figures below are sellable units. Gap = absolute difference from “needed”.
| Product | Stock engine | You | Units needed by Thursday | Stock engine gap | Your gap | Closer |
|---|---|---|---|---|---|---|
| Semi-skimmed milk · 2 litres | 18 | 18 | 20 | 2 | 2 | Tie |
| Whole milk · 2 litres | 6 | 6 | 6 | 0 | 0 | Tie |
| Natural yoghurt · 500 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Cheddar · 250 g | 6 | 12 | 11 | 5 | 1 | You |
| Free-range eggs · box of 6 | 12 | 12 | 12 | 0 | 0 | Tie |
| Butter · 250 g | 0 | 6 | 0 | 0 | 6 | Stock engine |
| Orange juice · 1 litre | 6 | 6 | 6 | 0 | 0 | Tie |
| White sliced loaf | 18 | 18 | 18 | 0 | 0 | Tie |
| Wholemeal sliced loaf | 12 | 12 | 12 | 0 | 0 | Tie |
| Soft rolls · pack of 4 | 6 | 12 | 6 | 0 | 6 | Stock engine |
| Plain croissants · pack of 2 | 0 | 6 | 4 | 4 | 2 | You |
| Still water · 500 ml | 24 | 24 | 24 | 0 | 0 | Tie |
| Cola · 330 ml | 24 | 24 | 24 | 0 | 0 | Tie |
| Lemonade · 330 ml | 12 | 12 | 12 | 0 | 0 | Tie |
| Apple juice · 1 litre | 0 | 0 | 0 | 0 | 0 | Tie |
| Pasta · 500 g | 12 | 6 | 7 | 5 | 1 | You |
| Chopped tomatoes · 400 g | 12 | 18 | 14 | 2 | 4 | Stock engine |
| Baked beans · 400 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Long-grain rice · 1 kg | 0 | 0 | 0 | 0 | 0 | Tie |
| Ready salted crisps · 40 g | 24 | 24 | 24 | 0 | 0 | Tie |
| Milk chocolate · 100 g | 12 | 18 | 14 | 2 | 4 | Stock engine |
| Oat biscuits · 300 g | 0 | 6 | 1 | 1 | 5 | Stock engine |
| Toilet tissue · pack of 4 | 6 | 12 | 11 | 5 | 1 | You |
| Washing-up liquid · 500 ml | 0 | 6 | 0 | 0 | 6 | Stock engine |
| Kitchen foil · 10 metres | 0 | 0 | 0 | 0 | 0 | Tie |
| Basket totals | 234 | 282 | 250 | 26 | 38 | 15 tied lines |
16 Jul · 24 vs 34 units off
All figures below are sellable units. Gap = absolute difference from “needed”.
| Product | Stock engine | You | Units needed by Thursday | Stock engine gap | Your gap | Closer |
|---|---|---|---|---|---|---|
| Semi-skimmed milk · 2 litres | 18 | 12 | 12 | 6 | 0 | You |
| Whole milk · 2 litres | 6 | 0 | 2 | 4 | 2 | You |
| Natural yoghurt · 500 g | 12 | 12 | 10 | 2 | 2 | Tie |
| Cheddar · 250 g | 6 | 6 | 6 | 0 | 0 | Tie |
| Free-range eggs · box of 6 | 12 | 12 | 12 | 0 | 0 | Tie |
| Butter · 250 g | 0 | 6 | 1 | 1 | 5 | Stock engine |
| Orange juice · 1 litre | 6 | 0 | 5 | 1 | 5 | Stock engine |
| White sliced loaf | 18 | 24 | 22 | 4 | 2 | You |
| Wholemeal sliced loaf | 12 | 12 | 12 | 0 | 0 | Tie |
| Soft rolls · pack of 4 | 6 | 6 | 6 | 0 | 0 | Tie |
| Plain croissants · pack of 2 | 0 | 0 | 0 | 0 | 0 | Tie |
| Still water · 500 ml | 24 | 24 | 24 | 0 | 0 | Tie |
| Cola · 330 ml | 24 | 24 | 24 | 0 | 0 | Tie |
| Lemonade · 330 ml | 12 | 12 | 12 | 0 | 0 | Tie |
| Apple juice · 1 litre | 0 | 0 | 0 | 0 | 0 | Tie |
| Pasta · 500 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Chopped tomatoes · 400 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Baked beans · 400 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Long-grain rice · 1 kg | 0 | 6 | 1 | 1 | 5 | Stock engine |
| Ready salted crisps · 40 g | 24 | 24 | 24 | 0 | 0 | Tie |
| Milk chocolate · 100 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Oat biscuits · 300 g | 0 | 6 | 0 | 0 | 6 | Stock engine |
| Toilet tissue · pack of 4 | 6 | 0 | 6 | 0 | 6 | Stock engine |
| Washing-up liquid · 500 ml | 0 | 6 | 5 | 5 | 1 | You |
| Kitchen foil · 10 metres | 0 | 0 | 0 | 0 | 0 | Tie |
| Basket totals | 234 | 240 | 232 | 24 | 34 | 16 tied lines |
23 Jul · 27 vs 23 units off
All figures below are sellable units. Gap = absolute difference from “needed”.
| Product | Stock engine | You | Units needed by Thursday | Stock engine gap | Your gap | Closer |
|---|---|---|---|---|---|---|
| Semi-skimmed milk · 2 litres | 18 | 12 | 13 | 5 | 1 | You |
| Whole milk · 2 litres | 6 | 6 | 8 | 2 | 2 | Tie |
| Natural yoghurt · 500 g | 12 | 12 | 14 | 2 | 2 | Tie |
| Cheddar · 250 g | 6 | 6 | 6 | 0 | 0 | Tie |
| Free-range eggs · box of 6 | 12 | 18 | 14 | 2 | 4 | Stock engine |
| Butter · 250 g | 0 | 6 | 0 | 0 | 6 | Stock engine |
| Orange juice · 1 litre | 6 | 12 | 7 | 1 | 5 | Stock engine |
| White sliced loaf | 18 | 18 | 18 | 0 | 0 | Tie |
| Wholemeal sliced loaf | 12 | 12 | 12 | 0 | 0 | Tie |
| Soft rolls · pack of 4 | 6 | 6 | 6 | 0 | 0 | Tie |
| Plain croissants · pack of 2 | 0 | 0 | 0 | 0 | 0 | Tie |
| Still water · 500 ml | 24 | 24 | 24 | 0 | 0 | Tie |
| Cola · 330 ml | 24 | 24 | 24 | 0 | 0 | Tie |
| Lemonade · 330 ml | 12 | 12 | 12 | 0 | 0 | Tie |
| Apple juice · 1 litre | 0 | 0 | 0 | 0 | 0 | Tie |
| Pasta · 500 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Chopped tomatoes · 400 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Baked beans · 400 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Long-grain rice · 1 kg | 0 | 0 | 0 | 0 | 0 | Tie |
| Ready salted crisps · 40 g | 24 | 24 | 24 | 0 | 0 | Tie |
| Milk chocolate · 100 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Oat biscuits · 300 g | 0 | 6 | 4 | 4 | 2 | You |
| Toilet tissue · pack of 4 | 6 | 12 | 11 | 5 | 1 | You |
| Washing-up liquid · 500 ml | 0 | 0 | 0 | 0 | 0 | Tie |
| Kitchen foil · 10 metres | 0 | 6 | 6 | 6 | 0 | You |
| Basket totals | 234 | 264 | 251 | 27 | 23 | 18 tied lines |
30 Jul · 25 vs 37 units off
All figures below are sellable units. Gap = absolute difference from “needed”.
| Product | Stock engine | You | Units needed by Thursday | Stock engine gap | Your gap | Closer |
|---|---|---|---|---|---|---|
| Semi-skimmed milk · 2 litres | 18 | 18 | 19 | 1 | 1 | Tie |
| Whole milk · 2 litres | 6 | 6 | 6 | 0 | 0 | Tie |
| Natural yoghurt · 500 g | 12 | 18 | 12 | 0 | 6 | Stock engine |
| Cheddar · 250 g | 6 | 6 | 6 | 0 | 0 | Tie |
| Free-range eggs · box of 6 | 12 | 18 | 16 | 4 | 2 | You |
| Butter · 250 g | 0 | 0 | 0 | 0 | 0 | Tie |
| Orange juice · 1 litre | 6 | 12 | 11 | 5 | 1 | You |
| White sliced loaf | 18 | 18 | 18 | 0 | 0 | Tie |
| Wholemeal sliced loaf | 12 | 18 | 16 | 4 | 2 | You |
| Soft rolls · pack of 4 | 6 | 12 | 8 | 2 | 4 | Stock engine |
| Plain croissants · pack of 2 | 0 | 0 | 0 | 0 | 0 | Tie |
| Still water · 500 ml | 24 | 24 | 24 | 0 | 0 | Tie |
| Cola · 330 ml | 24 | 24 | 24 | 0 | 0 | Tie |
| Lemonade · 330 ml | 12 | 12 | 12 | 0 | 0 | Tie |
| Apple juice · 1 litre | 0 | 0 | 0 | 0 | 0 | Tie |
| Pasta · 500 g | 12 | 18 | 13 | 1 | 5 | Stock engine |
| Chopped tomatoes · 400 g | 12 | 18 | 16 | 4 | 2 | You |
| Baked beans · 400 g | 12 | 6 | 11 | 1 | 5 | Stock engine |
| Long-grain rice · 1 kg | 0 | 0 | 0 | 0 | 0 | Tie |
| Ready salted crisps · 40 g | 24 | 24 | 24 | 0 | 0 | Tie |
| Milk chocolate · 100 g | 12 | 6 | 11 | 1 | 5 | Stock engine |
| Oat biscuits · 300 g | 0 | 0 | 0 | 0 | 0 | Tie |
| Toilet tissue · pack of 4 | 6 | 6 | 6 | 0 | 0 | Tie |
| Washing-up liquid · 500 ml | 0 | 6 | 2 | 2 | 4 | Stock engine |
| Kitchen foil · 10 metres | 0 | 0 | 0 | 0 | 0 | Tie |
| Basket totals | 234 | 270 | 255 | 25 | 37 | 15 tied lines |
6 Aug · 36 vs 30 units off
All figures below are sellable units. Gap = absolute difference from “needed”.
| Product | Stock engine | You | Units needed by Thursday | Stock engine gap | Your gap | Closer |
|---|---|---|---|---|---|---|
| Semi-skimmed milk · 2 litres | 18 | 18 | 16 | 2 | 2 | Tie |
| Whole milk · 2 litres | 6 | 6 | 8 | 2 | 2 | Tie |
| Natural yoghurt · 500 g | 12 | 12 | 10 | 2 | 2 | Tie |
| Cheddar · 250 g | 6 | 12 | 7 | 1 | 5 | Stock engine |
| Free-range eggs · box of 6 | 12 | 6 | 11 | 1 | 5 | Stock engine |
| Butter · 250 g | 0 | 6 | 5 | 5 | 1 | You |
| Orange juice · 1 litre | 6 | 6 | 6 | 0 | 0 | Tie |
| White sliced loaf | 18 | 18 | 18 | 0 | 0 | Tie |
| Wholemeal sliced loaf | 12 | 6 | 7 | 5 | 1 | You |
| Soft rolls · pack of 4 | 6 | 12 | 11 | 5 | 1 | You |
| Plain croissants · pack of 2 | 0 | 6 | 1 | 1 | 5 | Stock engine |
| Still water · 500 ml | 24 | 24 | 24 | 0 | 0 | Tie |
| Cola · 330 ml | 24 | 24 | 24 | 0 | 0 | Tie |
| Lemonade · 330 ml | 12 | 12 | 12 | 0 | 0 | Tie |
| Apple juice · 1 litre | 0 | 0 | 0 | 0 | 0 | Tie |
| Pasta · 500 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Chopped tomatoes · 400 g | 12 | 6 | 7 | 5 | 1 | You |
| Baked beans · 400 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Long-grain rice · 1 kg | 0 | 0 | 0 | 0 | 0 | Tie |
| Ready salted crisps · 40 g | 24 | 24 | 24 | 0 | 0 | Tie |
| Milk chocolate · 100 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Oat biscuits · 300 g | 0 | 0 | 0 | 0 | 0 | Tie |
| Toilet tissue · pack of 4 | 6 | 12 | 12 | 6 | 0 | You |
| Washing-up liquid · 500 ml | 0 | 6 | 1 | 1 | 5 | Stock engine |
| Kitchen foil · 10 metres | 0 | 0 | 0 | 0 | 0 | Tie |
| Basket totals | 234 | 252 | 240 | 36 | 30 | 16 tied lines |
13 Aug · 24 vs 34 units off
All figures below are sellable units. Gap = absolute difference from “needed”.
| Product | Stock engine | You | Units needed by Thursday | Stock engine gap | Your gap | Closer |
|---|---|---|---|---|---|---|
| Semi-skimmed milk · 2 litres | 18 | 24 | 19 | 1 | 5 | Stock engine |
| Whole milk · 2 litres | 6 | 6 | 4 | 2 | 2 | Tie |
| Natural yoghurt · 500 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Cheddar · 250 g | 6 | 6 | 6 | 0 | 0 | Tie |
| Free-range eggs · box of 6 | 12 | 12 | 12 | 0 | 0 | Tie |
| Butter · 250 g | 0 | 0 | 0 | 0 | 0 | Tie |
| Orange juice · 1 litre | 6 | 12 | 12 | 6 | 0 | You |
| White sliced loaf | 18 | 12 | 14 | 4 | 2 | You |
| Wholemeal sliced loaf | 12 | 18 | 16 | 4 | 2 | You |
| Soft rolls · pack of 4 | 6 | 6 | 6 | 0 | 0 | Tie |
| Plain croissants · pack of 2 | 0 | 6 | 1 | 1 | 5 | Stock engine |
| Still water · 500 ml | 24 | 24 | 24 | 0 | 0 | Tie |
| Cola · 330 ml | 24 | 24 | 24 | 0 | 0 | Tie |
| Lemonade · 330 ml | 12 | 12 | 12 | 0 | 0 | Tie |
| Apple juice · 1 litre | 0 | 0 | 0 | 0 | 0 | Tie |
| Pasta · 500 g | 12 | 6 | 12 | 0 | 6 | Stock engine |
| Chopped tomatoes · 400 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Baked beans · 400 g | 12 | 6 | 11 | 1 | 5 | Stock engine |
| Long-grain rice · 1 kg | 0 | 0 | 0 | 0 | 0 | Tie |
| Ready salted crisps · 40 g | 24 | 24 | 24 | 0 | 0 | Tie |
| Milk chocolate · 100 g | 12 | 18 | 16 | 4 | 2 | You |
| Oat biscuits · 300 g | 0 | 6 | 1 | 1 | 5 | Stock engine |
| Toilet tissue · pack of 4 | 6 | 6 | 6 | 0 | 0 | Tie |
| Washing-up liquid · 500 ml | 0 | 0 | 0 | 0 | 0 | Tie |
| Kitchen foil · 10 metres | 0 | 0 | 0 | 0 | 0 | Tie |
| Basket totals | 234 | 252 | 244 | 24 | 34 | 16 tied lines |
20 Aug · 28 vs 28 units off
All figures below are sellable units. Gap = absolute difference from “needed”.
| Product | Stock engine | You | Units needed by Thursday | Stock engine gap | Your gap | Closer |
|---|---|---|---|---|---|---|
| Semi-skimmed milk · 2 litres | 18 | 18 | 20 | 2 | 2 | Tie |
| Whole milk · 2 litres | 6 | 6 | 4 | 2 | 2 | Tie |
| Natural yoghurt · 500 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Cheddar · 250 g | 6 | 6 | 6 | 0 | 0 | Tie |
| Free-range eggs · box of 6 | 12 | 18 | 17 | 5 | 1 | You |
| Butter · 250 g | 0 | 6 | 1 | 1 | 5 | Stock engine |
| Orange juice · 1 litre | 6 | 0 | 2 | 4 | 2 | You |
| White sliced loaf | 18 | 24 | 23 | 5 | 1 | You |
| Wholemeal sliced loaf | 12 | 18 | 17 | 5 | 1 | You |
| Soft rolls · pack of 4 | 6 | 6 | 6 | 0 | 0 | Tie |
| Plain croissants · pack of 2 | 0 | 0 | 0 | 0 | 0 | Tie |
| Still water · 500 ml | 24 | 24 | 24 | 0 | 0 | Tie |
| Cola · 330 ml | 24 | 24 | 24 | 0 | 0 | Tie |
| Lemonade · 330 ml | 12 | 12 | 12 | 0 | 0 | Tie |
| Apple juice · 1 litre | 0 | 0 | 0 | 0 | 0 | Tie |
| Pasta · 500 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Chopped tomatoes · 400 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Baked beans · 400 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Long-grain rice · 1 kg | 0 | 0 | 0 | 0 | 0 | Tie |
| Ready salted crisps · 40 g | 24 | 24 | 24 | 0 | 0 | Tie |
| Milk chocolate · 100 g | 12 | 18 | 13 | 1 | 5 | Stock engine |
| Oat biscuits · 300 g | 0 | 0 | 0 | 0 | 0 | Tie |
| Toilet tissue · pack of 4 | 6 | 6 | 6 | 0 | 0 | Tie |
| Washing-up liquid · 500 ml | 0 | 6 | 2 | 2 | 4 | Stock engine |
| Kitchen foil · 10 metres | 0 | 6 | 1 | 1 | 5 | Stock engine |
| Basket totals | 234 | 270 | 250 | 28 | 28 | 17 tied lines |
27 Aug · 25 vs 33 units off
All figures below are sellable units. Gap = absolute difference from “needed”.
| Product | Stock engine | You | Units needed by Thursday | Stock engine gap | Your gap | Closer |
|---|---|---|---|---|---|---|
| Semi-skimmed milk · 2 litres | 18 | 12 | 18 | 0 | 6 | Stock engine |
| Whole milk · 2 litres | 6 | 0 | 2 | 4 | 2 | You |
| Natural yoghurt · 500 g | 12 | 12 | 10 | 2 | 2 | Tie |
| Cheddar · 250 g | 6 | 12 | 11 | 5 | 1 | You |
| Free-range eggs · box of 6 | 12 | 12 | 12 | 0 | 0 | Tie |
| Butter · 250 g | 0 | 6 | 5 | 5 | 1 | You |
| Orange juice · 1 litre | 6 | 6 | 6 | 0 | 0 | Tie |
| White sliced loaf | 18 | 18 | 18 | 0 | 0 | Tie |
| Wholemeal sliced loaf | 12 | 12 | 12 | 0 | 0 | Tie |
| Soft rolls · pack of 4 | 6 | 6 | 6 | 0 | 0 | Tie |
| Plain croissants · pack of 2 | 0 | 0 | 0 | 0 | 0 | Tie |
| Still water · 500 ml | 24 | 24 | 24 | 0 | 0 | Tie |
| Cola · 330 ml | 24 | 24 | 24 | 0 | 0 | Tie |
| Lemonade · 330 ml | 12 | 12 | 12 | 0 | 0 | Tie |
| Apple juice · 1 litre | 0 | 6 | 0 | 0 | 6 | Stock engine |
| Pasta · 500 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Chopped tomatoes · 400 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Baked beans · 400 g | 12 | 6 | 6 | 6 | 0 | You |
| Long-grain rice · 1 kg | 0 | 0 | 0 | 0 | 0 | Tie |
| Ready salted crisps · 40 g | 24 | 24 | 24 | 0 | 0 | Tie |
| Milk chocolate · 100 g | 12 | 6 | 11 | 1 | 5 | Stock engine |
| Oat biscuits · 300 g | 0 | 6 | 0 | 0 | 6 | Stock engine |
| Toilet tissue · pack of 4 | 6 | 0 | 4 | 2 | 4 | Stock engine |
| Washing-up liquid · 500 ml | 0 | 0 | 0 | 0 | 0 | Tie |
| Kitchen foil · 10 metres | 0 | 0 | 0 | 0 | 0 | Tie |
| Basket totals | 234 | 228 | 229 | 25 | 33 | 16 tied lines |
3 Sep · 27 vs 39 units off · The morning-sheet basket
All figures below are sellable units. Gap = absolute difference from “needed”. Stock engine quantities match the 31 August morning sheet exactly.
| Product | Stock engine | You | Units needed by Thursday | Stock engine gap | Your gap | Closer |
|---|---|---|---|---|---|---|
| Semi-skimmed milk · 2 litres | 18 | 12 | 12 | 6 | 0 | You |
| Whole milk · 2 litres | 6 | 6 | 8 | 2 | 2 | Tie |
| Natural yoghurt · 500 g | 12 | 18 | 12 | 0 | 6 | Stock engine |
| Cheddar · 250 g | 6 | 6 | 7 | 1 | 1 | Tie |
| Free-range eggs · box of 6 | 12 | 12 | 12 | 0 | 0 | Tie |
| Butter · 250 g | 0 | 0 | 0 | 0 | 0 | Tie |
| Orange juice · 1 litre | 6 | 0 | 5 | 1 | 5 | Stock engine |
| White sliced loaf | 18 | 24 | 23 | 5 | 1 | You |
| Wholemeal sliced loaf | 12 | 12 | 12 | 0 | 0 | Tie |
| Soft rolls · pack of 4 | 6 | 6 | 6 | 0 | 0 | Tie |
| Plain croissants · pack of 2 | 0 | 6 | 5 | 5 | 1 | You |
| Still water · 500 ml | 24 | 24 | 24 | 0 | 0 | Tie |
| Cola · 330 ml | 24 | 24 | 24 | 0 | 0 | Tie |
| Lemonade · 330 ml | 12 | 12 | 12 | 0 | 0 | Tie |
| Apple juice · 1 litre | 0 | 6 | 1 | 1 | 5 | Stock engine |
| Pasta · 500 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Chopped tomatoes · 400 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Baked beans · 400 g | 12 | 12 | 12 | 0 | 0 | Tie |
| Long-grain rice · 1 kg | 0 | 6 | 0 | 0 | 6 | Stock engine |
| Ready salted crisps · 40 g | 24 | 24 | 24 | 0 | 0 | Tie |
| Milk chocolate · 100 g | 12 | 6 | 11 | 1 | 5 | Stock engine |
| Oat biscuits · 300 g | 0 | 0 | 0 | 0 | 0 | Tie |
| Toilet tissue · pack of 4 | 6 | 0 | 6 | 0 | 6 | Stock engine |
| Washing-up liquid · 500 ml | 0 | 6 | 5 | 5 | 1 | You |
| Kitchen foil · 10 metres | 0 | 0 | 0 | 0 | 0 | Tie |
| Basket totals | 234 | 246 | 245 | 27 | 39 | 15 tied lines |
This simple score does not account for cost, margin, shelf life, waste or lost sales. A real trial would measure those separately.