Logo Lanfrica

Lucas-Maingi/mizani

Domain:

socioeconomic

Record type:

software
Creator:
Luc
Host:
East African economic & mobile-money data platform - medallion ETL with Dagster, dbt, DuckDB, and quarantine-first data quality. Live weekly pipeline publishing to GitHub Pages. # Mizani — East African economic & mobile-money data platform **Medallion ETL · Dagster · dbt · DuckDB · data quality** — a bronze/silver/gold pipeline that ingests four genuinely messy public data sources (one JSON API, one headerless CSV, one HTML scrape, one human-formatted Excel workbook), validates and quarantines them declaratively, and models them into a star schema. *Mizani* is Swahili for "scales / balance." ## Data sources All sources were verified live on 2026-07-15. Every number below is measured from an actual pipeline run on that date, not estimated. | Source | Format | The mess | Rows landed | |---|---|---|---| | World Bank Open Data API | JSON API | nulls for missing years; pagination | 208 | | CBK historical forex rates | CSV | **no header row**, 485 exact duplicate rows (1.3%), ambiguous MM/DD/YYYY dates, labels like `CAN $` / `AE DIRHAM` | 37,392 (of 37,877 received) | | CBK mobile payments statistics | HTML table (no export offered) | scrape-only wpDataTable; month names as text; comma-formatted numbers | 231 (monthly, Mar 2007–May 2026) | | GSMA Global Mobile Money Dataset | XLSX | title rows, padding columns, trailing spaces in sheet names, metrics spread across ~100 wide quarter columns | 56,616 (after lossless melt) | **Dropped:** the Kenya Open Data portal (`kenya.opendataforafrica.org`) returned `403 Forbidden` at verification time and is historically unreliable, so it was not used. **Known freshness gap:** CBK's downloadable historical FX file currently ends at 2024-01-03 (current rates live only behind a nonce-protected AJAX table). All published FX values therefore carry explicit `as_of` dates rather than pretending to be current — see the war stories for why we ship the honest gap. ## Live demo The pipeline runs on a weekly schedule against the live sources and publishes its output — if the badge above is green, everything below was built from a real recent run: * **Dashboard** — headline metrics and charts queried from g …