"This platform aggregates 12,100 records across 122 indicators from the CBN, NBS and World Bank into a single interactive dashboard, with a separate free Open API for programmatic access — making Nigeria's public economic data accessible to researchers, developers, students and the general public."
This platform aggregates 122 indicators across eight data groups from three official public sources — the Central Bank of Nigeria (CBN), the National Bureau of Statistics (NBS), and the World Bank. The primary case study period is 2020 to 2026; select groups (the CBN Five-Year Financial Statement, Currency in Circulation, and Real GDP by Sector) extend further back, to 1960. The dashboard presents the data through interactive Chart.js charts, sortable data tables, and a live analytics page, running directly against a public Supabase PostgreSQL database — no custom backend mediates the dashboard's own data access. A separate, independently-deployed Python FastAPI Open API at npedata-api.onrender.com/api/v1 provides free, documented, third-party programmatic access to the same dataset.
This project was developed as a Final Year Project at Caleb University, Imota, Lagos, in the Department of Computer Science. Its contribution is a free, open-source, and academically documented implementation built on a teachable technology stack. The database contains 12,100 records across 122 indicators, covering GDP sectoral breakdown (47 sectors, 1981–2024), multi-currency CBN rates (11 currencies), FX reserves, the CBN balance sheet, NFEM daily rates, and the core macroeconomic indicators.
For the full per-agency breakdown — descriptions, update frequency and data quality notes — see the dedicated Data Sources page.
| Institution | Indicator | Frequency | Coverage |
|---|---|---|---|
| Central Bank of Nigeria (CBN) | Exchange Rate (NGN/USD) | Daily → monthly avg | 2020–2026 |
| Central Bank of Nigeria (CBN) | Monetary Policy Rate (MPR) | Per MPC meeting | 2020–2026 |
| Central Bank of Nigeria (CBN) | FX Reserves (gross, liquid, blocked) | Monthly | 2020–2026 |
| Central Bank of Nigeria (CBN) | 11-currency buying/central/selling rates | Monthly | 2020–2026 (AED: Jan–Apr 2026 only) |
| Central Bank of Nigeria (CBN) | NFEM daily rates | Daily | Dec 2024–Apr 2026 |
| Central Bank of Nigeria (CBN) | CBN Balance Sheet (6 items) | Monthly | 2005–2023 |
| Central Bank of Nigeria (CBN) | Annual Financial Statement | Annual | 1960–2012 |
| Central Bank of Nigeria (CBN) | Currency in Circulation | Monthly | 2002–2024 |
| National Bureau of Statistics (NBS) | Headline Inflation Rate | Monthly | 2003–2026 |
| National Bureau of Statistics (NBS) | GDP Growth Rate (%) | Quarterly | 2020–2026 |
| National Bureau of Statistics (NBS) | Real GDP — 47 Sectors | Quarterly/Annual | 1981–2024 |
| World Bank Open Data | Nominal GDP (USD Billions) | Annual | 2020–2024 |
| Layer | Technology | Purpose |
|---|---|---|
| Backend Language | Python 3.11 | Server logic and data processing |
| Open API Framework | FastAPI | Standalone REST API with automatic Swagger documentation — independent of the dashboard's own direct Supabase access |
| Database | Supabase (PostgreSQL) | Stores all aggregated economic data |
| Data Processing | Python Pandas | ETL — clean and transform Excel/CSV files |
| Frontend Structure | HTML5 | Web page structure |
| Frontend Styling | CSS3 (custom design system) | Lagos Noir × Data Observatory aesthetic |
| Frontend Logic | Vanilla JavaScript (ES6+) | Supabase direct fetch, charts, analytics |
| Data Visualisation | Chart.js v4 | Interactive line, bar and small-multiple charts (single-axis; no misleading dual axes) |
| Typography | Playfair Display · IBM Plex Mono · Sora | Display / data / body fonts via Google Fonts |
| Hosting | Render.com + GitHub Pages + Cloudflare Pages | Open API + two independently-deployed static frontend mirrors for redundancy |
Every figure on the analytics pages is computed transparently in the browser, directly from the aggregated data. The methods are deliberately classical and explainable — no black-box models — so any result can be reproduced and checked. The platform is designed to be correct and honest over impressive: where a result is unreliable, it says so.
| Technique | What it does |
|---|---|
| Descriptive statistics | Latest value, period & year-on-year change, min/max with dates, mean, standard deviation (volatility) and coefficient of variation. |
| Trend — OLS regression | Ordinary Least Squares straight-line fit; reports the slope, R² (goodness of fit) and the correlation of the series with time. |
| Correlation — Pearson r | Computed on the two series' date-aligned observations, reported with R² (share of variance) and a two-tailed significance p-value from the Student-t distribution. |
| Standardisation — z-scores | Series are expressed as standard deviations from their own mean so two different units share one honest axis, instead of a misleading dual axis. |
| Trend-robustness check | The detrended (month-to-month change) correlation is compared with the level correlation to flag results driven mainly by a shared trend. |
| Forecast — OLS extrapolation | The trend line extended a few periods, shown illustratively only — it is not a prediction. |
| Reliability guards | Automatic warnings for short overlaps (fewer than 8 shared observations) and for comparisons between series of different reporting frequency. |
- Not real-time. Figures are a manually-ingested snapshot; data is collected by hand from published CBN/NBS/World Bank reports, not through an automated live pipeline.
- No seasonal adjustment. Monthly and quarterly series are shown exactly as reported, not deseasonalised.
- The forecast is a straight line. It is a simple OLS extrapolation with no confidence interval — there is no ARIMA, exponential-smoothing or other time-series model.
- Correlation is not causation. The platform measures association only; it does not test causality (no Granger causality, lead/lag or cross-correlation analysis).
- Short or mixed-frequency comparisons are weaker. They are flagged, but a correlation over a handful of points, or between a daily and an annual series, should be treated with caution.
- Coverage is bounded by the sources. Some series end earlier than others (e.g. the annual financial statement stops in 2012), so historical comparisons are limited to what each source publishes.
The platform was validated through automated tests, independent statistical checks, and a systematic data-truthfulness audit — not by inspection alone.
- Automated unit tests. A 16-test pytest suite covers the Open API's endpoints and asserts the HATEOAS _links blocks; all pass.
- Statistical validation. The correlation significance p-value and the scale-aware value formatter were unit-tested against known reference cases, and the analytics engine was exercised against awkward edge cases (daily, negative-valued, sparse, count and short-coverage series) to confirm correct output with no crashes.
- Data-truthfulness audit. Every chart's figures, ranges and units were cross-checked against the stored data. This found and fixed real defects — a data-censoring routine, unit mislabels, a mistitled "inverse" relationship (actually a weak positive one), and a sector chart that compared different years.
- Functional & visual verification. Every page was loaded against live data and screenshotted to confirm charts, filters, comparisons, sorting and downloads work across screen widths.
- Accessibility. Colour contrast verified against WCAG 2.1 AA (≥ 4.5:1) using Lighthouse audits.
- API testing. Endpoints exercised through the browser, the Swagger UI at /docs, and curl.
This system is for informational and educational purposes only. Data is sourced from official institutions but cannot guarantee freedom from errors or omissions. This system does not constitute financial advice. For official economic data, refer directly to the CBN, NBS, and World Bank websites. A June 2026 data audit found 1,435 duplicate records across 1,232 indicator/date pairs introduced by repeated ETL runs (reducing the total from 13,535 to 12,100); all were reconciled against original CBN/NBS source files and resolved.
Taoheed Abdulmanan Olaosebikan — Final Year Project, Department of Computer Science, Caleb University, Imota, Lagos · 2026.
github.com/ANTD-CR7/nigerian-dashboard