Chaîne de collecte ménage KoBoToolbox pour un Registre Social Unifié au Niger : XLSForm, extraction API v2, contrôles qualité et déduplication d'identité adaptée aux formes onomastiques sahéliennes.
# kobo-rsu-niger
> Voir aussi `rsu-dedup-django` :
> la déduplication d'identité de ce dépôt reprise en application Django, avec
> écran d'arbitrage des paires suspectes.
Chaîne complète de collecte ménage sous **KoBoToolbox**, conçue pour un
Registre Social Unifié en contexte nigérien : formulaire XLSForm, extraction
par l'API v2, contrôles qualité quotidiens et déduplication d'identité adaptée
aux formes onomastiques sahéliennes.
Le dépôt est autonome : la déduplication tourne sur un jeu d'essai intégré,
sans compte KoBo ni jeton d'API.
```bash
pip install -r requirements.txt
python scripts/build_xlsform.py # produit form/rsu_menage_niger.xlsx
python scripts/build_communes.py # produit data/communes.csv
python scripts/dedup_menages.py --demo
```
## Ce que couvre le formulaire
124 lignes de questionnaire, 8 sections, 232 modalités de réponse.
| Section | Contenu |
|---|---|
| 0 | Code agent, consentement éclairé, sortie propre en cas de refus |
| 1 | Cascade région → département → commune, village, grappe, GPS |
| 2 | Chef de ménage : état civil, pièce d'identité, téléphone, clé de rapprochement |
| 3 | Roster des membres en groupe *repeat*, PB et œdèmes pour les moins de 5 ans |
| 4 | Statut de résidence : PDI, réfugié, retourné, ménage hôte |
| 5 | Habitat, WASH, biens durables, cheptel converti en UBT |
| 6 | Sources de revenu, stock céréalier, repas de la veille, stratégies d'adaptation |
| 7 | Trois besoins prioritaires, accès au *mobile money* |
| 8 | Score de vulnérabilité provisoire et validation par l'agent |
Le formulaire compile sans erreur sous `pyxform` / ODK Validate.
## Les choix qui comptent
**Cascade administrative en deux temps.** Les 8 régions et les 63 départements
sont dans la feuille `choices`. Les 266 communes passent par un fichier média
externe (`select_one_from_file communes.csv`) : le référentiel communal bouge,
et il ne doit pas obliger à redéployer le formulaire à chaque correction.
`build_communes.py` régénère ce fic …