Python simulation model for evaluating maternal health outcomes, health-system requirements, and cost-effectiveness of Service Delivery Redesign scenarios in Kakamega, Kenya.
# Kakamega SDR Simulation Model
This repository contains the open-access Python implementation of the Kakamega
Service Delivery Redesign (SDR) simulation model used to evaluate maternal health
outcomes, health-system requirements, and cost-effectiveness under alternative
SDR implementation scenarios.
## Repository Contents
- `model_run.py`: main model runner used by the dashboard and scenario analyses.
- `parameters.py`: model parameters and cost assumptions.
- `global_func.py`: shared probability, sampling, and DALY helper functions.
- `LB_effect.py`: antenatal care and delivery-location transition logic.
- `intrapartum.py`: intrapartum outcomes, maternal complications, neonatal complications, referrals, transfers, labor, and equipment requirements.
- `mortality.py`: maternal mortality logic.
- `costing.py`: Appendix B-aligned cost and ICER calculations.
- `SDR_Dash.py`: Streamlit dashboard for interactive model exploration.
- `Scenario testing/scenario_analysis.ipynb`: scenario-analysis workflow for generating multi-run simulation outputs.
Model calibration and parameter definitions are described in Appendix A of the
manuscript.
## Installation
This project was developed with Python 3.11.
```bash
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
If you use conda, create and activate a Python 3.11 environment before running
the same `pip install -r requirements.txt` command.
## Running the Dashboard
```bash
streamlit run SDR_Dash.py
```
The dashboard supports interactive baseline-versus-intervention comparisons.
It reuses a cached baseline when model settings are unchanged and reruns the
intervention when users adjust intervention sliders.
The cost-effectiveness dashboard calls `costing.py`, so dashboard cost outputs
use the same costing assumptions as Appendix B.
## Running the Model From Python
The main model function is `run_model_dash()` in `model_run.py`.
```python
import numpy as np
from global_func import rese …