Skip to contents

The goal of kalaiwash is to provide the baseline and endline household survey data of the KALAI water, sanitation and hygiene project of HELVETAS in Nampula Province, Mozambique. The project was funded by charity. Baseline data were collected in November 2024 and endline data in June 2025 in the districts of Larde, Memba, Moma and Mecuburi. The data describe drinking water sources classified with the WHO/UNICEF Joint Monitoring Programme (JMP) service ladder, and household water insecurity measured with the 12-item Household Water Insecurity Experiences (HWISE) Scale.

Installation

You can install the development version of kalaiwash from GitHub with:

# install.packages("devtools")
devtools::install_github("openwashdata/kalaiwash")

Alternatively, you can download the individual datasets as a CSV or XLSX file from the table below.

  1. Click Download CSV. A window opens that displays the CSV in your browser.
  2. Right-click anywhere inside the window and select “Save Page As…”.
  3. Save the file in a folder of your choice.
dataset CSV XLSX
kalaiwash Download CSV Download XLSX

Data

The package provides access to one dataset.

kalaiwash

For an overview of the variable names, see the following table. The Levels column lists the levels of each categorical variable.

Variable Type Description Levels
survey_date Date Date of the interview NA
survey_type factor Survey round: Baseline (November 2024) or Endline (June 2025) Baseline; Endline
district factor District of Nampula Province where the household is located Larde; Memba; Moma; Mecuburi
community factor Name of village Cruzamento dos velhos; Jacagiua; Lusaka; Macuire; Matata; Miaja; Mieie; Monapo; Mpaheia; Namichir; Nanrele; Nihola; Valdemar
gender factor Whether the respondent is male or female Female; Male
household_size numeric The number of people living and eating together in the household including the respondent NA
source factor Household’s primary drinking water source Borehole with handpump; Protected dug well; Protected dug well with handpump; Public tap or standpipe; Unprotected dug well; Unprotected spring; Surface water
collect_yesterday factor If anyone in the household collected drinking water yesterday No; Yes
total_liters numeric Total liters collected in past 24 hours, derived from the number of 25, 20, 15, 10 and 5 liter containers used to collect water yesterday NA
oneway_travel numeric Estimate of how long household member had to walk to get to the water source in minutes (not round-trip) NA
wait_time numeric The last time household member went to the source, estimate of how long to wait to collect water from the source in minutes NA
total_collect_time numeric Total collection time in minutes: twice the one-way walk (oneway_travel) plus the wait time (wait_time) NA
satisfied factor Whether the respondent is satisfied with the water service Not Satisfied; Satisfied
notsatisfied_why factor Why not satisfied with your water service It is broken; It is too expensive; It is too far away; Long lines; Other; Water has a bad smell, color, or quality; Water tastes bad
defecation_place factor The places that adult men and women in this household defecate Latrine/toilet; In the open/no sanitation facilities; In water body: river or lake
handwash_demo factor Willing to show where and how handwashing happens No; Yes
soap_ash factor Household demo uses soap or ash or another cleanser to wash hands Soap; Ash; Other cleanser or detergent; None shown
water_wash factor Household demo uses water to wash hands No; Yes
jmp_improved factor If the Water source is “improved” or “unimproved” according to the JMP classification, derived from source: Improved for borehole with handpump, protected dug well (with or without handpump), public tap or standpipe, mechanized borehole, protected spring and piped water; Unimproved otherwise Unimproved; Improved
jmp_water_service factor JMP drinking water service level derived from source and total_collect_time: Surface water; Unimproved (other unimproved source); Limited (improved source, total collection time over 30 minutes); Basic (improved source, total collection time of 30 minutes or less) Surface water; Unimproved; Limited; Basic
hwise_worry ordered, factor In the last 4 weeks, how frequently did you or anyone in your household worry you would not have enough water for all of your household needs? Never (0 times); Rarely (1-2 times); Sometimes (3-10 times); Often (11-20 times); Always (more than 20 times)
hwise_interrupt ordered, factor In the last 4 weeks, how frequently has your main water source been interrupted or limited (e.g. water pressure, less water than expected, river dried up)? Never (0 times); Rarely (1-2 times); Sometimes (3-10 times); Often (11-20 times); Always (more than 20 times)
hwise_clothes ordered, factor In the last 4 weeks, how frequently have problems with water meant that clothes could not be washed? Never (0 times); Rarely (1-2 times); Sometimes (3-10 times); Often (11-20 times); Always (more than 20 times)
hwise_change_plans ordered, factor In the last 4 weeks, how frequently have you or anyone in your household had to change schedules or plans due to problems with your water situation? (e.g. caring for others, household chores, agricultural work, IGA, sleeping) Never (0 times); Rarely (1-2 times); Sometimes (3-10 times); Often (11-20 times); Always (more than 20 times)
hwise_change_meal ordered, factor In the last 4 weeks, how frequently have you or anyone in your household had to change what was being eaten because there were problems with water (e.g., for washing foods, cooking, etc.)? Never (0 times); Rarely (1-2 times); Sometimes (3-10 times); Often (11-20 times); Always (more than 20 times)
hwise_nohandwash ordered, factor In the last 4 weeks, how frequently have you or anyone in your household had to go without washing hands after dirty activities (e.g., defecating or changing diapers, cleaning animal dung) because of problems with water? Never (0 times); Rarely (1-2 times); Sometimes (3-10 times); Often (11-20 times); Always (more than 20 times)
hwise_no_bodywash ordered, factor In the last 4 weeks, how frequently have you or anyone in your household had to go without washing their body because of problems with water (e.g., not enough water, dirty, unsafe)? Never (0 times); Rarely (1-2 times); Sometimes (3-10 times); Often (11-20 times); Always (more than 20 times)
hwise_drinking ordered, factor In the last 4 weeks, how frequently has there not been as much water to drink as you would like for you or anyone in your household? Never (0 times); Rarely (1-2 times); Sometimes (3-10 times); Often (11-20 times); Always (more than 20 times)
hwise_angry ordered, factor In the last 4 weeks, how frequently did you or anyone in your household feel angry about your water situation? Never (0 times); Rarely (1-2 times); Sometimes (3-10 times); Often (11-20 times); Always (more than 20 times)
hwise_sleepthirsty ordered, factor In the last 4 weeks, how frequently have you or anyone in your household gone to sleep thirsty because there wasn’t any water to drink? Never (0 times); Rarely (1-2 times); Sometimes (3-10 times); Often (11-20 times); Always (more than 20 times)
hwise_nowater ordered, factor In the last 4 weeks, how frequently has there been no useable or drinkable water whatsoever in your household? Never (0 times); Rarely (1-2 times); Sometimes (3-10 times); Often (11-20 times); Always (more than 20 times)
hwise_shame ordered, factor In the last 4 weeks, how frequently did you or anyone in your household feel ashamed/excluded/stigmatized? Never (0 times); Rarely (1-2 times); Sometimes (3-10 times); Often (11-20 times); Always (more than 20 times)
hwise_score numeric Sum of the 12 HWISE items scored Never 0, Rarely 1, Sometimes 2, Often or Always 3; range 0 to 36 NA
hwise_insecurity_level factor Water insecurity level from hwise_score: 0 to 2 “No-to-marginal”, 3 to 11 “Low”, 12 to 23 “Moderate”, 24 to 36 “High” High; Moderate; Low; No-to-marginal

