Working with sources
One item, many pack sizes
On 2026-09-07 Canada's wholesale feed listed tomatoes under 29 pack descriptions. Why the site keeps every one apart, and how to pick the series you buy.
- Published
- Figures measured
- Read
- 4 min
- By
- Novus Stream Solutions
Search this site for tomatoes in Canada and you get a wall of rows with different numbers on them. They are not disagreeing with each other and none of them is wrong. Each one is the price of a different physical thing, and the difference is written in a field most people skim past: the pack description.
The pack description is part of the price's identity
Agriculture and Agri-Food Canada publishes its daily wholesale quotes with the trade's own pack notation attached. On the reading below, tomatoes alone appeared under twenty-nine distinct pack descriptions. These are the busiest of them.
| Pack description | Observations | First observed | Latest observed |
|---|---|---|---|
| Flat 12X1 Pt | 346 | 2025-08-04 | 2026-09-03 |
| Ctn 11 lbs | 227 | 2025-08-04 | 2026-09-03 |
| Ctn 25 lbs 5X6 Xlge | 177 | 2025-08-04 | 2026-09-03 |
| Ctn 25 lbs | 156 | 2025-08-04 | 2026-09-03 |
| Ctn 25 lbs 6X7 Med | 129 | 2025-08-04 | 2026-09-03 |
| Ctn 25 lbs 6X6 Lge | 128 | 2025-08-04 | 2026-09-03 |
| Ctn 10 lbs | 115 | 2025-08-04 | 2026-09-03 |
| Ctn 20 lbs | 93 | 2025-08-04 | 2026-09-01 |
Measured Sep 7, 2026 from market_observation, provider aafc_ca, item Tomatoes, grouped by original_unit. This data is re-ingested daily, so treat these as a snapshot rather than a live count.
Look at the three twenty-five pound cartons in the middle. Same weight, three separate series, because the trailing grade in the description distinguishes them and the source prices them separately. Averaging those three together would produce a number that describes no purchase anyone could make.
How much of this there is, and where
Pack fragmentation is a property of the provider, not of food. Some agencies publish per kilogram and are done with it. Others publish the trade's notation as they receive it.
| Provider | Pack descriptions | Item names |
|---|---|---|
| AAFC Canada | 360 | 113 |
| USDA MyMarketNews | 191 | 181 |
| DEFRA UK | 5 | 54 |
| EU Agri-food | 2 | 5 |
| ABS Australia | 1 | 26 |
| FAOSTAT | 1 | 5 |
| MAFF Japan | 1 | 93 |
Measured Sep 7, 2026 from market_observation, grouped by provider_id. This data is re-ingested daily, so treat these as a snapshot rather than a live count.
The two extremes are worth naming. The Canadian feed carries more pack descriptions than it does item names, so the average item there spans several packs. The UK feed publishes most of its rows per kilogram, and the rest under a handful of counting units for things not sold by weight, so a UK item is usually one series and easy to follow.
Why nothing here is converted to a price per kilogram
The obvious wish is for the site to divide everything through to a common unit so the numbers line up. It does not, and the reason is in the table above rather than in anyone's preference: many of these descriptions contain no weight to divide by. A count of twenty-four in a carton is a count of twenty-four, and the source does not say what one of them weighs. Guessing a weight would put an invented figure into a series whose entire value is that it was not invented.
- Distinct pack descriptions across all providers
- 560
- Rows carrying a normalized unit
- 0
- Rows carrying a normalized price
- 0
Measured Sep 7, 2026 from market_observation, counting the rows that hold a value in each normalization column. This data is re-ingested daily, so treat these as a snapshot rather than a live count.
The comparison therefore runs on the provider's own string. Two observations are in the same series only when the country, provider, item name, economic level, market, unit and currency all match, and the unit in that list is the pack description exactly as published. That is what stops a movement being calculated between a five pound carton and a fifty pound bag.
Working with it
- Find the pack description closest to what you actually receive, and treat that as your series. If you buy twenty-five pound cases of large round tomatoes, the extra-large series is a different product for this purpose.
- Stay in it. The value of a series is the movement over time, and switching packs halfway through turns a price change into a packaging change.
- Do not average across pack descriptions to get a headline number. If you need one figure for a category, take the percentage movements, which are comparable across packs, rather than the prices, which are not.
- Check the market field before comparing two rows from the same country. Some providers name the market a quote came from and some leave the field empty, and the market is one of the seven fields the comparison matches on.
- Read the unit off the card. Every card on the data explorer prints the currency and the pack description beside the value, so you never have to assume which series you are looking at.
None of this is friction for its own sake. It is the difference between a movement you can take to a supplier conversation and a movement that evaporates the moment someone asks which pack it was. If you are turning one of these series into a plate cost, the calculators take your own numbers and never store them, and the methodology page sets out the rest of the comparability rules.
Reproducing these figures
Every number above was read on September 7, 2026. Re-running these gives a different result on a later day, which is the point: the figures are dated so they can be checked rather than trusted.
- Pack descriptions per item: group market_observation by provider_id and original_unit and count the distinct values against provider_item_name.
- The tomato table: filter market_observation to provider_id aafc_ca and provider_item_name Tomatoes, group by original_unit, and count.
- The normalization columns: count how many rows hold a value in normalized_unit and in normalized_price.
- On the site itself, every card on /data prints its currency and its unit beside the value, so any row here can be checked without a query.
Sources
Read next
Reading the data
What this food price data is a price for
Every observation here is a wholesale, producer or index figure from an official source, and none is a retail price. Which one you are reading changes what it means.
- Published
- Figures measured
- Read
- 5 min