5 Kenyan price feeds on 1 vocabulary
Prices in East Africa arrive in 5 different shapes: a ministry table by market and day, classified listings by seller, a monthly series by market, an auction catalogue by grade and sale, and a global sheet by commodity and month. The platform stores all 5 under 1 set of tag names, so a query for dry maize in Nakuru behaves identically whether the row came from the ministry table or the monthly series, with the source tag saying which. Weight prices are converted to per kilogram and volume prices to per litre before a row is ever written.
| Feed | Granularity | History |
|---|---|---|
| Official market table, 195 commodities, every reporting market in 47 counties | market, day | May 2021 onward, about 1,000,000 rows |
| Asking prices for straight fertilizers from public listings | county, day | June 2026 onward |
| Agro-dealer shelf prices for crop protection, seed and foliar feeds | dealer, product, day | September 2026 onward |
| Monthly market series for Kenya | market, month | 2006 onward, about 26,000 rows |
| Coffee auction results, per grade and sale | grade, sale | the exchange’s published archive |
| Tea auction results, whole auction and per factory | factory, grade, sale | about 440 sales |
A price move does not arrive everywhere at once
Nairobi is the deepest series in the market table, and a move there travels outward at the pace of the lorries, the restocking cycle and whatever the trader is still holding at the old price. Rather than assume a delay, the transmission analysis measures it directly: both series get reduced to robust medians, compared across a range of candidate lags, and whichever lag correlates strongest is the one reported, with that correlation sitting right beside it so a weak link reads as a weak link.
The gap between counties is not small. Kakamega moves with Nairobi on the same day, at a correlation of 0.62. Trans Nzoia follows at 28 days, long enough to plan a purchase around and long enough that comparing the 2 counties in the same week compares 2 different moments in the same underlying move. What looks like an arbitrage opportunity on a Tuesday can simply be a county that hasn’t caught up yet, which is exactly why the spread analysis gets read against transport cost rather than taken at face value.
A lag is deliberately not a forecast. It says where a move that has already happened will surface next, never what the price will be. A county price forecast was built and tested against the trivial rule of carrying today’s price forward, on maize, beans and fertilizer, at 4, 8 and 13 week horizons; it lost at every horizon on every commodity and never shipped, so there’s no endpoint for it today. What’s served here is only what survived that test.
How the price analyses answer
Each of the questions above resolves in 1 call that comes back with a trust block: how many points, how fresh, how spread. Prices themselves are robust medians with outlier rejection built in, so a bag price mistakenly entered as a per-kilogram price never makes it into a result. Through the connector, the same questions become tools you can ask in plain language, and the trust block travels along with the answer either way.
Coverage of Kenyan fertilizer and staple prices
Fertilizer has been recorded across 29 of Kenya’s 47 counties, but only a handful stay fresh enough to act on in any given week, and which ones those are keeps changing. The official table is the county-level source; recency is where it falls short, and the listing feed doesn’t close that gap because straight-fertilizer listings are, in practice, a Nairobi market. Staple crops, by contrast, get reported daily across many markets and form the genuinely deep part of the dataset. Analyses return low trust in thin counties with the reason attached rather than fabricate a confident number, and the county brief states plainly which case applies. Coffee and tea auctions pause between seasons, and the monthly series always lags the daily table.