Price data

Commodity data from East Africa: market prices and auction results

Kenyan county rows cover about 195 commodities across 47 counties since May 2021, yet only 12 counties reported in the latest 30 days. A worked month-on-month comparison of 69 commodities shows how round-shilling pricing inflates the percentage moves.

What the dataset holds, and how the pieces are stitched together

First get the shape right. The usual mistake with East Africa commodity data is assuming it is one series. The platform's price dataset is several datasets. At the core is the official market table: retail prices, wholesale prices, and the supply volume that arrived, recorded per market and per day. Around it sit asking prices from an online marketplace, a monthly humanitarian series, and coffee and tea auction results per grade and sale. All of these are merged into one vocabulary. Each row carries a source tag, so you can tell them apart. Filter on the tag before you average anything.

The system normalises units as they come in. A weight price is stored per kilogram. A volume price is stored per litre. That holds no matter what unit the market quoted, and it includes the 90 kg bag. You do not have to divide a bag price yourself. Just know that the division has already been done. Auction results settle in US dollars. They are stored per kilogram in dollars and in shillings, using the exchange rate on the sale date.

Kenyan county prices go back to May 2021. They cover about 195 commodities across all 47 counties. Fertilizer is recorded at market level in 29 counties. Treat that as coverage, not as cadence. Counties do not all report every day. In any given week, only a handful carry a fresh fertilizer price. A county that is covered has shown up in the table. It does not report each morning.

The Kenya commodity and fertilizer prices by market page explains the table and its fields. The East Africa market prices by month page explains the monthly regional series. That series is a different instrument with a different grain. The sections below draw on both, and each time they say which one is which.

The latest window as a worked example

This example is a month-on-month comparison. It is built so anyone who has the rows can repeat it. For each commodity, take the median of all retail reports in the latest 30 days, which end on 4 October 2026. Compare that with the median for the 30 days before 4 September 2026. Keep only commodities with at least 15 reports in both windows. Those reports must come from three or more counties. Sixty-nine commodities pass that filter.

Latest rows, official market table
5,695
retail price reports, 5 September to 4 October 2026
125
commodities in that window
50 / 12
markets / counties reporting in that window
15 / 17 / 37
of 69 commodities: dearer by more than 5%, cheaper by more than 5%, moved less
Chart: Agriculture Data, from platform data

The latest window is narrower than the table's full history. The table reaches 47 counties and about 195 commodities since May 2021. Over the latest 30 days, only 12 counties and 50 markets sent retail reports. Those reports covered 125 commodities. Both things are true. The first describes what the dataset can hold. The second describes what arrived this month.

The split is balanced at the edges and heavy in the middle. Fifteen commodities became more expensive by more than 5 percent. Seventeen became cheaper by more than 5 percent. Thirty-seven moved less. So prices neither rose nor fell as a group. More than half the filtered commodities stayed inside a 5 percent band.

Treat those 69 as a filtered subset, not as the market. Commodities with thin reporting drop out by construction. The same filter that protects the medians also hides the rarer items.

The movers, and the figure you would not expect

Among the 69, the largest rises were cabbages at +31 percent, with a median of 40 shillings per kilogram against 31, from 164 reports in 11 counties. Fresh peas rose 20 percent, from 100 to 120 shillings per kilogram (68 reports, 9 counties). Jute plant murenda also rose 20 percent, from 100 to 120 (18 reports, 5 counties). Green maize rose 17 percent, from 60 to 70 (54 reports, 8 counties).

Thorn melon posted the sharpest drop, -25 percent, from 80 down to 60 shillings per kilogram (48 reports, 6 counties). Okra fell 23 percent, from 130 to 100 (28 reports, 5 counties). Managu (African nightshade) dropped 20 percent, from 100 to 80 (103 reports, 10 counties), and coriander (dhania) also fell 20 percent, from 100 to 80 (59 reports, 9 counties).

The surprise sits in the medians. Take the pairs: 100 and 120, 100 and 80, 80 and 60, 60 and 70. Retail prices are quoted in round shillings. So a median lands on a round number, then jumps to the next one. A move from 100 to 120 is 20 percent by arithmetic (20 divided by 100). A move from 80 to 60 is 25 percent down (20 divided by 80). The size of the percentage is partly a property of the price step, not only of the market. If a commodity is priced at 100, it cannot show a small move at the median unless reports are spread unusually evenly.

