Dataset notes

Vegetable prices across Kenyan markets

In the window from 26 September to 25 October 2026, median retail prices ran from 40 shillings a kilogram for cabbages to 120 for fresh peas, and managu's county medians ranged from 40 in Kirinyaga to 400 in Bomet.

What the vegetable slice holds

Vegetable prices in Kenya are part of a bigger table. The platform's Kenyan price dataset (the official market price table) records wholesale and retail prices per market and day for about 195 commodities. All 47 counties are covered, and rows go back to May 2021. Vegetables are one group in that table, and in the latest window there are twelve: tomatoes, cabbages, dry onions, carrots, kales, managu (African nightshade), capsicums, spinach, fresh peas, butternut, cucumber and French beans.

Every row has a commodity, a market, a county, a date, a price type (retail or wholesale), and a price. Weight prices are stored per kilogram no matter what unit the market quoted, so a trader's crate or a 90 kg bag comes through as a per-kilogram figure. That conversion happens once, upstream of the user. It matters more for vegetables than for grain because the units quoted at a county market are less standard than a bag of maize. What a developer reads is shillings per kilogram, full stop.

Coverage needs a careful sentence. Forty-seven counties are covered, but that does not mean every county reports every vegetable every day. Counties report when they report, and if a vegetable isn't traded in a market on a given day, there's no row. The honest description is counties covered, markets reporting, reports counted. The data box below gives those figures for each vegetable, so a reader can judge each median by what sits behind it.

The table doesn't hold two things: a volume field and a grade field. A row says what a kilogram of tomatoes retailed for in a named market on a named day. It doesn't say how many kilograms moved, whether they were graded, or whether the seller was a farmer or an intermediary. Every question below hits one of those two absences sooner or later.

Window 26 September to 25 October 2026
40 KSh/kg
cabbages retail median, 168 reports, 12 counties
70 KSh/kg
tomatoes retail median, 42 markets, wholesale median 50
80 KSh/kg
managu retail median; county medians 40 Kirinyaga to 400 Bomet
120 KSh/kg
fresh peas retail median, 15 markets in 5 counties
Chart: Agriculture Data, from platform data

The latest window, counted

Between 26 September and 25 October 2026, all twelve vegetables had at least 15 retail reports. Median retail prices ran from 40 shillings per kilogram for cabbages to 120 for fresh peas.

The report counts tell you how firm each median is. Tomatoes and cabbages sit at the top with 168 retail reports each, from 42 and 43 markets across 12 counties, plus 138 wholesale reports apiece. Dry onions are close behind: 166 retail reports from 41 markets in 12 counties, with 143 wholesale reports, the largest wholesale count in the group. Those three are the vegetables an analyst can lean on. Carrots (129 reports, 29 markets, 9 counties), kales (131 reports, 33 markets, 11 counties) and managu (117 reports, 28 markets, 11 counties) make up a second tier. Then the counts fall away: spinach 103, capsicums 91, butternut 70, fresh peas 57, cucumber 43, French beans 38.

The 30-day change column is quiet. Eight of the twelve show +0 percent against the 30 days before. Cabbages moved +12 percent, butternut +14, dry onions -10, cucumber -17. A flat median across most of the group is worth recording, because a casual reader pictures Kenyan vegetable prices as constantly moving. Wholesale medians sit below retail for every vegetable, and both types are recorded for the same vegetable in the same window. So a reader never has to guess which one a number refers to.

Managu in Bomet at 400 shillings

The figure a reader would not expect is managu. The retail median across 28 markets in 11 counties is 80 shillings per kilogram, an unremarkable number sitting between carrots and capsicums. County medians run from 40 in Kirinyaga to 400 in Bomet. That is a tenfold spread, 400 divided by 40, within one vegetable in one 30-day window. No other vegetable in the group comes close. Cabbages run from 20 in Meru to 100 in Kwale, 100 over 20, fivefold. Tomatoes run from 40 in Embu to 120 in Bomet, threefold.

Managu is African nightshade, one of the indigenous leafy vegetables. A Springer-published study of African indigenous vegetables and gender in Kenya calls that sector informal. It finds no precise annual aggregate production data and no data on the share of production sold at markets. It also notes that women grow most of these crops and that they are increasingly sold commercially. That matters when you read 400 shillings in Bomet. A price table is the only systematic measurement of this crop group that exists. There is no production series to set it against. So the number cannot be checked against a supply figure, because the supply figure has never been collected.

The point you can make is narrower. A county median is only as good as the markets that reported during the window. Suppose Bomet's managu rows come from one or two markets on a handful of days. Then 400 is the median of a very short list. The platform publishes the counts so users can see that. It does not smooth the figure away. The responsible reading is that Bomet's managu rows in this window are an outlier worth querying market by market. It is not that managu in Bomet costs ten times what it costs in Kirinyaga. The second claim is the one that will get repeated. The first is the one the data supports.

