Household Survey Cleaning and Weighting Toolkit for NGOs
A final year project that builds a data cleaning and analysis toolkit for NGOs that collect household surveys with KoboToolbox or ODK. It runs quality checks, keeps a full cleaning log, applies survey weights, and produces estimates with margins of error, replacing the error-prone Excel steps between data collection and the donor report.
Intermediate
A small team, or one strong student willing to learn something new.2 semesters · 2 to 3 students
6 to ship
3 optional extrasSuggested stack
What you should ship
- An importer that reads KoboToolbox and ODK exports (including repeat groups and select-multiple questions) using the XLSForm definition to understand question types and labels.
- A configurable check engine: range and logic checks, skip-pattern violations, duplicate submissions, too-fast interviews, and enumerator-level outlier patterns.
- A cleaning log where every change (value, reason, who, when) is recorded and can be replayed on a fresh export to reproduce the cleaned dataset exactly.
- Survey weighting: design weights from the sampling plan plus raking to known population totals, with weight trimming and diagnostics.
- Weighted estimates (proportions, means, cross-tabs) with confidence intervals and design effects, exportable as tables and charts.
- An evaluation comparing your estimates with R's survey package on the same data, and a test with at least three M&E staff on a real or public survey.
If you have time left
- Daily field monitoring dashboard during data collection: completion by area, enumerator flags, and alerts.
- Automatic codebook generation in English and a second language from the XLSForm.
- Anonymisation checks that flag quasi-identifiers before data is shared.
The problem NGOs face after data collection
NGOs, UN agencies and research groups collect household surveys on phones using KoboToolbox or ODK: needs assessments after floods, baseline and endline surveys for projects, nutrition and livelihood studies. Collection is well served. What happens after is not. Monitoring and evaluation (M&E) officers export to Excel, fix errors by hand, lose track of what they changed, and often report unweighted percentages even when the sample was not proportional. When a donor asks how a figure was calculated, the answer is a spreadsheet nobody can reproduce.
What already exists and the gap
- KoboToolbox is free for humanitarian and non-profit use, handles form building and collection, and offers basic cleaning and validation; complex cleaning and analysis usually move to external tools.
- SurveyCTO is a paid collection platform with stronger monitoring features.
- Stata, SPSS and R's survey package do weighting and variance estimation properly, but need statistical programming skills and paid licences in the first two cases.
- svy (the successor to samplics) is an open-source Python library for survey weighting, raking and estimation.
The gap: a tool between collection and reporting that an M&E officer can use without writing code, which enforces a reproducible cleaning log and gets the statistics right. Humanitarian data teams often talk about reproducibility; few small NGOs have a practical way to achieve it.
What you build
Roles: M&E officer (runs checks, cleans, analyses), field supervisor (sees enumerator flags), reviewer (approves cleaning decisions).
Flows:
- Upload the XLSForm and the data export; the tool builds a typed schema with labels.
- Checks run and produce an issues list, grouped by type and enumerator.
- The officer resolves each issue (correct, set missing, keep with note); every action goes into the cleaning log.
- The sampling design is entered (strata, clusters, selection probabilities) and population totals for raking.
- Weighted tables and charts are produced with margins of error and exported for the report.
The technically interesting part
Two pieces. Reproducible cleaning: the cleaning log must be a script, not notes. Given the raw export and the log, the tool regenerates the clean dataset byte for byte, even after new submissions arrive. Design the log format, handle repeat groups (child tables), and deal with conflicts when a later export changes an already-cleaned row.
Correct statistics: implement design weights, raking with convergence checks and trimming, and variance estimation that accounts for clustering. Validate against R's survey package, the reference most statisticians trust. Show evaluators the design effect: how much wider the true intervals are than the naive ones.
How to evaluate it
- Statistical agreement: estimates and standard errors match R's survey package to a stated tolerance on at least two public survey datasets.
- Check engine: plant 200 known errors in a clean dataset; report detection rate and false flags.
- Reproducibility: regenerate the clean dataset from raw plus log on a new machine; confirm an identical hash.
- Performance: checks on 20,000 submissions with repeat groups finish in under a set time on a laptop.
- Users: three or more M&E staff clean and analyse a sample survey; compare time and errors with their usual Excel process.
Suggested plan
- Weeks 1 to 3: interview M&E staff, collect public survey datasets and forms.
- Weeks 4 to 8: XLSForm-aware importer, schema, repeat groups.
- Weeks 9 to 13: check engine and issue list.
- Weeks 14 to 17: cleaning log with replay.
- Weeks 18 to 23: weighting, raking, estimation, validation against R.
- Weeks 24 to 28: user tests, evaluation, write-up.
Path to a product
The first users are small and mid-sized NGOs and research firms that run a few surveys a year. Release the core as open source for trust, and charge for hosted workspaces, team features and support per organisation per year. Survey research consultancies and university research centres are paying customers; UN cluster coordination teams could be a larger channel later.
Scope warning
Do not build a new data collection app; integrate with KoboToolbox and ODK. Do not attempt small area estimation or complex modelling in the core scope. Never upload personal survey data to third-party services; keep processing local or self-hosted.
Learn what you need on Sefism
- Data Analytics roadmap : the cleaning and analysis foundations.
- Data Analytics cheat sheet : pandas reshaping and grouping for repeat groups.
- OpenIntro Statistics : sampling, confidence intervals and why weighting matters.
- DuckDB Documentation : fast local processing of large exports.
- Storytelling with Data : presenting survey results with uncertainty to donors.
Get help with this idea
The usual risk is doing too little on statistical correctness because the cleaning screens take all the time. If you want a second opinion on scope, stack or how to evaluate it before you pitch it to your supervisor, a mentor can help you shape it. You still build it; the guidance is about making the plan realistic and the results defensible. New here? create a free account first.
Ideas and guidance, not finished projects
These are project ideas and scoping guidance, published free for students to use as a starting point. I do not build, write, or sell final-year projects, and I do not complete coursework for anyone. Take an idea, make it yours, and build it.
Not sure this one fits you?
I help students pick an idea that matches their skills and their deadline, then scope it down until it is finishable. Guidance only, never done for you.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.