Methodology
What the numbers on this site are, where they come from, and where they should not be trusted.
Coverage
6 exchanges and 726 equity listings in the current snapshot. Africa has more than twenty stock exchanges; the ones here are those with reliable, regularly published public price data. Notable gaps include Morocco (CSE Casablanca), Tunisia (BVMT), Tanzania (DSE), Rwanda (RSE) and Mauritius (SEM). Adding a market means writing one adapter, so the list is expected to grow.
| Exchange | Source | Listings |
|---|---|---|
| NigeriaNGX | Nigerian Exchange, direct | 147 |
| South AfricaJSE | Yahoo Finance (partial) | 439 |
| EgyptEGX | Yahoo Finance (partial) | 43 |
| UEMOA (8 countries)BRVM | BRVM, direct | 47 |
| BotswanaBSE | Botswana Stock Exchange, direct | 29 |
| UgandaUSE | Uganda Securities Exchange, direct | 21 |
Where a market is served by Yahoo, its constituent list is a curated set of tickers validated against the API rather than a complete exchange listing, so coverage is partial by construction. Market caps and valuation ratios are unavailable from that source.
Prices
Prices are end-of-day or delayed, never real time. Each exchange page shows when its data was last refreshed. Treat every quote as indicative: for anything you intend to trade on, use your broker's book.
Daily percentage change is computed from the price and the absolute change reported by the source, not from an independently sourced previous close.
Price history and computed returns
A listing's stored price history is wholly one of three series, never a splice of them:
- An adjusted vendor series for Johannesburg and Cairo, corrected for splits and dividends. The trailing returns for those two markets come from the same vendor.
- Daily closes bought from Mansa Markets for the five markets whose exchanges publish a price but no past: Lagos back to May 2000, Abidjan to January 2007, Gaborone to July 1995, Kampala and Blantyre to July 2011. These carry close and volume only and are raw — not adjusted for splits or dividends, so a split shows as a fall in the chart rather than being smoothed away. Trailing returns for these five markets are computed by us from this series, and any window the series cannot support is withheld rather than estimated.
- Failing both, the daily close this site records itself — days deep, not years, and labelled as such wherever it is drawn.
Each chart names which of the three is on screen, because they differ in both length and basis, and reading a raw series as an adjusted one turns a share split into a crash.
Currency conversion
Spot conversion to USD uses daily reference rates from the ExchangeRate-API open endpoint. Because these are reference rates rather than tradeable rates, dollar figures are approximations — and in markets with parallel or restricted FX they can differ materially from what you would actually receive.
Currency-adjusted index returns use the change in the USD/local rate since the last close of the previous calendar year, from Yahoo Finance:
dollar return = (1 + local return) / (1 + USD/local move) - 1
Where no FX history is available for a currency, the dollar return is left blank rather than estimated. That currently affects the Zimbabwe dollar (ZiG), which has no continuous public series.
Charts
Price charts come from two places. Where TradingView carries the symbol — South Africa, Nigeria and Egypt — the chart is their embed. TradingView carries none of BRVM, Botswana, Uganda or Malawi, and its embed also renders empty for African tickers it lists but holds no data for, so every chart panel can fall back to our own price series and says which of the two you are looking at.
Symbols are resolved through TradingView's own symbol search and only an exact ticker match on the expected exchange is accepted. Nothing is constructed by pattern — a guessed symbol would show a different company's chart, which is worse than showing none.
What your browser contacts
Reading Djeli should not tell anyone else what you are reading. Every page is static files served from one place, and the things a page needs — fonts, styles, company logos, the search index — are all served from this site. There is no analytics, no tag manager, no advertising pixel, no session recorder and no cookie of any kind.
Company logos used to be loaded directly from TradingView, which meant your browser announced to them which company you were looking at — the address of each logo contains the company's name. They are now copied to this site once, when the data is built, and served from here. Looking up a share tells nobody but us, and we keep no record of it.
One exception, and it needs your click: the TradingView chart. Where you choose that source instead of ours, their code and their frame load from their servers and they see the request, as any embedded chart would. Our own chart is what loads by default and it reaches nobody.
Index returns are price returns
Year-to-date index figures exclude dividends. Several of these markets carry high dividend yields, so total return is often better than shown — in local currency terms.
The corporate calendar
The calendar currently contains sample entries only, clearly flagged as unverified. There is no free machine-readable feed for African corporate actions, which is exactly why it is worth building. The intended sourcing path, in order of reliability:
- Exchange announcement pages (NGX, JSE SENS, NSE, GSE all publish these).
- Issuer investor-relations pages for the largest listings.
- Regulator filings where an exchange feed is thin.
- Manual curation for the rest, with a source URL recorded per entry.
No entry should be marked confirmed without a source URL. That rule is enforced in the data schema rather than by convention.
Known limitations
- Fundamentals (market cap, P/E, dividend yield) are sparse — the upstream source leaves many fields empty, particularly on the smaller exchanges.
- Market caps are as reported and are not adjusted for free float, so they overstate investable size where a state or parent holds most of the shares.
- Cross-listed companies appear separately on each exchange and are not deduplicated.
- Price history depth varies sharply by market. Johannesburg's vendor series holds about ten recent sessions and Cairo's about a year of weekly points, while the five markets on the bought series reach back 15 to 31 years — see the price history section above for what those series are and are not.
- Five of the $six markets are read from their own exchange's publication through a dedicated adapter. Johannesburg and Cairo still come through Yahoo Finance with a public aggregator as fallback — neither is a primary exchange feed, and moving those two onto exchange data is the remaining robustness task.
- The two sources do not always agree. The JSE All Share year-to-date figure, for instance, differs by roughly two percentage points between them, most likely a difference in index variant or baseline date. Where they disagree we show the source listed above and do not silently blend them.
Snapshot
Generated Fri, 28 Aug 2026 22:08:52 GMT
FX reference rates as of 2026-08-28T00:02:31.000Z
Fundamentals included: yes