Example

The example compares the JMP drinking water service level of households between the baseline and the endline survey.

JMP service level Share baseline (%) Share endline (%)
Surface water 9 0
Unimproved 77 2
Limited 14 66
Basic 0 32
Show the code
## Run the following code in console if you don't have the packages
## needed to run the example
## install.packages(c("dplyr", "tidyr", "knitr", "ggplot2", "patchwork"))
library(kalaiwash)
library(dplyr)
library(tidyr)
library(knitr)
library(ggplot2)
library(patchwork)

kalaiwash |> 
  count(survey_type, jmp_water_service, .drop = FALSE) |> 
  group_by(survey_type) |> 
  mutate(share = round(100 * n / sum(n))) |> 
  ungroup() |> 
  select(-n) |> 
  pivot_wider(names_from = survey_type, values_from = share) |> 
  arrange(jmp_water_service) |> 
  kable(col.names = c("JMP service level", "Share baseline (%)", "Share endline (%)"))

The share of households with at least basic drinking water service and the distribution of HWISE insecurity levels can be compared in the same way.

HWISE insecurity level Share baseline (%) Share endline (%)
High 47 0
Moderate 49 3
Low 4 3
No-to-marginal 0 94
Show the code
kalaiwash |> 
  count(survey_type, hwise_insecurity_level, .drop = FALSE) |> 
  group_by(survey_type) |> 
  mutate(share = round(100 * n / sum(n))) |> 
  ungroup() |> 
  select(-n) |> 
  pivot_wider(names_from = survey_type, values_from = share) |> 
  arrange(hwise_insecurity_level) |> 
  kable(col.names = c("HWISE insecurity level", "Share baseline (%)", "Share endline (%)"))

Figure 1 was taken from Advancing standard WASH metrics with experiential indicators in Mozambique. The left panel shows the change in the JMP drinking water service level and the right panel the change in the HWISE water insecurity level between the baseline and the endline survey. Each band connects the share of households in a level at baseline with the share at endline.

Figure 1: Changes in drinking water service and water insecurity experience between baseline (November 2024) and endline (June 2025).

Figure 1: Changes in drinking water service and water insecurity experience between baseline (November 2024) and endline (June 2025).

Show the code
# share of households per level and survey round, with the stacking
# positions of each band (best level at the bottom)
level_shares <- function(data, level) {
  data |>
    count(survey_type, level = {{ level }}) |>
    group_by(survey_type) |>
    mutate(percent = 100 * n / sum(n)) |>
    ungroup() |>
    complete(survey_type, level, fill = list(n = 0, percent = 0)) |>
    mutate(level = factor(level, levels = rev(levels(level)))) |>
    arrange(survey_type, level) |>
    group_by(survey_type) |>
    mutate(ymax = cumsum(percent), ymin = ymax - percent,
           ymid = (ymin + ymax) / 2, x = as.integer(survey_type)) |>
    ungroup()
}

