In the field
field_ops/ · base R, no packages
The evening run
One call against the day's export. Returns the cases to act on tomorrow and a per-enumerator summary for the morning meeting.
Read the guide →
Duplicates, blanks, ranges, duration
Duplicate IDs, blanks in questions that are never skipped, values outside a declared range, interviews finished in a fraction of the expected time, interviews stamped outside working hours, and batteries answered identically throughout.
Read the module →
Who differs from everyone else
Workload, missingness and "don't know" rates per enumerator, and leave-one-out comparisons of means, held within village or stratum so an enumerator is compared only with others in the same area.
Read the module →
Re-interview against original
Compares a supervisor's re-interview with the original by question type: stable facts, recall items, and questions expected to change. Reports error rates per type, never pooled.
Read the module →
Nothing here changes data. Each check flags a case; a person decides.
Modules
Nine folders of R
Field checks
Thirteen checks for data still being collected, plus an ODK reader.
Open →
Evaluation
Cost per outcome, social return over a multi-year horizon, and coded interview material beside the numbers.
Open →
Regression
Logistic models, interaction terms, and VIF for collinear predictors.
Open →
Survey tools
Sample size for simple, stratified and cluster designs; weights; weighted summaries.
Open →
Qualitative
Coding open-ended responses and interview text with quanteda.
Open →
Visualisation
One panel per district, target against actual, waterfall charts, a district map.
Open →
Index builders
Composite scores for climate vulnerability, health access and education outcomes, and a reshaper for wide indicator trackers.
Open →
Notebooks
Four Quarto documents: climate risk, education, public health, MEL dashboard.
Open →
Python integration
Calling Python from R with reticulate.
Open →
Links open on GitHub.
DHS worked example
survey_tools/dhs_stunting.R
Child stunting by wealth quintile
Estimates stunting from a DHS children's recode with design-based intervals and compares the result with the published NFHS-5 figures: 35.5 per cent nationally, 46.1 in the poorest quintile, 22.9 in the richest.
Read the script →
The loader
Turns a raw DHS recode into the CSV this script reads. The two repositories share a file, not a dependency.
Open the loader →
Subgroups go through svyby on the whole design, and design effects use
deff = "replace" because v005 is a relative weight.
Status
Stable
The code works and is not under active development. Bug reports are welcome; new features are unlikely, and replies take weeks. See the maintenance policy.
DOI 10.5281/zenodo.15250764. Companion repositories: InsightStack (calculators, Stata, data loaders) and EquityStack (Python).