There is a design lesson here. Builders of a county index from these rows should decide before the index exists what happens to a county whose median rests on a short list. Drop it, flag it, or weight it by report count. This window shows exactly what the alternative looks like. A dashboard paints Bomet dark red for managu and says nothing about how many rows produced the colour. That dashboard is reporting its own sampling. An insurer or a trader who acts on that colour has been handed a reporting artefact dressed as a price. The counts are in the table. Use them before the median, not after.

Retail against wholesale: a signal column, not metadata

Most price tables use price type as a label. The Kenyan evidence treats it as a signal. The 2025 study predicting Kenyan food prices with machine learning, archived in PMC trained its models on a long-running public food price series that covers January 2006 to September 2024. It also used Central Bank of Kenya exchange rates in US dollars and inflation rates. Its SHAP feature-importance analysis, reported in Frontiers in Artificial Intelligence found unit quantity, price type, commodity and currency to be the intuitive drivers of price. Geographical factors such as county had a lesser impact. Price type sits in the top four. County does not.

The gap between the two price types shows up in the window. Subtract wholesale median from retail median: tomatoes give 70 minus 50, or 20 shillings; cabbages 40 minus 30, or 10; dry onions 90 minus 68, or 22; capsicums 100 minus 70, or 30; butternut 80 minus 50, or 30; cucumber 83 minus 60, or 23. As a share of retail price, tomatoes carry a gap of 20 over 70, about 29 percent; cabbages 10 over 40, 25 percent; butternut 30 over 80, 37.5 percent. These are medians of different report sets (138 wholesale against 168 retail for tomatoes), not matched pairs from the same stall on the same day. Each gap is a group-level description, not a margin any single trader earned.

Kenya has recorded both price types side by side before. A CGIAR highlights report on wholesale and retail prices for November 2021 presents both for maize, beans, potatoes, rice and wheat in major markets. The official market table adds the same pairing for vegetables, per market and per day, with the counts attached. For a lender pricing a trader's stock or an insurer indexing a vegetable contract, the first question is which price type the index uses. Picking retail when the exposure is wholesale puts an error of the size worked out above into the contract before anything else goes wrong. That error runs from a quarter to over a third of the retail price.

County spread reads as trade geography before it reads as shortage

The same SHAP result works against the habit of reading county differences as the main story. In the Kenyan model, county mattered less than unit, price type, commodity and currency. The county spread in this window is wide. It is also the column most easily over-read.

Take tomatoes: 40 in Embu, 120 in Bomet; dry onions: 80 in Embu, 120 in Bomet; cucumber: 60 in Kirinyaga, 171 in Kakamega. The same counties keep showing up at the ends of the ranges. Kirinyaga or Embu holds the low county median for eleven of the twelve vegetables. Cabbages, lowest in Meru, are the exception. Bomet, Kakamega and Migori together hold the high median for eight of the twelve. That pattern looks like one geography of production and trade, not twelve separate supply stories. A UC Davis review of regional fresh fruit and vegetable trade in East Africa states that its price data maps well to intra-regional trade flow data. That is the same observation from the other side: where prices sit tells you which way produce moves.

The evidence from the neighbours points the same way. None of it is Kenyan data, though. Econometric work from Rwanda in the PMC study finds that regional markets for bananas and potatoes are co-integrated, so local shocks travel through the trade network. The Frontiers version puts Ugandan spatial pricing down to market inefficiencies and infrastructure constraints. Neither result carries over to a Kenyan county. Both make the case for reading a spread as a network first, and as a shortage second.

Mechanics matter here as well. The earlier piece on the commodity table showed how the mix of markets that happened to report can account for part of a 30-day move. A county median is just the median of whichever markets in that county sent rows. Suppose a high-priced market in Kakamega reported on more days than a low-priced one. The county median rises, even though not one kilogram of carrots changed hands at a different price.

Where the table is thin

In this window, French beans rest on 38 retail reports from 9 markets in 3 counties. County medians run from 100 in Embu to 120 in Uasin Gishu. Fresh peas rest on 57 reports from 15 markets in 5 counties. Those numbers are real and honestly counted, but they are thin. A three-county median describes a region made of those three counties, wherever they are. It should never be written up as a Kenyan French bean price.

Thinness changes how you read the change column. Cucumber shows -17 percent, the largest move in the group, on 43 retail reports from 15 markets in 8 counties. Cabbages show +12 percent on 168 reports and 43 markets. A large shift in reporting markets would be needed to move the cabbage figure. The cucumber figure could move if a few markets dropped out or joined. The percentage column does not know any of this. The report count does. Read the two together, every time. Nine counties carry carrot reports. The other 38 of the 47 covered carry none. A missing county row means no market there sent a carrot row. That is a statement about reporting, not about the vegetable. Treat absence as zero, and the table becomes a map of where enumerators work.

Bags, kilograms and the 1997 problem