That is why every figure above comes with report counts and county counts. Cabbages has 164 reports from 11 counties, so it carries more weight than murenda with 18 reports from 5. Both clear the filter. They do not clear it by the same margin, and a careful reader should not rank them as if they do.

Why part of a move can be the market mix

The comparison has a flaw, and naming it is better than finding it. The median is taken over all retail reports in each window, and the set of markets that report changes week to week. If a high-priced urban market reports heavily in one window and lightly in the next, the median shifts even when no price in any market has moved. The method describes change in the pool of reports. That pool is not fixed.

That matters most for commodities with few counties behind them. A median from 5 counties can swing when one county drops out. A median from 11 counties, as with cabbages, is steadier, though not immune. Treat the county count as a quality flag. Where it matters, rebuild the comparison on a fixed set of markets that reported in both windows. The table is keyed per market and per day, so the rows to do that exist.

It also explains why a 30-day window beats a week. One week can be dominated by whichever counties happened to report. Thirty days smooths the churn without removing it. For a series you can chart over a year, build it on a constant panel of markets, accept that it will be thinner, and write down which markets are in it.

A second caution concerns direction. A median that rises in a month is a fact about retail reports in that month. It is not an explanation. Official market rows record prices and the supply volume that arrived. They do not record why a market was short or long. If you want to say cabbages rose because of supply, bring evidence from outside the price rows. The volume field is a clue to check, not a verdict.

When you pull a figure from this table, you are making a claim about reports from named counties in a named window. How many counties and how many reports sit behind it decides how big that number honestly is.

Two price systems, and the granularity gap between them

There are two kinds of commodity price data, and writing that mixes them misleads readers. The IMF Primary Commodity Prices updates every month. It includes country-specific commodity-price indices for 182 economies from 1962. Every index uses commodity-level trade data to weight the change in the international price of up to 45 individual commodities. That is a rigorous macro instrument. It tells you what happened to world prices, weighted by what a country trades.

It does not tell you what a trader paid for green maize in a Kenyan market on a given day. The 182 economies, 45 commodities and the 1962 start all belong to the IMF system. None of them describe the market-level rows on this platform. The market table is local, per market and day, in shillings per kilogram. The IMF series is monthly, international and an index.

The European Central Bank working paper on common factors of commodity prices uses a dataset of spot prices for 52 internationally traded commodities. Those cover food, beverages, agricultural raw materials and metals. Here too, the unit of analysis is a world price. It suits the question of whether global forces move together. It is the wrong tool for asking why okra fell at county level.

Exchange prices do a different job as well. The Library of Congress guide to commodities markets describes CME Group and ICE as exchanges whose published prices are used to price deals made outside the exchange. A market-level retail price does that for no one. It records where a transaction cleared, in a place, on a day.

Analysts lose time in the gap between those kinds. Joining a monthly international index to a county median looks tidy, and it is mostly a join on the calendar. If you do it, say the two series measure different things. Do not read a correlation between them as a pass-through rate.

Auction results, the other half of the table

Retail rows come from observations in markets. Auction rows come from observations at a sale. Coffee auction results from Nairobi carry minimum, average and maximum price per grade and sale, with bags and value. Tea results from Mombasa are held per sale as well. Both settle in US dollars and are stored per kilogram in dollars and in shillings at the sale date's exchange rate.

The latest tea row is the sale of 31 August 2026. At the Mombasa tea auction that day, all smallholder factories together averaged 2.68 US dollars per kilogram over 2,102 tonnes. The figure is a dollar price, so a shilling comparison with the retail table needs the stored exchange-rate conversion, not a guess. It is one sale, a single point, not a trend.

Auctions take breaks between seasons, so the gaps in this series are structural. When a coffee chart goes quiet, it is following the sale calendar. Calling those weeks zero, or stale, would be a mistake.

Grade is the other axis to respect. If you average across grades, you hide the spread that the minimum and maximum columns show. To value a lot, use the grade-level row. To describe the whole sale, the aggregate is fine, as long as you carry the volume behind it. In both cases, an auction price is what was paid at a sale. It is not a farm-gate price, and this table does not rebuild one.

Monthly regional series, and why sources seem to disagree

