# Ethiopia Financial Inclusion Forecasting
A forecasting system that tracks Ethiopia's digital financial transformation and
projects the two core Global Findex
dimensions of financial inclusion:
- **Access** — Account Ownership Rate (`ACC_OWNERSHIP`)
- **Usage** — Made/Received a Digital Payment (`USG_DIGITAL_PAY`)
Built for *Selam Analytics* on behalf of a consortium of development finance
institutions, mobile money operators, and the National Bank of Ethiopia.
---
## Status
| Task | Description | State |
|------|-------------|-------|
| **Task 1** | Data exploration & enrichment | ✅ Done |
| **Task 3** | Event-impact modelling (`src/impact_model.py`) | ✅ Done |
| **Task 4** | Forecasting Access & Usage 2025–2027 (`src/forecast.py`) | ✅ Done |
| **Task 5** | Interactive dashboard (`dashboard/app.py`) | ✅ Done |
| **Final report** | Blog-post report, PDF (`reports/Final_Report.pdf`) | ✅ Done |
## The unified data schema
One table, four record types (see `data/raw/reference_codes.csv`):
| `record_type` | `category` | `pillar` | Notes |
|---------------|-----------|----------|-------|
| `observation` | — | **yes** | a measured value |
| `target` | — | **yes** | an official goal |
| `event` | **yes** (product_launch, policy, …) | *empty* | pillar-neutral by design |
| `impact_link` | — | **yes** | joins an event → an indicator via `parent_id` |
**Key principle:** events are *not* pre-assigned to a pillar. Their effects are
modelled through `impact_link` records, so the data stays unbiased.
```python
from src.data_loader import load_enriched_data, events_affecting_pillar
df = load_enriched_data()
events_affecting_pillar(df, "ACCESS") # what drives Access, joined to event details
```
## Datasets
| File | Records | Description |
|------|---------|-------------|
| `data/raw/ethiopia_fi_unified_data.csv` | 57 | Starter (30 obs, 10 events, 14 impact_links, 3 targets) |
| `data/raw/reference_codes.csv` | 71 | Valid codes for every categorical field |
| `data/pr …