Kenyan prices have not always been recorded in kilograms. FAO's special report on Kenya from May 1997 quoted maize in the Nairobi market on 30 April 1997 at 1 500 Kenyan Shillings per 90 kg bag, 108 percent above a year earlier, and beans at 6 200 shillings per bag, up 206 percent. Those were wholesale quotes per bag, given for April 1996, October 1996 and April 1997. The modern vegetable table speaks in shillings per kilogram. Put the two side by side without a conversion step and the levels sit far apart for no reason connected to any market. No conversion is performed here. The point is that the datasets do not perform it either. Any long-run series stitched across the two conventions has to show its own arithmetic.

The platform converts once, on the way in. It stores weight prices per kilogram whatever unit the market quoted, 90 kg bags included. For vegetables, that is the difference between a usable column and a column of crates, bunches and heaps.

Units also set what a price can be compared with. KIPPRA's policy note on rising food prices in Kenya records food inflation reaching 13.8 percent in the year to June 2022, from 6.32 percent in June 2021. It lists potatoes, onion and carrot among the basket items driving that inflation and records an 8.8 percent depreciation of the shilling over the same year. The official market table begins in May 2021, so its onion and carrot rows bracket that whole year. The inflation figure is an index over a national basket. The table's rows are per-kilogram observations in named markets. They answer different questions. Comparing them means naming which one you are asking.

Questions the table can take

The table answers questions about prices as recorded. What did a kilogram of kales retail for in Migori markets in the window? Which county had the lowest spinach median? How far below retail is wholesale for capsicums, and on how many reports? Does the organic premium show up? That last question is tempting. An economic analysis of smallholder organic vegetable farmers in Kiambu and Kajiado, covering 215 farmers, found organic prices higher than conventional for every vegetable studied. The table has no organic flag, so within its own rows it cannot confirm or refute that. A user with an organic sample of their own could set it against the conventional county median. The table supplies the baseline and nothing more.

The platform can't tell you how much was sold. There's no volume field, and managu has no production series anywhere to borrow one from. It can't say what a price will be. What it does give you is observations and arithmetic on those observations. A forecast was built and tested against carrying today's figure forward. It lost, so it was not shipped. The Kenyan modelling literature hints at why vegetables are hard: a SARIMA model on Nairobi wholesale tomato prices in the Frontiers study reported a mean absolute percentage error of 125.251. It also can't say why Bomet's managu rows came in at 400. It can only say they did.

For a data user, the table sits alongside the platform's other layers. Weather and soil rows at field level come from NuaSense's own sensor network, described on the NuaSense products page. Those rows answer only for the devices on the account that owns them. The market rows are public. Anyone with a free key can read the per-market record. The vegetable slice is the part of the catalogue with the widest commodity range and the thinnest coverage at the edges. Counts are published so you can tell which edge you are standing on.

Sources

  1. Predicting food prices in Kenya using machine learning, PMC, National Institutes of Health. Price series period January 2006 to September 2024; Rwandan co-integration finding
  2. Predicting food prices in Kenya using machine learning, Frontiers in Artificial Intelligence. SHAP ranking of price type above county; SARIMA tomato MAPE 125.251; Ugandan spatial pricing
  3. African indigenous vegetables, gender, and the political economy, Springer. AIV sector informal, no aggregate production or market share data; grown mainly by women
  4. Four Ways to Address the Rising Food Prices in Kenya, KIPPRA. Food inflation 13.8 percent June 2022 from 6.32 percent; basket items; 8.8 percent shilling depreciation
  5. Special Report on Kenya 05/97, FAO. 1997 maize and bean quotes per 90 kg bag
  6. Economic analysis of smallholder organic vegetable production, AGRIS, FAO. 215 farmers in Kiambu and Kajiado; organic prices higher for all vegetables studied
  7. Highlights Overall Wholesale and Retail Prices for November, CGSpace, CGIAR. Wholesale and retail recorded side by side for staples in November 2021
  8. Regional Trade in Fresh Fruits and Vegetables in East Africa, UC Davis Horticulture. Price data maps well to intra-regional trade flow data

Questions we get asked

Are the Kenyan vegetable prices retail or wholesale?

Both. Each row carries a price type, and in the 26 September to 25 October 2026 window every one of the twelve vegetables has a retail and a wholesale median, with report counts for each.

What unit are vegetable prices stored in?

Shillings per kilogram for every weight-priced commodity, whatever unit the market quoted. Volume prices are stored per litre.

How far back do the vegetable rows go?

The official market table runs from May 2021, which is enough history to compute per-county seasonality for a vegetable rather than relying on a single 30-day change.

Can I get a vegetable price forecast from the platform?

No. The platform serves observations and arithmetic on them. A forecast was tested against carrying the current figure forward, lost, and was not shipped.

Why does a county have no row for a vegetable in a given window?

No market in that county sent a row for that vegetable in the window. It is a statement about reporting, not about whether the vegetable was sold there.

Pull the vegetable rows yourself

A free account opens the market layer and the full catalogue with no payment details. Query any of the twelve vegetables by market, county, date and price type, with the report counts attached.

Get an API key