Prices
12115 usable price signals, each dated by the post that stated it. A by-product of classifying advertising rather than discarding it.
What was excluded, and why
| gate | signals |
|---|---|
| recorded in total | 14765 |
| rejected — not a positive number | −2210 |
| rejected — currency field does not name a currency | −414 |
| rejected — above the plausibility ceiling | −26 |
| usable | 12115 |
The currency field is free text and also contains "kg", "percent" and "tons"; rows naming a real currency but spelling it differently are recovered, the rest rejected rather than guessed at. The plausibility ceiling is ₦1bn — the corpus median is ₦12,000 and its p99 is ₦20m, so the ceiling removes only figures nobody typed meaningfully. No price-per-kg is offered: the unit field is null on 96% of signals, so it cannot be derived and this page does not pretend otherwise.
Median price by year
Bars are scaled within each row, so they compare a commodity to itself over time and never one commodity to another. Cell text is the median in naira; n is how many signals it rests on. Empty cells are shown as — rather than closed up, because a gap is information.
| commodity | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| broiler | — | 875
n=4
|
3,750
n=8
|
850
n=14
|
200
n=52
|
205
n=58
|
350
n=43
|
310
n=57
|
515
n=58
|
660
n=37
|
750
n=150
|
1,100
n=59
|
1,120
n=73
|
| maize | — | — | 3,000
n=2 †
|
1,100
n=9
|
90,000
n=9
|
7,500
n=17
|
45,500
n=10
|
17,250
n=50
|
19,250
n=84
|
27,000
n=29
|
7,800
n=123
|
37,000
n=29
|
38,000
n=15
|
| rice | — | — | — | 800
n=5
|
10,000
n=1 †
|
8,000
n=3
|
14,500
n=44
|
20,000
n=70
|
33,000
n=37
|
36,600
n=20
|
65,750
n=72
|
59,500
n=60
|
60,000
n=41
|
| turkey | 1,300
n=3
|
410
n=8
|
1
n=1 †
|
550
n=2 †
|
535
n=48
|
1,500
n=18
|
1,650
n=25
|
1,950
n=18
|
3,200
n=28
|
3,500
n=23
|
6,500
n=49
|
9,700
n=23
|
9,000
n=26
|
| farmland | — | 110,000
n=8
|
70,000
n=13
|
— | 70,000
n=12
|
80,000
n=8
|
200,000
n=23
|
180,000
n=25
|
150,000
n=9
|
300,000
n=3
|
500,000
n=40
|
500,000
n=72
|
750,000
n=20
|
| plantain | 400
n=14
|
4,000
n=47
|
5,000
n=19
|
170
n=19
|
15,000
n=9
|
500,000
n=1 †
|
165
n=10
|
100
n=12
|
13,500
n=14
|
150
n=7
|
8,000
n=9
|
185,000
n=14
|
10,000
n=17
|
| catfish | 10,250
n=10
|
— | 550
n=5
|
600
n=6
|
725
n=10
|
1,500
n=1 †
|
60,000
n=3
|
500
n=5
|
36,500
n=8
|
3,500
n=9
|
1,250
n=24
|
2,500
n=55
|
2,500
n=17
|
| palm_oil | — | — | — | 11,400
n=2 †
|
8,500
n=6
|
450
n=2 †
|
8,000
n=15
|
19,500
n=9
|
17,750
n=34
|
24,500
n=20
|
37,500
n=22
|
47,500
n=28
|
38,000
n=19
|
| cucumber | — | — | 6,500
n=5
|
— | 7,000
n=7
|
4,000
n=5
|
3,500
n=7
|
7,500
n=27
|
2,250
n=28
|
10,000
n=15
|
6,000
n=14
|
15,000
n=24
|
35,000
n=17
|
| goat | 7,250
n=2 †
|
6,500
n=6
|
— | 13,500
n=4
|
10,000
n=11
|
17,500
n=6
|
11,000
n=4
|
15,000
n=13
|
55,000
n=9
|
15,000
n=7
|
45,000
n=56
|
80,000
n=25
|
12,500
n=4
|
| feed | 165,015
n=2 †
|
— | 5,400
n=4
|
10,000
n=5
|
29,000
n=9
|
5,000
n=5
|
3,975
n=16
|
100
n=8
|
8,310
n=14
|
5,650
n=8
|
18,500
n=26
|
19,500
n=25
|
6,750
n=12
|
| yam | 2,000
n=5
|
— | 8,000
n=5
|
35,000
n=7
|
11,750
n=2 †
|
1,000
n=15
|
18,000
n=14
|
7,500
n=6
|
850
n=13
|
2,500
n=10
|
5,000
n=37
|
2,500
n=21
|
1,500
n=1 †
|
| cassava | 16
n=1 †
|
800
n=2 †
|
3,150
n=6
|
215,000
n=10
|
350,000
n=3
|
30,000
n=4
|
600
n=1 †
|
77,500
n=16
|
1,350
n=6
|
600,000
n=4
|
120,000
n=36
|
110,000
n=30
|
4,000,000
n=11
|
| honey | — | — | 18,000
n=11
|
25
n=11
|
3,500
n=11
|
24
n=10
|
3,000
n=15
|
3,500
n=7
|
41,000
n=8
|
47,000
n=4
|
150,000
n=7
|
18,000
n=12
|
11,500
n=20
|
† fewer than three signals — shown because omitting them would hide how thin the early years are, but not a number to quote. Years before 2014 are omitted entirely: the crawl took a recent window plus a high-engagement backfill, so earlier years carry too few signals to median at all.
Where the prices are
Both columns, always. A state with many signals from few threads is one conversation repeating itself; a state with signals spread across many threads is a market. These rank differently and the difference is the point.
| state | threads | signals | |
|---|---|---|---|
| Lagos | 222 | 806 | |
| Ogun | 170 | 496 | |
| Oyo | 100 | 351 | |
| FCT | 51 | 107 | |
| Kaduna | 40 | 162 | |
| Benue | 29 | 67 | |
| Kwara | 29 | 54 | |
| Osun | 28 | 38 | |
| Niger | 28 | 363 | |
| Enugu | 23 | 31 | |
| Kano | 22 | 335 | |
| Ondo | 21 | 35 | |
| Delta | 21 | 52 | |
| Edo | 19 | 31 | |
| Nasarawa | 19 | 99 | |
| Gombe | 16 | 25 | |
| Kogi | 15 | 28 | |
| Cross River | 15 | 26 |
8696 usable signals name no state at all — mostly market or town names the gazetteer does not hold ("Madallah Market"), plus country-wide postings. Expanding the gazetteer beyond the 36 states and the FCT is the obvious next improvement, and until then this table describes only the 3419 signals that could be placed.