The monthly humanitarian series is coarser than the daily market rows. The Food Price Monitor for East Africa comes out monthly and covers selected maize and rice markets across the region. Monthly means monthly. Do not expect it to settle a week.

Cut-off dates and different vintages can look like contradictions. The ICPAC cross-border trade bulletin said maize and sorghum prices were above average in most regional markets in the first half of 2023. It tied that to below-average 2022/23 harvests and conflict-related disruption to production and market supply. In the second half of 2023, it reported maize grain and sorghum prices dipping below average in most markets. The AGRA food security monitor from March 2026 says Eastern Africa staple prices stayed above annual averages because of high fuel costs, currency depreciation and wider economic pressure, even though month-on-month movements were mixed. It also reports maize up 22 percent in Uganda and 14 percent in South Sudan.

These are not the same claim. One covers the second half of 2023; the other comes from a later monthly edition. Their baselines differ too, average across markets against annual average. Stack them into one story about whether prices are high, and you have joined unlike things.

Even within one country, the grain changes the answer. A Food Price Monitor edition from June 2023 noted Kenya's average weekly maize price fell steadily through the weeks of June, while average monthly prices moved differently. Weekly and monthly means for the same commodity can disagree.

What the data answers, and where it goes quiet

It answers questions like: what did retail and wholesale prices for this commodity look like in these counties over this window? It tells you how many counties and reports stand behind a median, how a commodity moved against the prior 30 days, what an auction grade fetched, and what the stored kilogram unit was. These are observation questions, and the data is built for them. The platform's field-level weather and soil rows come from NuaSense's own sensor network, which is separate from these price rows.

It cannot forecast. The platform gives you observations and arithmetic done on observations. A price forecast was built and tested against carrying today's figure forward. It lost, and it was not shipped.

It can't explain why a price moved. Nor can it turn a retail median into a farm-gate price. It can't give a daily price for every county either, since counties don't all report every day. In the latest window, 12 of the 47 counties the table has covered were present. That's a thin spot to price in before building a county ranking.

Regional context frames how the data gets used. The EAC trade information page reports a regional population of 305.3 million. It also puts 2023 intra-EAC trade at US$12.1 billion, 15 percent of the bloc's total trade. Price rows for a dozen counties are a small window onto that picture. That is how they should be described.

Sources

  1. IMF Primary Commodity Prices, International Monetary Fund. Monthly indices for 182 economies from 1962, weighting up to 45 commodities.
  2. Food Price Monitor: maize and rice in East Africa, Food Security Portal. Monthly report on selected maize and rice markets.
  3. East Africa cross-border trade bulletin, January 2024, ICPAC. Maize and sorghum prices above average in H1 2023, below in H2 2023.
  4. Food Security Monitor, edition 67, March 2026, AGRA. Staple prices above annual averages; maize up 22% in Uganda and 14% in South Sudan.
  5. Highlights: changing maize prices in East Africa, June 2023, Food Security Portal. Weekly versus monthly maize price behaviour in Kenya.
  6. Common factors of commodity prices, European Central Bank. Dataset of spot prices for 52 internationally traded commodities.
  7. Commodities Markets and Instruments, Library of Congress. Exchange ownership and the use of exchange prices outside exchanges.
  8. Trade Information Portals, East African Community. Regional population and 2023 intra-EAC trade figures.

Questions we get asked

How many commodities does the Kenyan market price table cover?

About 195 commodities across all 47 counties since May 2021. In the window from 5 September to 4 October 2026, 125 commodities had retail reports, from 50 markets in 12 counties.

What units are prices stored in?

Weight prices are per kilogram and volume prices per litre, whatever unit the market quoted, 90 kg bags included. Auction results are per kilogram in dollars and in shillings at the sale date's exchange rate.

Are prices reported daily in every county?

No. Counties do not all report every day, and only a handful carry a fresh fertilizer price in any week. Describe coverage as counties covered.

Does the dataset forecast prices?

No. It holds observations and arithmetic on observations. A price forecast was tested against carrying today's figure forward, lost, and was not shipped.

Can I compare the IMF commodity indices with county medians?

Only with care. The IMF series is a monthly international index; the market table is local, per market and day, in shillings per kilogram. They measure different things.

Read the price rows yourself

A free account opens the market layer, the full catalogue and the documentation. Check the report counts behind any median before you use it.

Get access