Skip to content

Part 3 of 7 · Shelf price checker series ~5 min read

Matching a label to the till, at the moment of the photo

A label record says what the shelf says. On its own it cannot be wrong, because wrong is a relationship: between this label, the product it sits under, and the price the till would have charged for that product at the moment somebody could have picked it up.

Key takeaways

  • Match by barcode where you can, shelf code next, description and position last.
  • Position is evidence. A correct label under the wrong product is a wrong price.
  • Prices are dated versions. Compare with the version in force at the photo’s time.
  • Promotions end at a moment, and a label can outlive its promotion by months.
  • A product with a loyalty price has to show both prices, so a label can be right and incomplete.

Three ways to know which product a label is for

Three routes from a shelf-edge label to a product and its price at the timeThree boxes on the left feed one box on the right. Barcode on the label, meaning the digits under it read from the image, described as exact when legible. Shelf code, the store's own item number printed small, described as exact but often faded. Description and position, meaning name, size and the bay it sits in, described as a candidate. All three converge on A product at a moment: which line, and when it was photographed. That feeds a box labelled The till price then: the price and promotion in force at that time. A note says the third route never matches on its own; it proposes a candidate, and the planogram confirms it by saying that product belongs in that bay.Barcode on the labelthe digits under it,read from the imageexact, when legibleShelf codethe store's own itemnumber, printed smallexact, often fadedDescription and positionname, size, and thebay it sits ina candidateA product at a momentwhich line, and whenit was photographedThe till price thenprice and promotionin force at that timeThe third route never matches on its own. It proposes a candidate, and the planogram confirms it by saying that product belongs in that bay.
Fig 1. Three routes to one product, then one question: what would the till have charged for it at that moment.

Position is part of the match

The planogram already says which products belong in which bay, and in what order. A label record carries its bay and its position in the frame, so a label for a 400 gram tin sitting under the 800 gram tin of the same brand is detectable even though every character printed on it is correct.

The first full walk found 33 labels like that, 22 of them showing less than the till would charge for the product actually above them. They are the most misleading mismatch there is. The label is right about a product that is not there, and the customer reaching for the one that is reads the wrong price with complete confidence. Reprinting every label in the store fixes none of them, because the new labels would be correct too.

How the labels were matched

Labels found in one walk, grouped by how the product was identifiedFour vertical bars showing the labels found in one full walk, grouped by how the product was identified. Barcode accounts for three thousand three hundred and forty-five labels. Shelf code accounts for five hundred and twenty-nine. Description and position accounts for two hundred and eighty-seven. Not matched accounts for one hundred and fifty-five. A note says the last bar is the ninety-one labels nobody could read and sixty-four labels for lines the store no longer sells, and neither has a till price to compare with.01000200030004000~3345Barcode~529Shelf code~287Description~155Not matchedLabels found in one full walk, by how the product was identifiedThe last bar is the 91 labels nobody could read and 64 labels for lines the store no longer sells. Neither has a till price to compare with.
Fig 2. The same 4,316 labels, grouped by how each was tied to a product. More than three in four carried barcode digits the camera could read.

The price in force at the moment of the photo

The till price file is not a list of prices; it is a list of price versions, each with the moment it took effect. The comparison looks up the version in force at the photo’s timestamp. That sounds pedantic until a walk runs across a price change, which in a business that changes prices on Tuesday night and walks on Wednesday morning is nearly every walk.

Compare the Wednesday photo with the price file as it stands on Friday and every change keyed on Thursday shows up as a wrong label. Worse, every price rise among them shows up in the direction that looks like a compliance problem, so the most urgent list fills with mismatches that never existed on the shelf. Versioning prices costs one sort key, and it removes that whole category of false alarm.

Promotions are prices with an end

A promotions calendar entry says which products, which mechanic, which stores, and from when until when. The price the till charges inside that window is the promotional one; outside it, the base price. A label reading 2 for £3 photographed the day after that promotion ended is therefore a label promising a price the till no longer gives.

The end is worth pinning down precisely, because calendars disagree about what the last day means. One system ends a promotion at close of trade on the end date, another at midnight, another when the next cycle starts. The checker stores the end as a moment rather than a date, taken from what the till actually does, and a promotion label photographed after that moment is flagged whatever it says.

What the comparison records, per label

  • Product. The line it was matched to, and by which route.
  • Price version. The till price record in force at the photo’s time.
  • Promotion. Any promotion live at that moment, with its end.
  • Label price. Parsed from the printed characters, in pence.
  • Difference. Till minus label, per unit, with its sign kept.
  • Planogram check. Whether that product belongs in that bay at all.

More than one price

Since the Price Marking Order amendments took effect in April 2026, a product offered at more than one selling price, such as a lower price for members of a loyalty scheme, has to show each price and each unit price, with the conditions displayed close to the product. So a label is compared with every price the till can charge for that line at that moment, and a label missing one of them is a fault even when the price it does show is right.

The next post decides what to do with the mismatches, and it starts from the uncomfortable fact that the biggest differences are rarely the most urgent ones.

All posts