# four corners of each band: baseline bottom, baseline top, endline top,
# endline bottom
level_bands <- function(shares) {
  shares |>
    select(level, x, ymin, ymax) |>
    pivot_longer(c(ymin, ymax), names_to = "edge", values_to = "y") |>
    arrange(level, x, if_else(x == 1, y, -y))
}

level_plot <- function(shares, colours, title, legend_title) {
  n_surveys <- shares |>
    group_by(survey_type) |>
    summarise(n = sum(n), .groups = "drop")
  labels <- shares |>
    filter(percent > 0) |>
    mutate(label = paste0(round(percent), "%"),
           x = if_else(x == 1, x - 0.04, x + 0.04),
           hjust = if_else(x < 1, 1, 0))

  ggplot() +
    geom_polygon(data = level_bands(shares),
                 aes(x, y, group = level, fill = level),
                 colour = "grey20", linewidth = 0.3) +
    geom_text(data = labels, aes(x, ymid, label = label, hjust = hjust),
              size = 3.2, colour = "grey20") +
    scale_fill_manual(values = colours, name = legend_title) +
    scale_x_continuous(
      breaks = 1:2, limits = c(0.65, 2.35),
      labels = paste0(n_surveys$survey_type, "\nn = ", n_surveys$n)
    ) +
    scale_y_continuous(breaks = seq(0, 100, 25), expand = expansion(c(0, 0.02))) +
    labs(x = NULL, y = "Households (%)", title = title) +
    theme_minimal(base_size = 12) +
    theme(panel.grid.major.x = element_blank(),
          panel.grid.minor = element_blank(),
          plot.title = element_text(size = 12, hjust = 0.5))
}

p_jmp <- kalaiwash |>
  level_shares(jmp_water_service) |>
  level_plot(
    colours = c("Basic" = "#00B8EC", "Limited" = "#FFF59D",
                "Unimproved" = "#FFB300", "Surface water" = "#E65100"),
    title = "Drinking water", legend_title = "JMP service level"
  ) +
  theme(legend.position = "left")

p_hwise <- kalaiwash |>
  level_shares(hwise_insecurity_level) |>
  level_plot(
    colours = c("No-to-marginal" = "#0066A6", "Low" = "#00B8EC",
                "Moderate" = "#FFB300", "High" = "#EF414A"),
    title = "Water insecurity", legend_title = "HWISE level"
  ) +
  labs(y = NULL)

p_jmp + p_hwise

License

Data are available as CC-BY.

Citation

Please cite this package using:

citation("kalaiwash")
#> To cite package 'kalaiwash' in publications use:
#> 
#>   Brogan J, Clavijo Daza A, Obra D (2026). "kalaiwash: Household Water
#>   Insecurity and Drinking Water Service Levels from the KALAI Project
#>   in Nampula, Mozambique." doi:10.5281/zenodo.23164217
#>   <https://doi.org/10.5281/zenodo.23164217>.
#>   <https://github.com/openwashdata/kalaiwash>.
#> 
#> A BibTeX entry for LaTeX users is
#> 
#>   @Misc{brogan_etall:2026,
#>     title = {kalaiwash: Household Water Insecurity and Drinking Water Service Levels from the KALAI Project in Nampula, Mozambique},
#>     author = {John Brogan and Adriana {Clavijo Daza} and Dercio Obra},
#>     year = {2026},
#>     doi = {10.5281/zenodo.23164217},
#>     url = {https://github.com/openwashdata/kalaiwash},
#>     abstract = {Baseline (November 2024) and endline (June 2025) household survey data from the KALAI water, sanitation and hygiene project of HELVETAS in Larde, Memba, Moma and Mecuburi districts, Nampula Province, Mozambique. The data cover 275 household interviews and include the primary drinking water source classified with the WHO/UNICEF Joint Monitoring Programme (JMP) service ladder, water collection times and volumes, sanitation and handwashing practices, and the 12-item Household Water Insecurity Experiences (HWISE) Scale with its summary score and insecurity level.},
#>     version = {0.1.0},
#>   }

References

Young, S. L., Boateng, G. O., Jamaluddine, Z., et al. (2019). The Household Water InSecurity Experiences (HWISE) Scale: development and validation of a household water insecurity measure for low-income and middle-income countries. BMJ Global Health, 4(5), e001750. https://doi.org/10.1136/bmjgh-2019-001750

Frongillo, E. A., Bethancourt, H. J., Miller, J. D., Young, S. L., & the HWISE Research Coordination Network (2024). Identifying ordinal categories for the Water Insecurity Experiences Scales. Journal of Water, Sanitation and Hygiene for Development, 14(11), 1066–1078. https://doi.org/10.2166/washdev.2024.042