Which rows count as fruit
Kenya's fruit prices are a small part of a bigger table. On the platform, the official market price table has recorded wholesale and retail prices by market and day for about 195 commodities across all 47 counties since May 2021. Nowhere in that table is a commodity tagged as fruit. The platform decides the grouping, and the line is not clear. A November 2021 highlights sheet on wholesale and retail prices lists maize, beans, potatoes, rice and wheat together, and potatoes count as a vegetable in one trade and a staple in another. A botanist calls tomatoes a fruit; every trader in the country calls them a vegetable.
The platform's fruit group has ten commodities: bananas, oranges, watermelon, pineapples, mangoes, pawpaw, lemons, passion fruit, tree tomato and apples. It does not include tomatoes or potatoes. It leaves out avocados too. That matters because the Frontiers review of fruit and vegetable loss in Kenya records that mango production tripled and avocado production doubled between 2005 and 2014. If no market reports a fruit, it cannot be grouped. Before comparing any median, anyone who sets the fruit slice of the Kenya commodity price dataset against a fruit index built elsewhere should check the basket.
Shillings per kilogram, market by market, since May 2021
The table stores every price per kilogram, no matter what unit the market quoted. A bunch of bananas, a crate of oranges, a single pineapple sold by the piece: weight prices become a per-kilogram figure and volume prices a per-litre figure. That puts a Kirinyaga report and a Kisumu report in the same column with the same unit. This is the single most useful thing the dataset does. It is also the thing that most needs saying out loud, because the conversion turns the quoted unit into an assumption. Fruit is the worst case. A 90 kg bag of maize is a 90 kg bag of maize. A bunch of bananas is whatever the market said it weighed.
Every row has a market, a county, a date, a price type (retail or wholesale) and a price. Retail and wholesale sit in separate columns, not one price with a flag, and that separation is deliberate. The machine learning study of Kenyan food prices ran a SHAP feature-importance analysis on a Kenyan food price dataset from January 2006 to September 2024. It found that unit quantity, price type, commodity and currency drove price, while geographical factors such as county had a lesser impact. Read that as a design instruction. If price type explains more than county, a table that stores retail and wholesale as one figure has thrown away the stronger signal to keep the weaker one.
People misread coverage more often than anything else. The table covers all 47 counties, but counties do not all report every day, and no fruit is reported in every county in any given window. Say counties covered, never prices reported daily in every county. In the window described below, bananas have the widest fruit coverage at 12 counties. Passion fruit and tree tomato have the narrowest at 4 counties each. That is the official table's reach for fruit in one month, and it falls a long way short of 47. The series starts in May 2021. That is enough history to see seasons, but not enough for anyone to call a decade-long trend.
The window to 1 November 2026
From 3 October to 1 November 2026, all ten fruits in the group cleared the floor of 15 retail reports. Retail medians start at 50 shillings per kilogram for bananas and reach 200 for passion fruit and 200 for apples. The rest fall in between: watermelon at 54, pawpaw at 70, lemons at 70, mangoes at 79, oranges at 100, pineapples at 120 and tree tomato at 120. Wholesale medians sit below every one of those retail figures: bananas 35, watermelon 35, lemons 45, mangoes 47, oranges 50, pawpaw 50, tree tomato 80, pineapples 95, apples 150 and passion fruit 165.
Report counts show how much weight each median can bear. Bananas lead with 200 retail reports from 34 markets in 12 counties, plus 146 wholesale reports behind the wholesale figure. Watermelon has 114 retail reports from 32 markets in 11 counties, and oranges have 109 from 33 markets in 10 counties. Then the counts drop quickly: pineapples 69, pawpaw 67, lemons 64, tree tomato 48, mangoes 47, apples 44 and passion fruit 36. On the wholesale side, apples have 23 reports and passion fruit 26. A median of 200 shillings built from 44 reports is a real number. One large market changing its quote could also move it.
Against the 30 days before, pawpaw rose 40 percent, pineapples up 20, oranges up 9, mangoes and lemons up 8, and apples fell 20. Bananas, passion fruit and tree tomato did not change. Those are shifts in a median of reports, not in any one market's price.
Apples at 384 in Kakamega, bananas at 10 in Taita-Taveta
County medians are the useful part of this slice, and the easiest to misquote. Apples show it. The group median is 200 shillings per kilogram, but county medians run from 80 in Uasin Gishu to 384 in Kakamega. That county gap, inside one month, is wider than the gap between the cheapest and dearest fruit at the group-median level: bananas at 50 and passion fruit at 200, where 200 divided by 50 is a fourfold spread, while Kakamega's apple median is more than four times Uasin Gishu's. One commodity across counties varies more than ten commodities across the group.
Bananas do the same at the bottom of the scale. The group median is 50 and county medians run from 10 in Taita-Taveta to 100 in Bomet, so 100 divided by 10 is a tenfold spread. The 10-shilling figure is the surprise for a reader. It is a median of what Taita-Taveta markets reported in the window, converted to per kilogram. It could reflect a glut, a cheap variety, a unit conversion from a heavy bunch, or a small number of reporting markets. The table does not say which. A county median is only as good as the markets that reported in the window, and the platform publishes it with that caveat attached for exactly this reason.
Several other spreads are worth listing because the same counties keep appearing. Watermelon goes from 35 in Kirinyaga to 125 in Kisumu, and mangoes go from 50 in Uasin Gishu to 150 in Kisumu. Passion fruit goes from 80 in Uasin Gishu to 250 in Embu; tree tomato from 80 in Uasin Gishu to 150 in Kirinyaga. Pineapples go from 90 in Kirinyaga to 160 in Uasin Gishu, pawpaw from 50 in Kirinyaga to 100 in Uasin Gishu. Lemons go from 60 in Kirinyaga to 100 in Kitui, and oranges from 60 in Embu to 120 in Kirinyaga.
Look at the pairings. Uasin Gishu is the cheap end for apples, mangoes, passion fruit and tree tomato, and the dear end for pineapples and pawpaw. Kirinyaga is the cheap end for watermelon, pineapples, pawpaw and lemons, and the dear end for oranges and tree tomato. None of that supports a story about one county being expensive. It reads as supply geography, fruit by fruit: the county that grows a fruit sells it cheaply and pays for the fruit it has to bring in. That is the pattern the table can show. What it cannot show is the road the pineapples travelled. A reader who wants that has to bring trade data of their own.
Four counties is a range, not a distribution
Passion fruit is the clearest case of a thin slice. Its retail median of 200 shillings per kilogram rests on 36 retail reports from 10 markets in 4 counties. Its wholesale median of 165 rests on 26 reports. The county range from 80 in Uasin Gishu to 250 in Embu is real, but with four counties in play the range is the whole distribution. There is no middle to speak of. Tree tomato is the same (48 reports, 10 markets, 4 counties), and the same is nearly true for mangoes (47 reports, 15 markets, 5 counties) and apples (44 reports, 11 markets, 5 counties).
The simplest test is to ask how many counties would have to drop out before the median changed. For bananas, with 34 markets in 12 counties, one county going quiet barely moves the figure. For passion fruit, one county is a quarter of the coverage. The 15-report floor keeps the medians from being pure noise. It does not make a four-county median a national one, and the month-by-month East Africa price series will show the same fruit swinging as coverage shifts, not as prices do.
Thinness has a second face. Mangoes, a crop the Frontiers review says tripled in production over 2005 to 2014, appear in only 5 counties in this window. That is not evidence that mangoes are scarce. It is evidence that the official table captures mango trade in five counties' markets in a month that may sit outside the main season for most of the country. Seasonality is written into the report counts before it is written into the prices. The earlier piece on commodity data from East African markets and auctions made the same point about the coffee auctions pausing between seasons: absence in the table is a season, not an error.
Price type before county
Put the SHAP finding next to the county spreads and something interesting happens. The machine learning study ranked county below unit quantity, price type, commodity and currency as a driver of Kenyan food prices across a national dataset from 2006 to 2024. Yet apples span 80 to 384 across counties in a single month. Both can be true. County had lesser impact across the whole table, where staples with deep, well-arbitraged markets dominate the rows. Fruit is a small, perishable, poorly-arbitraged corner of that table. The spreads here are what a weak national signal looks like in the corner where it is strongest.
Price type carries the weight the model said it would. All ten wholesale medians sit below their retail medians: bananas at 35 versus 50, oranges 50 versus 100, apples 150 versus 200, passion fruit 165 versus 200. Those gaps aren't margins. Retail and wholesale reports come from different markets with different mixes. So the gap describes two populations of reports, not one trader's markup. The practical takeaway: key a model on price type and commodity first, then treat county as a residual to explain. Start with county, and your model will fit the apple spread beautifully one month, then fall over the next when Kakamega stops reporting apples.
A stall price is not a farmgate price, and the export trade is a different industry
A retail price of 120 shillings per kilogram for pineapples is a stall price, not a farmgate price. The gap between the two is wider for fruit than for grain. The Frontiers review of fruit and vegetable value chains in Kenya puts loss and waste at 30 to 40 percent, with reported upper limits as high as 70 percent. It also records that 80 percent of fruits and vegetables in Kenya are produced, distributed and marketed by smallholders, aggregators and traders facing financial and behavioural constraints. The same review finds adoption of low-cost postharvest practices is low for those reasons.
None of that is a dataset attribute. The 30 to 40 percent figure is a value-chain estimate from the literature, not a margin on any row. The table has no column for it. What it does is set the frame for the retail column: whoever sells a kilogram of pawpaw at 70 shillings in a county market has paid, somewhere upstream, for the pawpaw that did not survive the journey. A retail per-kilogram figure tells a lender or an insurer what consumers in that market paid in that window. It does not tell them what a grower received. And the gap is not recoverable from the table.
The domestic rows also behave nothing like export prices. The reason is structure. The FAO review of the non-traditional agricultural export literature reports that the top five exporters in Kenya and Zimbabwe control over 75 percent of fresh vegetable shipments overseas. It also reports that half of all produce exported by nine leading exporters came from their own farms, and that in the United Kingdom seven retailing chains control 70 to 90 percent of fresh produce imports from Africa. That is a concentrated, contracted, cold-chained trade. The fruit rows here come from open county markets with dozens of reporting stalls and a tenfold banana spread. Anyone who has priced Kenyan horticulture from export data is looking at a different industry. The same review notes how little of that literature deals with trade inside the region at all.
The questions ten fruit rows can settle
What the slice answers cleanly: the retail and wholesale median for each of ten fruits, per kilogram, in a named window. It also gives the report count, market count and county count behind each. It shows which counties reported each fruit and at what median. It shows how the median moved against the preceding 30 days. For a trader checking whether a quoted price in Kisumu is in line with other markets, or a programme team sizing a fruit component of a food basket in Embu, that is the question. And the table answers it with its coverage attached.
What it does not answer: the farmgate price, for the reasons above. It does not give a national average fruit price, because ten fruits across between 4 and 12 counties is not a national sample. It cannot say whether a 40 percent monthly rise in the pawpaw median is a trend, because one window is one window. The forecasting literature is blunt about how noisy these series are. The same machine learning study that ran the SHAP analysis reports an earlier SARIMA forecast of Nairobi wholesale tomato prices returning a mean absolute percentage error of 125.251. That is a model missing by more than the price itself. The platform does not forecast; it tested price prediction against carrying the current figure forward, lost, and did not ship it.
Consumption is also outside the table. A survey across East Africa cited in the Frontiers review found per capita fruit consumption ranging from 4 to 135 grams. The Teso South study of children's fruit intake across 48 farm households found unavailability of fruit and the inability to plant fruit trees in homesteads to be the main obstacles. Price rows cannot speak to any of that. The platform's field-level weather and soil rows come from NuaSense's own sensor network and sit in a different part of the catalogue. The fruit rows come from the official market table and carry only what that table recorded. Read them for that and they hold up. Read them for anything else and the apple price in Kakamega will mislead you.