Where our numbers come from
Every source we use, what it feeds, and — just as important — what we deliberately do not use.
Last updated 31 July 2026
A tool that tells you what to do with your money owes you a straight answer about where its numbers came from. This page is that answer. It also lists sources we evaluated and rejected, because “we could have used this but chose not to” is information too.
Feeds: Bond prospectuses, auction results, T-bill rates, exchange rates, reserves, and the full Central Bank Rate history since 2008
The primary authority for everything we compute. Published as public PDFs and tables. Every rate decision we chart links back to the MPC press release it came from, so you can check us against the original.
Feeds: The origin of the CPI figure we show — but read from CBK, not from KNBS directly
KNBS compiles the index; we take the number from CBK’s own release, and the reason is specific rather than a matter of convenience. knbs.or.ke answers, but its TLS certificate chain does not verify — it serves no intermediate certificate, so a browser quietly fetches the missing link itself while any ordinary HTTP client refuses. We do not disable certificate verification to collect financial data, so we do not collect it from there. That is the publisher’s to fix and we re-check it on every probe run rather than assuming it is permanent; it was still failing on 9 August 2026, on all six KNBS addresses we try, from a clean server with unrestricted internet access. Our data file records the substitution against every reading, so the provenance is never guessed at.
Feeds: Eight figures: GDP growth, reserves (import cover), exports as a share of GDP, the current account balance, interest as a share of government revenue, external debt to GNI, debt service as a share of exports, and the external debt stock in dollars.
Free, keyless, versioned JSON API under CC BY 4.0 — the only major source on our list we may lawfully redistribute. We ask it for nine indicators and it answers on eight. The ninth, general government debt as a share of GDP, returns no observation for Kenya at all, so we show no debt-to-GDP figure — that is the source declining to answer, not our fetch failing, and every row we do publish carries a fetch stamp so the two can be told apart. We checked rather than assumed: the code answers with sixty-six rows and a value in none of them. Four of the eight are debt-burden measures, and they are the World Bank’s own compilation rather than the Treasury’s primary record — each carries the reference year it was compiled for, usually one to three years behind today. What the World Bank withholds is the ratio specifically, not the debt: it does serve Kenya’s external debt stock in dollars, which is why we now ask for the stock itself. It is the only absolute figure in that panel, and it is there because every ratio beside it moves when the economy grows or is rebased rather than only when borrowing changes — the stock moves for one reason. A ratio falling while the stock rises means the economy outgrew the debt, not that less is owed, and the two shown together say which. The headline debt-to-GDP figure Kenyan coverage quotes comes from the IMF, and we do not republish it, because the IMF ships outturns and forecasts to 2031 in one undifferentiated series and two copies of it disagree by a point and a half on the same year. A number we cannot label as measured or projected is not one we will put beside measurements.
Feeds: Not yet read by anything we run — linked so you can go to the primary record
This entry used to claim we took public debt figures from here. We did not, and the debt data we show comes from the World Bank. We probed the site directly: its Public Debt Management pages are reachable, but the debt documents they link — the yield curve and the outstanding-bonds schedule — both return 404 while the site is mid-migration. There is nothing machine-readable to read yet, so we read nothing and say so.
Feeds: Read from the bulletins directly, not scraped. Its collective-investment figures are the authoritative count of what Kenyan funds hold; its bond-turnover tables are attributed to the Exchange and are therefore not used.
CMA regulates the funds most Kenyans actually hold. Its Quarterly Statistical Bulletin — issues 64/2025 through 67/2026, the last covering the quarter ended June 2026 — puts collective-investment assets at Ksh 851.7bn as at March 2026, up 13% from Ksh 756.3bn in December, with 44.0% of that (Ksh 374.6bn) held in government securities. Note the lag: the June bulletin reports March CIS data, so this is a quarter behind by construction rather than by neglect. WHAT CMA DOES NOT PUBLISH is a per-fund yield. Both the bulletins and the Q4 FY2025/26 Soundness Report were read end to end; they carry assets, asset-class splits and regulatory commentary, and no table of fund returns anywhere. That matters because two widely-quoted third parties, searched minutes apart, attributed average money-market yields of 9.1% and of 14-18% to this report. Neither figure is in it. A fund yield comes from that fund’s own fact sheet, and anyone citing CMA for one is citing a document they have not opened. THE BOND TURNOVER QUESTION IS SETTLED, AND CMA SETTLED IT. Its secondary-market tables — Ksh 1.703tn traded in the first half of 2026, Ksh 621.83bn in the June quarter — are printed under the attribution “Source: NSE/CMA”. Across that bulletin 31 tables carry the Exchange in their source line and five are CMA alone. So the turnover figures are exchange-derived by the regulator’s own account, and the entry below commits us to publishing nothing derived from the Exchange. We take the CIS figures, which are reported to CMA by fund managers and attributed to CMA alone, and we leave the turnover where it is. The distinction is not ours to argue: it is written in the source lines of the document.
Feeds: The sector context behind every SACCO figure the sister product shows — dividend and deposit-interest ranges, and the status of the deposit guarantee
SACCOs hold more Kenyan savings than the funds and the bond market between them, and they are the one place a reader is most likely to be comparing against a Treasury bill. SASRA’s supervision reports give the sector ranges we quote as ranges — interest on member deposits commonly 8-12%, dividends on share capital commonly 10-15% among stronger societies — rather than a single invented average. The most consequential thing we take from SASRA is not a number at all: the Deposit Guarantee Fund provided for under the Sacco Societies Act is legislated but NOT yet operational, so a SACCO deposit carries no live statutory guarantee. A reader weighing one against a government bill needs that, and cannot get it from a yield.
Feeds: The tax treatment applied to every figure either product reports as net — PAYE bands, and withholding tax on interest
Tax is where a gross yield becomes a number somebody actually keeps, and it is the step most comparisons skip. Withholding tax on Treasury bills is 15%, on bonds 10% at ten years or longer and 15% below, and infrastructure bonds are exempt entirely — three different treatments that decide which instrument wins, and none of them visible in a quoted rate. We read the rates from the Income Tax Act rather than scraping the site: tax rules change by Finance Act on a published date, not continuously, so a hardcoded rate with a citation is more honest here than a scraper pretending to track something that does not move.
Feeds: Linked, not read. Names the regulator for the pension and provident products the sister product lists.
A reader comparing a personal pension against a bond ladder is comparing two things under different regulators with different protections, and the product directory says which is which. We publish no RBA figures — scheme returns are not centrally published in a form we could read, and we would rather name the regulator and stop than estimate one.
We take no data from the Exchange, in any form, and nothing we publish is derived from it. Its terms make the data proprietary — not copyable, storable or distributable, and not usable to build a product — and that applies to what sits publicly on its website as much as to a paid feed. Reading a page in a browser does not make its contents free to redistribute. Rather than rely on being the kind of small use nobody minds, we removed the dependency: the scraper that could once fetch it is gone, and no configuration will bring it back. Everything on this page comes from CBK, the National Treasury, KNBS and the World Bank instead. If you want a market price for a bond, get it from your broker or from DhowCSD and enter it yourself — it stays on your device, and it is yours, not ours to publish.
Feeds: Not read by anything we run — linked because the reports are worth your time
Nothing here parses an Article IV or a debt sustainability analysis. They informed how we think about the debt figures we show; they are not a data feed, and we should not have implied otherwise.
Feeds: Cross-checking our figures during development
Copyrighted research. We read it, we do not republish it, and we do not present anyone else’s analysis as ours.
Feeds: Auction results before the official PDF is indexed
Useful for timeliness, always superseded by the CBK original once available.
Feeds: Background reading on Kenyan public finance
Kenya’s public-policy research institute publishes genuinely useful analysis — the Kenya Economic Report and similar. It is prose and PDFs rather than structured data, and it is all rights reserved, so we cite and link rather than ingest.
The API requires a key, and this app ships as static files with no server to hold one. Redistribution also sits outside their terms.
Unofficial or scraping-restricted endpoints. We will not build a money tool on an interface that can vanish or that we are not permitted to use.
A paid subscription service. Their Kenya page did not resolve when probed, and even if it had, redistributing licensed bond data in a free public app is not something a subscription permits.
Returns HTTP 403 to automated requests, and its focus is listed-company financial statements rather than government bond pricing. Neither permitted nor particularly relevant to what we compute.
Blocks automated access and licenses its market data commercially at terminal prices. Excellent journalism, entirely unavailable to a free app — and republishing it would be straightforwardly unlawful.
Data is available to market participants only. Your holdings stay between you and your CSD account.
Why so much is “linked, not copied”
Mwangaza Yield is a static application: it has no server, so it can hold no API keys and run no private queries. That rules out every paid or authenticated feed. It also means we cannot lawfully mirror licensed market data or copyrighted research. Rather than pretend otherwise, we compute everything we can from public primary sources and send you to the original for the rest.
The upside of that constraint is real: no key means no server, no server means no account, and no account means your portfolio never leaves your device.
Freshness and honesty
- Auction results and rates carry the date of the auction they came from.
- The rate-cycle chart compares today against the level the current cycle started from, not the 2011 record high. Measuring against the record would show a fall that never happened as a single move.
- Coupon dates are estimated from issue schedules and are labelled as estimates wherever they appear.
- Yields without a published auction print are interpolated from the prevailing curve, and say so.
- When the app is offline it shows a badge, so a cached figure is never mistaken for a live one.
Spotted a figure that disagrees with the official source? That is the most valuable bug you can report — see Support.
The auction archive, measured
394 auction results across 127 issue codes, 2009 to 2026, parsed from CBK's published PDFs. Those PDFs are public; this is the only machine-readable form of them we know of. Here is how much of it is actually filled in.
- Records
- 394
- Complete on all six fields
- 354 (90%)
- Usable for bid-to-cover
- 300
- Issue codes
- 127
Re-read in progress. 3 of 394 rows were produced by an earlier version of the parser and are being re-read at version 14 as each source PDF is next fetched. The percentages here are therefore a floor: a re-read can fill a field, never empty one. How much of a floor is measurable rather than a matter of trust — of the 391 rows the current parser has already read, 354 are complete on all six fields, or 91%. The difference between that and the figure below is unfinished work, not unreadable documents.
- Value date381/394 · 97%
- Coupon rate379/394 · 96%
- Price per 100379/394 · 96%
- Amount offered318/324 · 98%
- Amount accepted374/394 · 95%
- Bids received305/324 · 94%
On the value date: the JSON key is called auctionDate, and it holds the date CBK dates the bond from — the Monday — not the Wednesday bidding closed. 372 of the 381 records that carry a date land on a Monday — the 9 that do not are exchanges and buybacks rather than ordinary auctions, and settle on their own timetable. The key keeps its name so that anything already reading the file does not break; this note is the correction. If you need the day an auction actually closed, that is in the forthcoming-auction feed, not here.
A field counts as present only if it carries a figure. Zero is read as “unparsed”, not as data — no Kenyan auction offers, accepts or prices at zero, so a nought in these columns is a line the parser could not read rather than a fact about the market. Every percentage below 100 is a job still to do, and the number is here so that finishing it is visible.
The archive is downloadable as JSON or — the same file the app itself reads, gaps and all. The CSV names the date column valueDate, because that is what it holds. If you want it for research, journalism or a product of your own, take it; attribution to CBK as the underlying source is the only thing we would ask. If you need it filled in, documented and kept current, that is work, and we can talk about it.
Attribution, and what we are actually permitted to republish
“It is government data, so it is public” is not true in Kenya. There is no local equivalent of the American rule that puts government works in the public domain: the Copyright Act No. 12 of 2001 gives works made under a government commission fifty years of copyright, and the Statistics Act No. 4 of 2006 gives the Bureau a mandate to publish, which is not a grant of reuse rights to anyone else. So each source below was checked individually, and the sentence its own terms use is quoted rather than summarised.
This table is generated from the same registry the build enforces. Every figure this site publishes must resolve to a source marked permitted here, or the build fails — so this page cannot drift from what the app actually does.
| Source | May we republish? | On whose words |
|---|---|---|
| World Bank Open Data | Yes — CC BY 4.0 | “Most World Bank open data is available under the Creative Commons Attribution 4.0 International licence, permitting commercial reuse and redistribution with attribution.” terms checked 2026-08-16 |
| AfDB Open Data for Africa | Yes — CC BY 4.0 | “All data and datasets published by the Africa Development Bank Group (AfDB) on this Open Data Portal are provided under the Creative Commons Attribution 4.0 International License (CC-BY 4.0).” terms checked 2026-08-16 |
| National Treasury | Yes — Reproduction without restriction, attribution required | “Information contained in this publication may be reproduced without restriction provided due acknowledgement is made of the source.” terms checked 2026-08-16 |
| Kenya Revenue Authority | Yes — Reproduction without restriction, attribution required | “Information contained in this publication may be reproduced without restriction provided due acknowledgement is made of the source.” terms checked 2026-08-19 |
| CBK | Yes — Reproduction without restrictions, attribution required | “Information in this publication may be reproduced without restrictions provided the source is duly acknowledged.” terms checked 2026-08-16 |
| IMF | Yes — IMF Data terms — redistribution permitted with attribution | “Users may download, extract, copy, create derivative works, publish, distribute and sell Data obtained from IMF Sites, subject to the following conditions: When Data is distributed or reproduced, it must appear accurately and attributed to the IMF as the source.” terms checked 2026-08-16 |
| KNBS | No | “No part of this publication may be reproduced, distributed, or transmitted in any form or by any means ... without the prior written permission of the Bureau. Any copyright use requests relating to this publication should be addressed to the Director General.” terms checked 2026-08-16 |
| NSE | No | “Standing project constraint: the Exchange does not permit free redistribution of its data.”checked 2026-08-16 |
| Trading Economics | No | “Trading Economics grants you a limited, personal, nontransferable, revocable license to analyse data ...” terms checked 2026-08-16 |
| FocusEconomics | No | “Any use of the Material through whatever mechanism not expressly authorized by FocusEconomics in these Terms & Conditions is expressly prohibited.” terms checked 2026-08-16 |
| investing.com | No | “Users will not "deep-link", redistribute or facilitate the redistribution of Market Information.” terms checked 2026-08-16 |
| CEIC | No | “CEIC subscribers may not rent, transfer, publish, duplicate or in any way distribute the database information or allow third-party access to CEIC data.” terms checked 2026-08-16 |
The uncomfortable one is KNBS, which originates Kenya’s inflation figures and is the one source here that reserves its rights. Where we show a KNBS-originated number, we read and cite it from CBK, which republishes the same figures under a notice that does grant reproduction. That is not a workaround — it is citing the publisher whose terms we can actually satisfy.
No Nairobi Securities Exchange data is used, stored or republished anywhere in this application, and a test fails the build on any reference to it.