This dataset contains detailed field survey records of borehole and handpump functionality verification exercises conducted in Chiradzulu District, Malawi in February 2020. Data was collected by BASEflow using the mWater mobile data collection platform. Each record represents a single site visit to a water point, capturing GPS coordinates, technical assessments, water availability, environmental conditions, and maintenance history.
The dataset includes:
-
Identification & Location – Visit date, water point name/type, latitude, and longitude.
-
Institutional Factors – Availability of government staff, committee permission for inspection.
-
Functionality & Condition – Operational status, water availability, flow rate measurements, strokes to discharge, and mechanical condition.
-
Environmental Hazards – Presence of latrines, cemeteries, waste, rivers, lakes, flood-prone areas, and difficult terrain within 50m.
-
Repair & Maintenance History – Borehole age, manufacturer, installation details, prior repairs, spare parts required, and operational feel.
-
Documentation – Photographs of the water point and repair parts.
Purpose
The dataset supports rural water supply monitoring, maintenance planning, and public health risk assessments, contributing to efforts to improve sustainability and reliability of community water points.
Potential Users
This dataset can be valuable to:
-
Local Governments – For planning maintenance schedules and allocating resources to priority water points.
-
NGOs & Development Partners – For designing interventions to improve rural water supply sustainability.
-
Researchers & Public Health Experts – For studying the impact of infrastructure condition on water access and health outcomes.
-
Donors & Funding Agencies – For monitoring the effectiveness of investments in water infrastructure.
-
Community-Based Organizations – For advocating improved water services and mobilizing community-led repairs.
You can install the development version of handpumpstatusdata from GitHub with:
# install.packages("devtools")
devtools::install_github("openwashdata/handpumpstatusdata")## 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 |
|---|---|---|
| handpumpstatusdata | Download CSV | Download XLSX |
This dataset contains detailed field survey records of borehole and handpump functionality verification exercises conducted in Chiradzulu District, Malawi in February 2020.
library(handpumpstatusdata)The dataset handpumpstatusdata has 57 observations and 46 variables
handpumpstatusdata |>
head(3) |>
gt::gt() |>
gt::as_raw_html()| visit_date | waterpoint_name | waterpoint_type | latitude | longitude | govt_staff_available | committee_permission | functionality_survey | status_changed | photo_waterpoint | water_available | latrines_within_50m | cemetery_within_50m | waste_within_50m | river_within_50m | lake_within_50m | flood_area | difficult_access | flowrate_possible | flowrate_seconds | strokes_to_discharge | water_available_today | reason_no_water | seasonal_variation | when_no_water | pumphead_disassemble | reason_no_disassemble | reason_no_disassemble_other | install_date | borehole_age | pump_manufacturer | pump_manufacturer_other | drilling_contractor | install_depth | static_water_level | pumping_test_info | drilling_report_info | water_quality_info | repaired_before | repair_attempts | borehole_issues | borehole_issues_other | operational_feel | operational_feel_other | parts_for_repair | photo_parts |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2/6/2020 | Chiradzulu trading borehole | Borehole or tubewell | -15.69984 | 35.18433 | Yes | Yes | Yes | Yes | https://api.mwater.co/v3/images/bbb0e0df929e4a46afae416db498a85f | Yes | Yes | No | No | Yes | No | No | No | Yes | 76.101 | 13 | Yes | NA | No | NA | Yes | NA | NA | 9/1/2001 | 19 | Ajay | NA | Mozagua | 32 | NA | No | No | No | Yes | Countless times | Other | Cylinder not ok, cupseal not ok | Normal/satisfactory | NA | Pump Head, Cup Seal , Fulcrum Pin, Rods, Civil works, Apron | https://api.mwater.co/v3/images/8857037d61b7459696d528ca9a7337ad; https://api.mwater.co/v3/images/93fa669a39974dd488bf694e7f5fcd48; https://api.mwater.co/v3/images/9ee3085c01a14bb48a2fcb9f38360a32; https://api.mwater.co/v3/images/6307b17a465347379e5853498dedf1b8; https://api.mwater.co/v3/images/a007740c0dba42299343fb9984bd6875 |
| 2/10/2020 | Chanje 1 borehole | Borehole or tubewell | -15.76795 | 35.26584 | Yes | Yes | Yes | No | https://api.mwater.co/v3/images/0e0d8a6496d04a8b92bfa7ca9844f52c | Yes | No | No | No | No | No | No | No | Yes | 71.419 | 8 | Yes | NA | No | NA | Yes | NA | NA | 9/10/2013 | 9 | Other | Indo afro industries | China Ghasu | 52 | 226 | Yes | Yes | Yes | Yes | More than twice | Other | Fast waring parts such as bush bearings and load centilizers | Significant sideways movement on handle (loose/wobbly) | NA | Cup Seal , Fulcrum Pin, Bush Bearings, Centralisers | https://api.mwater.co/v3/images/45b5e40d207e4ce6b371f8161d29e669; https://api.mwater.co/v3/images/edd84687a02b49abbe49406f5e3c5a98; https://api.mwater.co/v3/images/830cd0766b5c4fcbb083b691ac5609d6; https://api.mwater.co/v3/images/27a3368afa6140f39e5ad971c0c5dc4a; https://api.mwater.co/v3/images/324ee0af8f0a4e8e8d95b776864ad200 |
| 2/10/2020 | Baluwa2 borehole | Borehole or tubewell | -15.76260 | 35.25964 | Yes | Yes | Yes | No | https://api.mwater.co/v3/images/78213ad7d1aa45a78d45ff7949ab7b40 | Yes | No | No | No | No | No | No | No | Yes | 79.673 | 5 | Yes | NA | No | NA | Yes | NA | NA | 2/21/2014 | 6 | Apex International | NA | Mozagua | 48 | 121 | Yes | Yes | Yes | Yes | More than 4 times | Other | Work out parts such as road centilizers and bush bearing and fulcrum pin | Significant sideways movement on handle (loose/wobbly) | NA | Bush Bearings, Fulcrum Pin, Centralisers | https://api.mwater.co/v3/images/fa4085c66170401cac3b982bfddfd7d2; https://api.mwater.co/v3/images/29afa2c6fbc04b03ab64f69c9f46ca4a; https://api.mwater.co/v3/images/92b8a444a4244f7389d89c1191309a4c; https://api.mwater.co/v3/images/5e7b0546cbca45e38c228f93dfc225bc |
For an overview of the variable names, see the following table.
|
variable_name |
variable_type |
description |
|---|---|---|
|
visit_date |
character |
Date when the water point was visited for assessment. |
|
waterpoint_name |
character |
Name or identifier of the water point being assessed. |
|
waterpoint_type |
character |
Type of water point (e.g., borehole, well, tap). |
|
latitude |
numeric |
Latitude coordinate of the water point. |
|
longitude |
numeric |
Longitude coordinate of the water point. |
|
govt_staff_available |
character |
Whether a government water sector staff member was present during the assessment. |
|
committee_permission |
character |
Whether permission from the Water Point or Camp Committee was obtained before the assessment. |
|
functionality_survey |
character |
Whether a water point functionality survey was conducted. |
|
status_changed |
character |
Whether the water points functionality status has changed since the previous survey/mapping. |
|
photo_waterpoint |
character |
Photo file or reference showing the water point. |
|
water_available |
character |
Whether water was available from the water point at the time of visit. |
|
latrines_within_50m |
character |
Whether there are latrines within 50 meters of the water point. |
|
cemetery_within_50m |
character |
Whether there is a cemetery within 50 meters of the water point. |
|
waste_within_50m |
character |
Whether there are waste dumps within 50 meters of the water point. |
|
river_within_50m |
character |
Whether there is a river within 50 meters of the water point. |
|
lake_within_50m |
character |
Whether there is a lake or large pond within 50 meters of the water point. |
|
flood_area |
character |
Whether the water point is located in a known flood-prone area. |
|
difficult_access |
character |
Whether accessing the water point is challenging. |
|
flowrate_possible |
character |
Whether a flow rate test could be conducted at the water point. |
|
flowrate_seconds |
numeric |
Time (in seconds) taken to fill a 20-liter bucket during the flow rate test. |
|
strokes_to_discharge |
numeric |
Number of pump strokes needed before water starts flowing from the spout. |
|
water_available_today |
character |
Whether water was available from the water point on the day of the visit. |
|
reason_no_water |
character |
Reason water was not available during the visit. |
|
seasonal_variation |
character |
Whether seasonal changes affect water availability from this source. |
|
when_no_water |
character |
Specific times of the year when water is unavailable from the source. |
|
pumphead_disassemble |
character |
Whether it was possible to disassemble the pump head during inspection. |
|
reason_no_disassemble |
character |
Reason the pump head could not be disassembled. |
|
reason_no_disassemble_other |
character |
Other specified reason why the pump head could not be disassembled. |
|
install_date |
character |
Date when the borehole or water point was installed. |
|
borehole_age |
numeric |
Approximate age of the borehole in years. |
|
pump_manufacturer |
character |
Manufacturer of the installed pump. |
|
pump_manufacturer_other |
character |
Other specified manufacturer if not listed in main options. |
|
drilling_contractor |
character |
Contractor or company that drilled the borehole. |
|
install_depth |
numeric |
Depth (in meters) of the borehole installation. |
|
static_water_level |
numeric |
Static water level measurement (depth to water before pumping). |
|
pumping_test_info |
character |
Whether original pumping test results are available. |
|
drilling_report_info |
character |
Whether the original drilling report is available. |
|
water_quality_info |
character |
Whether the original water quality test results are available. |
|
repaired_before |
character |
Whether the borehole has been repaired multiple times in the past. |
|
repair_attempts |
character |
Number of times the borehole has been repaired. |
|
borehole_issues |
character |
Main issues affecting the boreholes performance. |
|
borehole_issues_other |
character |
Other specified issues affecting the borehole. |
|
operational_feel |
character |
General operational feel of the pump during use. |
|
operational_feel_other |
character |
Other specified operational feel not covered in main categories. |
|
parts_for_repair |
character |
Afridev pump parts that may need repair or replacement. |
|
photo_parts |
character |
Photo file or reference of the Afridev pump parts inspected. |
library(handpumpstatusdata)
# Example 1: Pie Chart Functionality Status Overview
# Purpose: To show service availability.
# Load libraries
library(tidyverse)
# Filter out NA or empty values
data_filtered <- handpumpstatusdata %>%
filter(!is.na(functionality_survey), functionality_survey != "")
# Summarise counts and calculate percentages
functionality_counts <- data_filtered %>%
group_by(functionality_survey) %>%
summarise(count = n(), .groups = "drop") %>%
mutate(percent = round(100 * count / sum(count), 1),
label = paste0(percent, "%"))
# Create pie chart with percentages
ggplot(functionality_counts, aes(x = "", y = count, fill = functionality_survey)) +
geom_col(width = 1, color = "white") +
coord_polar(theta = "y") +
geom_text(aes(label = label),
position = position_stack(vjust = 0.5), color = "white", size = 4) +
labs(
title = "Functionality Status Overview",
fill = "Functionality"
) +
theme_void() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
legend.title = element_text(face = "bold")
)# Example 2: Environmental Risk Factors
# Purpose: Links potential contamination risks to water point locations.
# Load libraries
library(tidyverse)
# Select relevant environmental risk variables and reshape
risk_data <- handpumpstatusdata %>%
select(waterpoint_name,
latrines_within_50m,
cemetery_within_50m,
waste_within_50m,
river_within_50m,
lake_within_50m) %>%
pivot_longer(
cols = -waterpoint_name,
names_to = "risk_factor",
values_to = "present"
)
# Clean labels for risk factors
risk_data <- risk_data %>%
mutate(
risk_factor = recode(risk_factor,
latrines_within_50m = "Latrines",
cemetery_within_50m = "Cemeteries",
waste_within_50m = "Waste",
river_within_50m = "Rivers",
lake_within_50m = "Lakes")
)
# Count presence of each risk factor
risk_counts <- risk_data %>%
filter(!is.na(present), tolower(present) == "yes") %>%
group_by(risk_factor) %>%
summarise(count = n(), .groups = "drop")
# Stacked bar chart
ggplot(risk_counts, aes(x = risk_factor, y = count, fill = risk_factor)) +
geom_bar(stat = "identity") +
labs(
title = "Environmental Risk Factors within 50m",
x = "Risk Factor",
y = "Number of Water Points"
) +
theme_minimal(base_size = 14) +
theme(legend.position = "none")Data are available as CC-BY.
Please cite this package using:
citation("handpumpstatusdata")
#> To cite package 'handpumpstatusdata' in publications use:
#>
#> Mhango E (2025). _handpumpstatusdata: Chiradzulu Handpump
#> Functionality Verification Survey_. R package version 0.0.0.9000,
#> <https://github.com/openwashdata/handpumpstatusdata>.
#>
#> A BibTeX entry for LaTeX users is
#>
#> @Manual{,
#> title = {handpumpstatusdata: Chiradzulu Handpump Functionality Verification Survey},
#> author = {Emmanuel Mhango},
#> year = {2025},
#> note = {R package version 0.0.0.9000},
#> url = {https://github.com/openwashdata/handpumpstatusdata},
#> }