|
Health-GPS 3.0.0.0
Global Health Policy Simulation model (Health-GPS)
|
| Quick Start | Documentation | February 2026 updates | Development Tools | License | Third-party Components |
Health-GPS microsimulation is part of the STOP project, and supports researchers and policy makers in the analysis of the health and economic impacts of alternative measures to tackle chronic diseases and obesity in children. The model reproduces the characteristics of a population and simulates key individual event histories associated with key components of relevant behaviours, such as physical activity, and diseases such as diabetes or cancer.
Health-GPS has now been adapted to run for projects such as FINCH, JACARDI and JA PreventNCD. It can run for multiple projects using the inputs available at HealthGPS-examples for each of the projects. Example: to run for STOP, use the HLM_France folder; for India the KevinHall_India folder; for FINCH the KevinHall_FINCH folder.
The Health GPS microsimulation is being developed in collaboration between the Centre for Health Economics & Policy Innovation (CHEPI), Imperial College London; and INRAE, France; as part of the STOP project. The software architecture uses a modular design approach to provide the building blocks of the Health GPS application, which is implemented using object-oriented principles in Modern C++ programming language targeting the C++20 standard.
Full docs live under [documentation/](documentation/README.md). Start there for indexes by audience.
| Need | Document |
|---|---|
| Documentation home | documentation/README.md |
| Site-style intro (diagrams) | documentation/index.md |
| First run / binaries | Quick Start |
| Config, outputs, HPC | User Guide |
| JSON schemas (diagrams) | Configuration schemas |
| Models and module I/O | Models overview · Simulation models reference |
| Build from source / CMake | Developer Guide |
| Architecture | Software Architecture |
| Data model / Datastore | Data Model |
Windows MSVC / Ninja (cstdint, MSVCRTD.lib) | MSVC troubleshooting |
| GitHub Pages deploy failed | Docs deploy troubleshooting |
| FINCH / income / predictors | FINCH guide |
| Feb 2026 integrated changes | Update report |
| Threading / HPC sizing | Performance guide |
| Feature plans | technical/README.md |
| Doxygen API (GitHub Pages) | API |
Published website: https://imperialchepi.github.io/healthgps/. It is rebuilt from documentation/ by the docs workflow on release or manual dispatch, not on every push. Until that workflow runs against the current tree, the live site may lag the repo (older flat page layout).
The HealthGPS Update Report – 20th Feb 2026 summarises integrated changes (demographics, socioeconomic/income, static and dynamic risk factors, analysis/output, disease/PIF, policy, config/schema), parallelisation notes, and a developer file map. Snippets below are taken from that report.
Supported use cases: India, ADB, and FINCH on a shared codebase; backward compatibility with older India-style configs is retained alongside newer schema options.
Module pipeline (simplified):
Host application, run loop, module order, and output:
Person initialisation sequence (overview):
Last updated Significant progress has been made across the HealthGPS codebase. The following features and improvements are now completed:
These updates improve robustness, extensibility, and consistency across both baseline and intervention workflows.
Detailed tables describing:
are in the full update report.
Relevant design documents (under documentation/technical/plans/):
Health-GPS is driven by config flags (not hard-coded project names). Optional project_requirements in config.json controls demographics (region, ethnicity, gender2), income type and final category count (3 / 4 / 5), physical activity, trends, and two-stage logistic behaviour. See:
schemas/v1/config/project_requirements.jsonAs part of the FINCH project, income-stratum and quintile-based calibration adjust model outputs to better reflect observed distributions by:
This enables income-stratified calibration and improves external validity when comparing model outputs against observed data.
See the modeller-facing FINCH guide and the income quintile factor means plan.
The Health GPS application provides a command line interface (CLI) and runs on Windows 10 (and newer) and Linux devices. All supported options are provided to the model via a configuration file (JSON format), including intervention scenarios and multiple runs. Users are encouraged to start exploring the model by changing the provided example configuration file and running the model again.
Prefer -c / --config for the config path (file, folder, or zip URL). Put the backend datastore in data.source inside the config. Optional flags include -T / --threads (TBB cap) and --dry-run. Deprecated: -f / --file and -s / --storage.
From a Git Bash-style shell, run the console app with a config file and optional thread count:
First argument path: built executable HealthGPS.Console.exe. -c: path to your JSON configuration (input / scenario). -T: number of threads TBB may use for parallel work (example: 2). If you omit -T, the model uses the maximum parallelism available on your machine (effectively up to the number of logical CPUs), subject to TBB defaults.
NOTE: If you specify the number of threads, a minimum of 2 threads is required.
Adjust the two paths to match where you built Health-GPS and where your config.json lives (e.g. PowerShell):
For more information, see the documentation home, Quick Start, and the User Guide.
The Health GPS software is written in modern, standard ANSI C++, targeting the C++20 version and using the C++Standard Library. The project is fully managed by CMake and Microsoft Visual Studio, the code base is portable but requires a C++20 compatible compiler to build. The development toolset uses Ninja for build, vcpkg package manager for dependencies, googletest for unit testing and GitHub Actions for automated builds.
For more information, see the Developer Guide. On Windows, if CMake cannot find headers such as cstdint or linking fails on MSVCRTD.lib, see MSVC / Ninja troubleshooting.
The code in this repository is licensed under the BSD 3-Clause license.
| Name | License |
|---|---|
| Adevs | BSD 3-Clause |
| crossguid | MIT |
| cxxopts | MIT |
| eigen | MPL2 |
| fmt | MIT |
| nlohmann-json | MIT |
| jsoncons | Boost |
| rapidcsv | BSD 3-Clause |
| oneAPI TBB | Apache 2.0 |
| libzippp | MIT |
| openssl | Apache 2.0 |
| PlatformFolders | MIT |
| curlpp | MIT |
| Name | License |
|---|---|
| vcpkg | MIT |
| googletest | BSD 3-Clause |
Author: Mahima Ghosh