This dataset contains detailed field-level information on the status and functionality of rural water points across Malawi, collected as part of the USAID Flood Response initiative between 2019 and 2020. The data was gathered using the mWater mobile data collection platform, enabling standardized, GPS-tagged assessments directly from field locations.
Each record in the dataset represents a single visit to a water point, capturing both quantitative measurements and qualitative observations. The dataset includes links to photographs, physical infrastructure status, microbiological testing results and site-level comments by enumerators.
Key variables include:
- Location and identity of the water point (GPS coordinates, site name)
- User estimates (number of people served)
- Flood impact indicators (evidence of submersion or erosion)
- Pump and structural functionality (operational status, repair needs)
- Water quality data (e.g., turbidity, arsenic, nitrate, temperature)
- Microbial contamination indicators and associated health risk categories
Use Cases of the Data
This dataset serves as a critical tool for stakeholders involved in water, sanitation, and hygiene (WASH), disaster recovery, and infrastructure management. It supports:
- Emergency response planning – identifying flood-affected and non-functional water points
- Infrastructure rehabilitation – prioritizing repair of pumps, boreholes, and civil works
- Water quality monitoring – detecting contamination risks due to floods or poor maintenance
- Health risk assessments – classifying water points based on microbial and chemical testing
- WASH program design – guiding resource allocation for future interventions
- Research and policy analysis – evaluating resilience and vulnerability of rural water systems
Primary Users of the Dataset
- Government agencies (e.g., Malawi Ministry of Water and Sanitation)
- Donor organizations and NGOs (e.g., USAID, UNICEF, WaterAid)
- WASH engineers and field teams
- Public health professionals
- Disaster response and recovery planners
- Researchers and academics studying water infrastructure, flood resilience, or environmental health
You can install the development version of floodresponsemw from GitHub with:
# install.packages("devtools")
devtools::install_github("openwashdata/floodresponsemw")## Run the following code in console if you don't have the packages
## install.packages(c("dplyr", "knitr", "readr", "stringr", "gt", "kableExtra"))
library(dplyr)
library(knitr)
library(readr)
library(stringr)
library(gt)
library(kableExtra)Alternatively, you can download the individual datasets as a CSV or XLSX file from the table below.
- Click Download CSV. A window opens that displays the CSV in your browser.
- Right-click anywhere inside the window and select “Save Page As…”.
- Save the file in a folder of your choice.
| dataset | CSV | XLSX |
|---|---|---|
| floodresponsemw | Download CSV | Download XLSX |
The package provides access to field-level assessment data on rural water point infrastructure in Malawi. It was collected as part of the USAID Flood Response program in 2019 - 2020
library(floodresponsemw)The dataset floodresponsemw has 684 observations and 45 variables
floodresponsemw |>
head(3) |>
gt::gt() |>
gt::as_raw_html()| submitted_on | water_point_name | latitude | longitude | total_users_of_water_point | water_point_photos | likely_submerged_during_flood | evidence_submerged | evidence_not_submerged | functional_status | pumpable_at_visit | reported_problems | reported_problems_other | water_quality_problems | civil_works_problems | civil_works_photo | pump_problems | pump_problems_other | pump_problems_photo | pump_operational_feel | time_to_pump_20l | strokes_to_yield_water | sediment_presence | electrical_conductivity_magnitude | electrical_conductivity_units | total_dissolved_solids_ppt | ph | fluoride_ppm | ammonia_mg_per_l | nitrate_mg_per_l | free_chlorine_mg_per_l | arsenic_magnitude | arsenic_units | turbidity_magnitude | turbidity_units | temperature_magnitude | temperature_units | temperature_time | comments | sample_type | sample_date | mpn_100ml | upper_95_ci_100ml | health_risk_category | color_change_image |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 25/06/2019 | Beseni borehole | -15.62573 | 35.51046 | 100 | https://api.mwater.co/v3/images/818741d38e29447c85b4f7dbc1bddfc1 | No | NA | Local report not seeing the water point submerged | Not functional | NA | Damage or problem with pump, Soil erosion or collapse around the water point | NA | NA | NA | NA | Other | Pump not working | https://api.mwater.co/v3/images/ebcead6503d54207b9d59ea369d290ab | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | Pump not functioning since April 2019 | NA | NA | NA | NA | NA | NA |
| 29/11/2019 | Beseni borehole | -15.62573 | 35.51046 | 452 | https://api.mwater.co/v3/images/35b876810db34b45bca096cceb2a00c6; https://api.mwater.co/v3/images/273e5fe4ab0b4bfdb72944cc34c8ea54 | No | NA | Local report not seeing the water point submerged | Not functional | NA | Other | Not working | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| 02/02/2020 | Beseni borehole | -15.62573 | 35.51046 | 150 | https://api.mwater.co/v3/images/8d94c1061a604251ac5f9d9063248469 | Yes | Local report seeing the water point submerged | NA | No longer exists or abandoned | NA | Damage or problem with pump | NA | NA | NA | NA | Other | pump no longer working 2014 | https://api.mwater.co/v3/images/3d3d9e436bd6470485ca88c49c78b47b | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
For an overview of the variable names, see the following table.
|
variable_name |
variable_type |
description |
|---|---|---|
|
submitted_on |
character |
Date when the water point assessment form was submitted. |
|
water_point_name |
character |
Name or identifier of the water point site. |
|
latitude |
numeric |
Latitude coordinate of the water point location. |
|
longitude |
numeric |
Longitude coordinate of the water point location. |
|
total_users_of_water_point |
numeric |
Number of people currently using the water point. |
|
water_point_photos |
character |
Photos taken to show the current condition of the water point. |
|
likely_submerged_during_flood |
character |
Whether the water point was likely submerged during recent flooding (Yes or No). |
|
evidence_submerged |
character |
Evidence observed that the water point was submerged. |
|
evidence_not_submerged |
character |
Evidence observed that the water point was not submerged. |
|
functional_status |
character |
Current operational status of the water point. |
|
pumpable_at_visit |
character |
Whether water could be pumped during the visit (Yes or No). |
|
reported_problems |
character |
List of problems reported or observed (e.g., broken parts, contamination). |
|
reported_problems_other |
character |
Additional problem descriptions not in the predefined list. |
|
water_quality_problems |
character |
Specific issues related to water quality (e.g., bad smell, taste, turbidity). |
|
civil_works_problems |
character |
Structural or construction related issues affecting the water point. |
|
civil_works_photo |
character |
Photo documenting the civil works issue. |
|
pump_problems |
character |
Mechanical issues related to the pump (e.g., broken handle). |
|
pump_problems_other |
character |
Additional pump issues not listed in predefined options. |
|
pump_problems_photo |
character |
Photo documenting the pump issue. |
|
pump_operational_feel |
character |
Assessors impression of the pumps functionality during operation. |
|
time_to_pump_20l |
numeric |
Time taken to pump 20 liters of water (in seconds). |
|
strokes_to_yield_water |
numeric |
Number of strokes required to start yielding water. |
|
sediment_presence |
character |
Whether visible sediment was present in the water. |
|
electrical_conductivity_magnitude |
numeric |
Measured electrical conductivity value of the water. |
|
electrical_conductivity_units |
character |
Units used to measure electrical conductivity (e.g., uS/cm). |
|
total_dissolved_solids_ppt |
numeric |
Total dissolved solids in parts per thousand (ppt). |
|
ph |
numeric |
pH level of the water sample. |
|
fluoride_ppm |
numeric |
Fluoride concentration in parts per million (ppm). |
|
ammonia_mg_per_l |
numeric |
Ammonia concentration in milligrams per liter (mg/L). |
|
nitrate_mg_per_l |
numeric |
Nitrate concentration in milligrams per liter (mg/L). |
|
free_chlorine_mg_per_l |
numeric |
Free chlorine concentration in milligrams per liter (mg/L). |
|
arsenic_magnitude |
numeric |
Measured value of arsenic in the water. |
|
arsenic_units |
character |
Units used to measure arsenic concentration. |
|
turbidity_magnitude |
numeric |
Turbidity level measured using a turbidity tube. |
|
turbidity_units |
character |
Units used for turbidity measurement (e.g., NTU). |
|
temperature_magnitude |
numeric |
Temperature of the water sample (numeric value). |
|
temperature_units |
character |
Units used for temperature (e.g., degree Celcius). |
|
temperature_time |
character |
Time the temperature was recorded. |
|
comments |
character |
Additional remarks or observations by the enumerator. |
|
sample_type |
character |
Type of water sample collected (e.g., raw, treated). |
|
sample_date |
character |
Date the water sample was taken. |
|
mpn_100ml |
numeric |
Most probable number (MPN) of bacteria per 100 ml of water. |
|
upper_95_ci_100ml |
numeric |
Upper 95 percentage confidence interval of MPN per 100 ml. |
|
health_risk_category |
character |
Risk classification based on MPN results (e.g., low, medium, high). |
|
color_change_image |
character |
Image showing color change in test compartments used for bacterial analysis. |
library(floodresponsemw)
# Required Libraries
library(tidyverse)
library(leaflet)
# Visualization 1: Interactive Water Point Map
# View the spatial distribution, functionality, and usage volume of water points.
# Clean and prepare the data
df_clean <- floodresponsemw %>%
# Filter out records missing coordinates
filter(!is.na(latitude), !is.na(longitude)) %>%
# Assign colors based on functional status
mutate(
status_color = case_when(
functional_status == "Functional" ~ "green",
functional_status == "Not functional" ~ "red",
TRUE ~ "gray" # Unknown or missing status
)
)
# Create an interactive map using leaflet
leaflet(df_clean) %>%
addTiles() %>% # Add default OpenStreetMap tiles
addCircleMarkers(
lng = ~longitude,
lat = ~latitude,
color = ~status_color, # Color by functional status
radius = ~log(total_users_of_water_point + 1) * 2,
stroke = FALSE,
fillOpacity = 0.7,
# Add popups showing basic water point info
popup = ~paste0(
"<b>Water Point:</b> ", water_point_name, "<br>",
"<b>Status:</b> ", functional_status, "<br>",
"<b>Total Users:</b> ", total_users_of_water_point
)
) %>%
# Add a legend for functional status
addLegend(
"bottomright",
colors = c("green", "red", "gray"),
labels = c("Functional", "Not Functional", "Unknown"),
title = "Water Point Status"
)Status:<\/b> Not functional
Total Users:<\/b> 100","Water Point:<\/b> Beseni borehole
Status:<\/b> Not functional
Total Users:<\/b> 452","Water Point:<\/b> Beseni borehole
Status:<\/b> No longer exists or abandoned
Total Users:<\/b> 150","Water Point:<\/b> Demula borehole 3
Status:<\/b> Not functional
Total Users:<\/b> 800","Water Point:<\/b> Demula borehole 3
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 900","Water Point:<\/b> Sadibwa village
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 250","Water Point:<\/b> Sadibwa village
Status:<\/b> Not functional
Total Users:<\/b> 0","Water Point:<\/b> Sadibwa village
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 750","Water Point:<\/b> Shaibu Water point 3
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 689","Water Point:<\/b> Shaibu Water point 3
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 2600","Water Point:<\/b> Shaibu Water point 3
Status:<\/b> Functional
Total Users:<\/b> 230","Water Point:<\/b> Shaibu Water point 1
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 2300","Water Point:<\/b> Shaibu Water point 1
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 2000","Water Point:<\/b> Shaibu Water point 1
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 1500","Water Point:<\/b> N jete(likhonyowera )borehole 01
Status:<\/b> Functional
Total Users:<\/b> 593","Water Point:<\/b> N jete(likhonyowera )borehole 01
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 350","Water Point:<\/b> N jete(likhonyowera )borehole 01
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 800","Water Point:<\/b> Njete(likhonyowera )borehole 02
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 1800","Water Point:<\/b> Njete(likhonyowera )borehole 02
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 500","Water Point:<\/b> Njete(likhonyowera )borehole 02
Status:<\/b> Not functional
Total Users:<\/b> 400","Water Point:<\/b> Kumwanje(ngakusa)
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 1500","Water Point:<\/b> Kumwanje borehole 03
Status:<\/b> Functional
Total Users:<\/b> 310","Water Point:<\/b> Kumwanje borehole 03
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 1500","Water Point:<\/b> Kumwanje borehole 03
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 750","Water Point:<\/b> Kumwanje borehole 04
Status:<\/b> Functional
Total Users:<\/b> 675","Water Point:<\/b> Kumwanje borehole 04
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 1350","Water Point:<\/b> Kumwanje borehole 04
Status:<\/b> Functional
Total Users:<\/b> 1540","Water Point:<\/b> Kumwanje borehole 05
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 450","Water Point:<\/b> Kumwanje borehole 05
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 2500","Water Point:<\/b> Kumwanje borehole 06
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 301","Water Point:<\/b> Kumwanje borehole 06
Status:<\/b> Functional
Total Users:<\/b> 300","Water Point:<\/b> Kumwanje borehole 06
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 1000","Water Point:<\/b> Mwase 02 borehole 01
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 350","Water Point:<\/b> Mwase 02 borehole 01
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 980","Water Point:<\/b> Mwasa 02 borehole 02
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 360","Water Point:<\/b> Mwasa 02 borehole 02
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 1500","Water Point:<\/b> Mwasa 02 borehole 02
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 300","Water Point:<\/b> Namoyo borehole 02
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 963","Water Point:<\/b> Nakoma borehole 02
Status:<\/b> Not functional
Total Users:<\/b> 1280","Water Point:<\/b> Nakoma borehole 02
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 550","Water Point:<\/b> Nakoma(mvuluse) borehole 04
Status:<\/b> Not functional
Total Users:<\/b> 500","Water Point:<\/b> Nakoma(mvuluse) borehole 04
Status:<\/b> Not functional
Total Users:<\/b> 750","Water Point:<\/b> Nakoma(mvuluse) borehole 04
Status:<\/b> Functional
Total Users:<\/b> 385","Water Point:<\/b> Nakoma(kazembe) borehole 03
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 652","Water Point:<\/b> Nakoma(kazembe) borehole 03
Status:<\/b> Not functional
Total Users:<\/b> 500","Water Point:<\/b> Nakoma(kazembe) borehole 03
Status:<\/b> Functional
Total Users:<\/b> 775","Water Point:<\/b> Mwasa 01 borehole 02
Status:<\/b> Not functional
Total Users:<\/b> 290","Water Point:<\/b> Mwasa 01 borehole 02
Status:<\/b> Functional
Total Users:<\/b> 95","Water Point:<\/b> Mwasa 01 borehole 02
Status:<\/b> Functional
Total Users:<\/b> 235","Water Point:<\/b> Mtambo borehole 01
Status:<\/b> No longer exists or abandoned
Total Users:<\/b> 0","Water Point:<\/b> Mtambo borehole 01
Status:<\/b> Not functional
Total Users:<\/b> 275","Water Point:<\/b> Mtambo borehole 01
Status:<\/b> Not functional
Total Users:<\/b> 400","Water Point:<\/b> Phulanya borehole
Status:<\/b> Not functional
Total Users:<\/b> 873","Water Point:<\/b> Phulanya borehole
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 200","Water Point:<\/b> Phulanya borehole
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 1500","Water Point:<\/b> Walosa borehole 2
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 621","Water Point:<\/b> Muhowa borehole 2
Status:<\/b> Functional
Total Users:<\/b> 639","Water Point:<\/b> Muhowa borehole 2
Status:<\/b> Functional
Total Users:<\/b> 560","Water Point:<\/b> Muhowa borehole 2
Status:<\/b> Not functional
Total Users:<\/b> 1066","Water Point:<\/b> Nogwe water point 1
Status:<\/b> Not functional
Total Users:<\/b> 120","Water Point:<\/b> Nogwe water point 1
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 1375","Water Point:<\/b> Nogwe 2 village
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 1675","Water Point:<\/b> Chabwera water point 1
Status:<\/b> No longer exists or abandoned
Total Users:<\/b> 0","Water Point:<\/b> Chabwera water point 1
Status:<\/b> Not functional
Total Users:<\/b> 500","Water Point:<\/b> Chabwera water point 1
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 2500","Water Point:<\/b> Kambenje Primary School borehole
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 3500","Water Point:<\/b> Kambenje Primary School borehole
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 5500","Water Point:<\/b> Kambenje Primary School borehole
Status:<\/b> Not functional
Total Users:<\/b> 2321","Water Point:<\/b> Likuwa primary school borehole
Status:<\/b> Not functional
Total Users:<\/b> 552","Water Point:<\/b> Likuwa primary school borehole
Status:<\/b> No longer exists or abandoned
Total Users:<\/b> 0","Water Point:<\/b> Likuwa primary school borehole
Status:<\/b> No longer exists or abandoned
Total Users:<\/b> 0","Water Point:<\/b> Jika borehole o1
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 425","Water Point:<\/b> Jika borehole o1
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 560","Water Point:<\/b> Jika borehole o1
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 699","Water Point:<\/b> Nankhumwa Chitseko Borehole 1
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 723","Water Point:<\/b> Rabison water point
Status:<\/b> Not functional
Total Users:<\/b> 359","Water Point:<\/b> Cheyadi village
Status:<\/b> Partially functional but in need of repair
Total Users:<\/b> 532","Water Point:<\/b> Cheyadi village
Status:<\/b> Functional
Total Users:<\/b> 600","Water Point:<\/b> Nthiramanja(kapala)
Status:<\/b> Functional
Total Users:<\/b> 450","