


Approach
Design for the audit.
The fastest way to lose a ministry's trust is a confident number that turns out to be wrong. Everything below exists because we expect our work to be checked: by a reviewer, by a later survey, or by reality.
Five commitments
On every engagement, whatever the disease area or the client.
Uncertainty travels with the estimate
Every figure carries a credible or prediction interval, and every interface displays it. Where an estimate is calibrated rather than observed, we say so on the same screen, not in a footnote in an annex.
Validate against data the model never saw
Internal fit tells you how well a model memorised its training data. We test against independent sources and report the disagreements with the agreements, including the weak results that send us back to improve a model.
Pre-specify, then correct for multiplicity
Testing eight relationships and reporting the three that reached significance is not evidence. We fix hypotheses before looking, apply false-discovery-rate correction, and report the tests that failed as prominently as those that held.
State what the model does not do
Every deliverable has a limitations section written for the decision-maker: which areas could not be modelled and why, which relationships are associations rather than causes, and which thresholds mean something narrower than their name. We also publish model cards that state where a model does not beat its baseline.
Build for handover from the first week
An analysis only a consultant can rerun has a shelf life measured in months. We deliver code, procedures, user guides, training and a sign-off cycle the client owns, so the model survives the end of the contract and the next staff rotation.
How an engagement runs
Four movements, whatever the disease area.
Frame the decision, not the dataset
We start from the choice the client has to make and work back to the smallest analysis that can inform it. This is where we say if the data cannot support the question: cheaper in week one than in month five.
Harmonise and triangulate
Programme data arrives from incompatible systems. We reconcile it and decide which source may determine what, and say so in the methods.
Model, carrying the uncertainty
Bayesian hierarchical and small-area models where pooling helps small areas, time-series with intervals for forecasting, spatially varying regression where drivers differ by place, survival models for time to event. Diagnostics are part of the result.
Deliver as a system, then leave
Findings become a platform that re-runs on new data, a set of procedures and a trained team. Success is the client still using the model a year after we have gone.
Methods in regular use

Bayesian
- Hierarchical and Beta regression (PyMC, Stan, NUTS)
- Small-area estimation with BYM2 spatial effects
- Prior sensitivity, credible intervals, posterior ranks
Spatial
- Getis-Ord Gi*, Moran's I and LISA
- Multiscale geographically weighted regression
- Empirical Bayesian kriging, spatial scan statistics
Time and survival
- Prophet, ARIMA-family and CUSUM early warning
- Kaplan-Meier, Cox regression with assumption tests
- Competing risks, time-varying covariates
Causal and missing data
- Difference-in-differences, interrupted time series
- Propensity scores, coarsened exact matching, IPW
- Multiple imputation by chained equations
Machine learning and AI
- Gradient boosting with SHAP, regularised models
- Ward and k-means clustering, Lasso with bootstrap stability
- Retrieval-augmented generation, agents, LLM evaluation
Tools
- R, Python, Stata, SAS, SQL and PostgreSQL
- ArcGIS Pro, QGIS, GeoPandas, DHIS2
- Quarto, Power BI, Tableau, Streamlit; deployment on AWS and Google Cloud
See the standards applied
From data to foresight. See these standards applied.
Published disagreements, named limitations and platforms that the agencies we work with now run.