Stratum | Buildings Completed | Completion Rate | Known Eligibility Rate | Adjustment Factor |
|---|---|---|---|---|
Gabasawa | ||||
1. Joda Ward | 1,145 | 100% | 100.00% | 1.000 |
2. Tarauni Ward | 771 | 100% | 100.00% | 1.000 |
3. Zugachi Ward | 1,220 | 100% | 100.00% | 1.000 |
4. Mekiya Ward | 1,908 | 100% | 99.95% | 0.999 |
5. Garun Danga Ward | 1,519 | 100% | 99.93% | 0.999 |
6. Zakirai Ward | 1,119 | 100% | 100.00% | 0.998 |
7. Gabasawa Ward | 2,104 | 100% | 99.95% | 0.998 |
8. Yautar Kudu Ward | 1,943 | 100% | 99.85% | 0.997 |
9. Yautar Arewa Ward | 1,156 | 100% | 99.91% | 0.997 |
10. Karmami Ward | 1,539 | 100% | 99.87% | 0.995 |
11. Yumbu Ward | 809 | 99% | 100.00% | 0.993 |
Gaya | ||||
12. Gamarya Ward | 712 | 100% | 100.00% | 1.000 |
13. Gaya South Ward | 1,862 | 100% | 100.00% | 1.000 |
14. Kademi Ward | 1,921 | 100% | 99.95% | 0.999 |
15. Shagogo Ward | 1,842 | 100% | 99.89% | 0.999 |
16. Wudilawa Ward | 846 | 100% | 99.88% | 0.999 |
17. Gaya North Ward | 3,002 | 100% | 99.93% | 0.997 |
18. Maimakawa Ward | 1,829 | 100% | 99.78% | 0.996 |
19. Balan Ward | 1,184 | 100% | 99.83% | 0.995 |
20. Kazurawa Ward | 1,215 | 99% | 99.92% | 0.991 |
21. Gamoji Ward | 811 | 99% | 99.88% | 0.989 |
Nassarawa | ||||
22. Gwagwarwa Ward | 229 | 100% | 100.00% | 1.000 |
23. Kaura Goje Ward | 1,823 | 100% | 100.00% | 1.000 |
24. Hotoro North Ward | 3,121 | 100% | 99.97% | 0.998 |
25. Hotoro South Ward | 890 | 100% | 99.78% | 0.997 |
26. Gama Ward | 826 | 100% | 99.64% | 0.996 |
27. Gawuna Ward | 365 | 99% | 100.00% | 0.995 |
28. Kawaji Ward | 2,120 | 99% | 99.86% | 0.993 |
29. Tudun Murtala Ward | 1,422 | 99% | 100.00% | 0.988 |
30. Dakata Ward | 909 | 99% | 99.89% | 0.986 |
31. Giginyu Ward | 2,936 | 97% | 99.76% | 0.970 |
32. Tudun Wada Ward | 455 | 94% | 99.78% | 0.942 |
Non-sentinel LGAs | ||||
33. Gezawa LGA | 1,287 | 100% | 99.92% | 0.999 |
34. Dawakin Kudu LGA | 2,196 | 100% | 99.91% | 0.999 |
35. Ungogo LGA | 3,148 | 100% | 99.87% | 0.998 |
36. Dambatta LGA | 1,972 | 100% | 100.00% | 0.998 |
37. Takai LGA | 1,626 | 100% | 99.88% | 0.998 |
38. Dawakin Tofa LGA | 1,951 | 100% | 99.74% | 0.997 |
39. Bebeji LGA | 1,512 | 100% | 99.80% | 0.997 |
40. Tudun Wada LGA | 1,906 | 100% | 99.95% | 0.997 |
41. Kumbotso LGA | 5,743 | 100% | 99.76% | 0.997 |
42. Tarauni LGA | 1,399 | 100% | 100.00% | 0.996 |
43. Kiru LGA | 2,268 | 99% | 99.96% | 0.993 |
44. Sumaila LGA | 2,530 | 99% | 99.96% | 0.989 |
Appendix D — Methodological Details
D.1 Survey Weighting
D.1.1 Building-Level Base Weights
Because Enumeration Areas (EAs) and building footprints were sampled prior to the commencement of fieldwork, it is possible to calculate a so-called base weight at the building level that represents how many other buildings each sampled building represents (including itself).
Building-level base weights are calculated as the inverse of the product of the probabilities of selecting each building \(j\) and each EA \(i\). Specifically, the building base weight \(d_{j}\) for the \(j\)th building is defined as
\[ \tag{building-level base weight} d_{j} = \frac{1}{\pi^{(1)}_{i} \times \pi^{(2)}_{j}} \]
where:
- \(\pi^{(1)}_{i}\) is the stage-1 probability of selecting the \(i\)th gridded EA in stratum \(h\) (note that for the sentinel sample, this is effectively 1).
- \(\pi^{(2)}_{j}\) is the stage-2 probability of selecting the \(j\)th building footprint,1
D.1.2 Post-stratification of building weights
Using data on the degree of urbanization and other morphological features from the Global Human Settlement Layer (GHSL), these attributes are spatially joined to the entire sampling frame of all 2,420,103 building footprints in the sampling frame. The building-level base weights \(d_j\) then post-stratified to a new weight vector \(d^{\textrm{ps}}_j\) by Local Government Area (LGA) and GHSL feature to improve the representativeness of the weights.
D.1.3 Adjustment for Unknown Building Eligibility
Buildings are eligible if they are deemed residential. Whereas this is often easy to determine, there are some cases where the field team cannot establish the status of a sampled building. The building-level base weights are therefore adjusted to account for buildings where eligibility could not be determined (e.g., vacant or inaccessible). This adjustment was based on two stratum-level metrics, both displayed in Table D.1:
- the building completion rate for stratum \(h\), defined as the proportion of sampled buildings with completed interviews,
- the building known eligibility rate for stratum \(h\), defined as the proportion of sampled buildings for which eligibility status (i.e., building type) was known.
The product of these two quantities forms an adjustment factor \(a_h\). This factor is used adjust the post-stratified building weights:
\[ \tag{building-level adjusted weight} d^{\textrm{adj}}_{j \in q} = \frac{d^{\textrm{ps}}_j}{a_h} \] where
- \(q\) is the subset of sampled building footprints with known eligibility, and
- \(d^{\textrm{ps}}_j\) is the post-stratified weight for the \(j\)th building, and
- \(a_h\) is the known eligibility factor for stratum \(h\).
D.1.4 Adjustment for Non-Response and Multiplicity
Household-in-building weights are calculated as the inverse of the probability of selecting each household \(k\) within a building \(j\) and EA \(i\). Specifically, the calibrated household-within-building weight \(w^{\textrm{cal}}_{j,k \in r}\) is computed as
\[ \tag{household-in-building weight} w^{\textrm{cal}}_{j,k \in r} = \frac{d^{\textrm{adj}}_j}{\pi^{(3)}_{k} \times m_{k} \times \hat{\phi}_{k}} \]
where:
- \(r\) is the subset of sampled households that resulted in a successful interview (the so-called response set), and
- \(\pi^{(3)}_{k}\) is the conditional stage-3 probability of selecting household \(k\) within sampled building \(j\), and
- \(m_k\) is the number of building structures reported by the respondent \(k\) as belonging to its household \(k\), and
- \(\phi_k\) is the modeled response propensity of household \(k\) (see the section on non-response below).
D.1.4.1 Multiplicity
The adjustment \(m_k\) controls for the multiple potential paths of entry of a household into the final sample (so-called “multiplicity”). This can happen if a household has both a main house and, say, a barn for animals and a toolshed. In this example, the given household would have three pathways into the sample (\(m_k=3\)). If, by chance, two of the buildings were sampled, it would be represented by two rows of data each having 1/3 of the usual building weight. The net effect is that when producing aggregated estimates, this household would have 2/3 the weight of a comparable household without multiple buildings. In practice, this household would only be interviewed once, and the data copied across two rows. This is collapsed back to a one-row-per-household basis in a later adjustment step described below.
D.1.4.2 Unit Non-Response
To reduce the impact of non-response bias, such as effects potentially arising from differences in skill between enumerators, Mindset built a series of multilevel logistic regression models and used the predicted probabilities to adjust survey weights. These models included a contact model and a cooperation model, whose predicted probabilities form the estimated response propensity for each household when multiplied together. The adjustment procedure assumes that non-response is conditionally independent after modeling. Models were fit on a random training subset of 70% of data collected for the conventional and adaptive components.2 The formulas for these models are shown below using the notation from the {lme4} statistical package in R (Bates et al. 2025).
The contact model estimates the probability that an individual answers the door. It includes fixed effects for the interview time of day, the GHSL Morphological Settlement Zone (MSZ) layer, and the GHSL Global Human Settlement Layer Settlement Model (SMOD) layer (Pesaresi et al. (2023); Florczyk et al. (2019)). ghsl_msz is a categorical variable that characterizes the physical structure of an area. It captures attributes such as the height of residential buildings or whether a given building footprint is in a largely unbuilt area. The ghsl_smod variable is a categorical factor capturing the degree of urbanization. It takes values of mostly uninhabited, dispersed rural, village, semi-dense town, dense town, suburban or peri-urban, or city.
Additionally, random intercepts were included for LGA, ward, cluster, and subcluster (nested within each other), as well as for each field enumerator conducting the interview and field supervisor. For the non-sentinel area, the cluster variable represents the gridded EA, whereas in the sentinel area it is a custom cluster fit post-sample draw that assembled roughly 99 footprints per cluster for logistical purposes. The subcluster is a sub-division of the cluster that roughly partitions the cluster into three areas so that a team of three enumerators may divide the fieldwork amongst themselves.
The cooperation model estimated the probability that an eligible household with an infant aged 0–23 months would agree to participate. As in the contact model, it includes fixed effects for the interview time of day and for the GHSL Settlement Typology.
The model also includes random intercepts for LGA and ward (nested within the LGA), as well as for each enumerator and supervisor.
The summary of these models is presented below:
(Model 1.1) | (Model 1.2) | ||
|---|---|---|---|
Random Effects | |||
σ² | Residual logistic variance | 3.29 | 3.29 |
τ₀₀ | LGA | 0.06 | 0.04 |
Ward within LGA | 0.11 | 0.15 | |
Cluster within ward | 0.23 | 0.50 | |
Subcluster within cluster | 0.19 | — | |
Enumerator | 0.42 | 0.69 | |
Supervisor | 0.02 | 0.06 | |
Observations | 41,594 | 20,843 | |
Marginal R² / Conditional R² | 0.042 / 0.271 | 0.022 / 0.320 | |
The \(\tau_{00}\) values represent the variance attributable to group-level random effects on the logistic scale (such as differences across LGAs or field staff) after accounting for the fixed effects.
The marginal \(R^2\) indicates the proportion of variance explained by the fixed effects alone, while the conditional \(R^2\) reflects the total variance explained by the full model, including both fixed and random effects. The gap between these two values measures the contribution of group-level structure to explaining response outcomes.
The residual latent variance \(\sigma^2\) is fixed at \(\pi^2/3 \approx 3.29\) by convention in multi-level logistic regression models.
In Table D.2, the low marginal \(R^2\) values suggest that the fixed effects account for only a small portion of variation in contact and cooperation, whereas the much higher conditional \(R^2\) values indicate that most of the explained variance comes from differences between groups captured by the random effects.
Assuming that contact and cooperation are conditionally independent given the model covariates, the predicted probability of response for each sampled household \(k\) in the set \(r\) of complete interviews, \(\hat{\phi}_k\), is then calculated as
\[ \hat{\phi}_{k\in r} = \hat{\nu}_k \hat{\gamma}_k \]
where \(\hat{\nu}_k\) is the predicted probability that the household was contacted (from the contact model), and \(\hat{\gamma}_k\) the predicted probability that the household agreed to participate once contacted (from the cooperation model).
Before using these predicted probabilities to adjust the design weights, their calibration was checked using separate validation data splits. Calibration plots for both the contact and cooperation models compare the predicted probabilities to actual event rates across bins (Figure D.1).
The plots indicate that both models are reasonably well-calibrated in the regions most relevant to the observed data, supporting their use in non-response adjustment. The contact model achieved a Brier score3 of 0.12 and a Area Under the Receiver Operating Characteristic Curve (AUC-ROC)4 of 0.68, while the cooperation model performed slightly better with a Brier score of 0.08 and a AUC-ROC of 0.72 . These model scores were calculated on a partition of the data not used for model training .
After these checks, the predicted probabilities were used to adjust the design weights for non-response by dividing each unit’s weight by its corresponding \(\hat{\phi}_{k \in r}\). This increases the weight of respondents with lower estimated response probability and decreases it for those with higher response probability, helping to correct for non-response bias.
D.1.5 Weight Marginalization
Under the above design, certain households with multiple buildings footprints can be sampled more than once (hence the double-indexing \(w^{\textrm{cal}}_{j,k}\)). Although in practice, enumerators would only interview a repeated household once, these cases would have two or more rows of data in the original sample of building footprints. Therefore, in calculating household weights, weights \(w^{\textrm{cal}}_{j,k}\) are marginalized over distinct building footprints so that each row of data represents one household (without repeats). This produces a weight vector \(w^{\textrm{cal}}_{k}\) where each row represents a unique household.
D.1.6 Weight Trimming
To limit the influence of very large weights, weights \(w^{\textrm{cal}}_{k}\) were trimmed per LGA by capping them at 3.5 times the median LGA weight. This trimming step produces the new weight \(w^{\textrm{trim}}_{k}\) that helps limit the influence of individual units with very low response probabilities and results in more stable estimates that typically reduce the mean squared error of estimates. This procedure iteratively re-allocates some of the mass from large weights and redistributes it evenly to smaller weights such that \(w^{\textrm{trim}}_{k}\) sums to the same total as the untrimmed weight (\(\sum w^{\textrm{cal}}_{k} = \sum w^{\textrm{trim}}_{k}\)).
D.1.7 Expansion to Child-Level Weights
In principle, 100% of children 0-23 months were interviewed within sampled households that agreed to participate in the survey. For this reason, the stage-4 sampling probability is 100% and the child-level weights are effectively identical to their corresponding household level weight. For example, a given household that has a weight of 15.0 and twins would have child-level weights of 15.0 for each of the twins.
D.2 Variance Estimation
Estimates of Standard Errors (SEs) were produced using a generalized bootstrap method (Rao-Wu-Yue-Beaumont) (Beaumont and Émond 2022) as implemented by the {svrep} R package (Schneider 2025). This approach accounts for the complex multi-stage sampling design, which involved differing stratification levels, finite population correction, and sampling stages for sentinel and non-sentinel LGAs. All weighting adjustments applied to the main survey weight were also applied to the replicate weights. Several factors motivate the use of bootstrap weights over the simpler linearization variances. First, the bootstrap weights harmonize the two sampling designs (sentinel and non-sentinel) into a unified framework that is easy to analyze jointly. Second, they allow for post-stratification and calibration at different stages of sampling– something which is typically not supported by survey software. Since recent and precise population data is available at the level of building footprints, but not necessarily at the level of households, this flexibility enables post-stratification by the research team. Third, bootstrap weights make it simple to share replicate weights with third-party researchers, thereby allowing them to obtain the same variance estimates as Mindset without needing to have access to potentially sensitive design variable and/or without needing deep knowledge of the sampling design and sampling theory. Finally, the bootstrap weights also allow for the uncertainty associated with the unknown number of children to be reflected in the estimates, and for finite population corrections to be carried through in domain estimates. Most survey software drop finite population corrections on sub-domains that are not strata.
A set of 3,000 bootstrap replicate weights were generated. The first 500 are used in this report for analysis. The recommended number of bootstrap replicates depends on the amount of Monte Carlo error analysts are willing to accept, with larger numbers requiring more time and computation. This error is in addition to the sampling error, but can be made arbitrarily small by increasing the number of replicates used. Table D.3 estimates the number of replicates needed to keep the Monte Carlo error below a specified target for given variables of interest. For example, if we estimate the prevalence of zero-dose children using the Penta-1 approach, and we wish the variance of the estimates to be no more than 5% of the linearized estimate, then we would need 302 replicates. By the delta method, the relative Monte Carlo error on the standard error would be roughly half of that for the variance. This implies that with 302 replicates, we would expect roughly 2/3 of such bootstrap samples to have Monte Carlo error on SEs of 2.5% or less when estimating the Penta-1 zero-dose rate.
Target coefficient of variation on the variance estimate | Suggested number of replicates to use | True zero-dose children (crude basis) | Penta-1 zero-dose children (crude basis) | Fully-vaccinated children (crude basis) |
|---|---|---|---|---|
For estimating a proportion | ||||
0.01 | 14,286 | 14,286 | 7,534 | 9,926 |
0.02 | 3,572 | 3,572 | 1,884 | 2,482 |
0.03 | 1,588 | 1,588 | 838 | 1,103 |
0.04 | 893 | 893 | 471 | 621 |
0.05 | 572 | 572 | 302 | 398 |
0.10 | 143 | 143 | 76 | 100 |
For estimating a total | ||||
0.01 | 14,372 | 14,372 | 7,609 | 10,288 |
0.02 | 3,593 | 3,593 | 1,903 | 2,572 |
0.03 | 1,597 | 1,597 | 846 | 1,144 |
0.04 | 899 | 899 | 476 | 643 |
0.05 | 575 | 575 | 305 | 412 |
0.10 | 144 | 144 | 77 | 103 |
All analyses were conducted after applying the replicate design. This ensures that resulting SEs appropriately reflect the uncertainty associated with both the sampling design and the estimation of population sizes.
For the non-sentinel sample, this is the conditional probability of sampling building \(j\) within the \(i\)th selected EA. For the sentinel sample, it is the unconditional stage-1 probability of selecting a building within stratum \(h\), since no actual sampling of EAs took place in the non-sentinel sample. For greater simplicity, this is harmonized into a single notation as \(\pi^{(2)}_{j}\). These building-level weights are calculated prior to data collection for all 77,807 building footprints sampled.↩︎
Combining data across the conventional and adaptive samples for model fitting allowed each survey component to borrow strength from the other by using a single model model to serve the non-response adjustment in each sample. Because the adaptive component has considerably smaller sample sizes, this pooling of information greatly improves the quality of the predicted response propensities.↩︎
The Brier score is a measure of how good a binomial model’s predicted probabilities are at describing the true frequency of an outcome. It is a so-called proper scoring rule, meaning it encourages honest probability estimates. For example, if a model produces quality predicted probabilities, then cases labelled as having 0.7 probability should actually occur 70% of the time. Brier scores closer to zero are better, with a max theoretical (bad) score at 0.25 when positive and negative classes have 50/50 balance.↩︎
The AUC-ROC metric measures how well a binomial model can distinguish between two outcome classes. If a model assigns higher predicted probabilities to true positives than to true negatives, it will have a higher AUC-ROC. An AUC-ROC of 0.5 indicates no discriminative ability (random guessing), while a score of 1.0 reflects perfect ranking of cases from highest to lowest risk. The AUC-ROC focuses only on ranking, not the calibration of predicted probabilities.↩︎