Status of WASH in Health Care Facilities across Four Municipalities, Upper East Region, Ghana

Author

Seyram A. Asimah

Published

February 6, 2026

Introduction

Project description

The COVID-19 pandemic highlighted the importance of water, sanitation, hygiene (WASH), and infection prevention and control (WASH/IPC) infrastructure in health care facilities, particularly in resource-constrained settings. The World Health Organization defines health care facilities as all formally recognized facilities that provide health services, including primary, secondary, and tertiary facilities, across public and private sectors, as well as temporary structures established for emergency contexts such as cholera treatment centers(WASH in Health Care Facilities, n.d.).

In Ghana, primary health care (PHC) services are delivered through a tiered system of facilities comprising Community-Based Health Planning and Services (CHPS) compounds, health centers, and district hospitals. CHPS compounds represent the most basic, community-level PHC facilities and provide promotive, preventive, and basic curative care through both facility-based and home-based services. Health centers serve as an intermediate level of care and are responsible for planning, developing, monitoring and evaluating community-based service delivery. District hospitals provide more comprehensive health care services and work in collaboration with District Health Administrations and local government authorities to plan, supervise, monitor, and coordinate service delivery within their catchment areas(Macarayan et al., 2019).

As the first point of contact for most patients, PHC facilities play a pivotal role in preventing the transmission of infectious diseases during public health emergencies. According to WHO and UNICEF (2025) Water, sanitation and hygiene (WASH) constitute one of the four fundamental pillars required for safe, climate-resilient, and environmentally sustainable health care facilities. Adequate WASH/IPC infrastructure within these facilities is therefore essential for effective outbreak preparedness and response. Despite this, in 2023, an estimated 1.1 billion people were served by health care facilities that lacked basic water services, 3 billion lacked basic sanitation services, 1.7 billion lacked basic hygiene services, and 2.8 billion lacked basic waste services in low- and lower-middle-income countries (WHO and UNICEF, 2025).

In this context, a facility-level assessment was conducted in May 2022 as part of a project aimed at improving access to WASH services in the Upper East Region of Ghana. The assessment covered 39 primary health care facilities across four municipalities and collected data on water supply, sanitation, hygiene facilities, and health care waste management.

Methods

I used data collected in May 2022 from 39 primary health care facilities across four municipalities in Ghana’s Upper East Region. Trained field teams collected the data using structured questionnaires administered through the mWater mobile data collection platform, combining direct observation with facility-reported information on water, sanitation, hygiene, and health care waste management.

Import

Code
library(tidyverse)
library(here)
library(knitr)
Code
raw_data <- read_csv(here::here("data/raw/hcfs_assessment.csv"), locale = locale(encoding = "ISO-8859-1"))

processed_data <- raw_data |>
  select(`Health Care Facility name`, `Level of health care facility`, `Facility ownership`, `Number of outpatients`, `OPD units`, `Number of inpatients`, `inpatients unit`, `Main water supply`, `Water availability from main supply at time of survey`, `Common types of toilets for patients`, `At least one toilet usable at survey`, `Functioning hygiene stations at least 5 m from toilet`, `Separate toilets for staff`, `Urinals at the facility`, `What is the disposal mechanism for menstrual hygiene waste at the healthcare facility`, `Who is responsible for disposing of menstrual hygiene waste?`, `Is there a water point inside?`, `Is a trained person responsible for the management of health care waste in the health care facility`, `Is a protocol or Standard Operating Procedure for safe management of health care waste clearly visible and legible`, `Is waste correctly segregated into at least three labelled bins in the CONSULTATION area`, `Is all infectious waste stored in a protected area before treatment for no longer than the default and safe time`, `How does this facility usually treat or dispose of infectious waste`, `How does this facility usually treat ordispose of infectious waste_comment`, `Is the infectious waste treatment within the facility currently functional`, `How does this facility usually treat or dispose of GENERAL waste non-infectious and non-sharps waste`, `How does this facility usually treat or dispose of GENERAL waste non-infectious and non-sharps waste _other`, `Are cleaning protocols available`, `Are adequate cleaning staff available`, `Have all staff responsible for cleaning received training`, `Is there a record of cleaning visible and signed by the cleaners each day`) |> 

  rename(hcf_name = `Health Care Facility name`, hcf_level = `Level of health care facility`, hcf_ownership = `Facility ownership`, outpatients = `Number of outpatients`, OPD_units = `OPD units`, inpatients = `Number of inpatients`, inpatients_units = `inpatients unit`, ws_main = `Main water supply`, ws_main_avl = `Water availability from main supply at time of survey`, toilet_types = `Common types of toilets for patients`, toilet_usable = `At least one toilet usable at survey`, hyg_station_funct = `Functioning hygiene stations at least 5 m from toilet`, toilet_sep_staff = `Separate toilets for staff`, urinals = `Urinals at the facility`, mhm_disposal = `What is the disposal mechanism for menstrual hygiene waste at the healthcare facility`, mhm_waste_responsible = `Who is responsible for disposing of menstrual hygiene waste?`, toilet_waterpoint_inside = `Is there a water point inside?`, hcf_waste_mgt_responsible = `Is a trained person responsible for the management of health care waste in the health care facility`, hcf_waste_SOP = `Is a protocol or Standard Operating Procedure for safe management of health care waste clearly visible and legible`, hcf_waste_segregated = `Is waste correctly segregated into at least three labelled bins in the CONSULTATION area`, infectious_waste_storage = `Is all infectious waste stored in a protected area before treatment for no longer than the default and safe time`, infectious_waste_treatment = `How does this facility usually treat or dispose of infectious waste`, infectious_waste_treatment_comment = `How does this facility usually treat ordispose of infectious waste_comment`, infectious_waste_treatment_funct = `Is the infectious waste treatment within the facility currently functional`, hcf_waste_treatment_general = `How does this facility usually treat or dispose of GENERAL waste non-infectious and non-sharps waste`, hcf_waste_treatment_general_other = `How does this facility usually treat or dispose of GENERAL waste non-infectious and non-sharps waste _other`, cleaning_protocols_avl = `Are cleaning protocols available`, cleaning_staff_avl = `Are adequate cleaning staff available`, cleaning_staff_trained = `Have all staff responsible for cleaning received training`, cleaning_recs = `Is there a record of cleaning visible and signed by the cleaners each day`) |> 
  
  filter(!(is.na(ws_main_avl) & is.na(hyg_station_funct) & is.na(toilet_usable) & is.na(urinals) & is.na(mhm_disposal)))
Code
processed_data <- processed_data |> 
  mutate(
    inpatients_units = if_else(
      is.na(inpatients) & inpatients_units == "per day", NA, inpatients_units
      ),
    
    ws_main_avl = if_else(
      is.na(ws_main_avl), "No water source", ws_main_avl
    ),
    
    toilet_usable = if_else(
      toilet_types == "No toilet/latrine" & toilet_usable == "No", NA, toilet_usable
    ),
    
    urinals = if_else(
      is.na(urinals), "No", urinals
    ),
    
    toilet_waterpoint_inside = if_else(
      toilet_types == "No toilet/latrine" & toilet_waterpoint_inside == "Yes", "No", toilet_waterpoint_inside
    ),
    
    daily_outpatients = if_else(
      OPD_units == "per week",
      round(outpatients / 7, 0),
      outpatients
    ),
    
    daily_inpatients = if_else(
      inpatients_units == "per week",
      round(inpatients / 7, 0),
      inpatients
    )
  )

write_csv(processed_data,
          here::here("data/processed/seyrama-project-data_clean.csv"))

Results

The analysis includes data from 38 healthcare facilities, distributed across CHPS compounds, health centers, and district hospitals. One facility was excluded due to missing key variables. Table 1 summarises patient load and WASH indicators by facility level. CHPS compounds, the smallest community-based facilities, accounted for 24 of the facilities, health centres accounted for 13, and district hospitals for one.

Average daily outpatient visits were highest at the district hospital (110 per day), followed by health centres (35 per day) and CHPS compounds (15 per day) Inpatient admissions were low overall, but the district hospital had the highest patient loads (~ 30 per day).

Functioning toilets and access to water varied slightly by facility level. Among CHPS compounds, 64% had at least one functioning toilet, while 75% had water available from the main supply at the time of the survey. For health centres, 70% reported having at least one functioning toilet and 80% had water available. The district hospital reported the availability of both a functioning toilet and water at the time of assessment.

Code
processed_data |> 
  group_by(hcf_level) |> 
  summarise(
    facilities_num = n(),
    avg_daily_opd = round(mean(daily_outpatients, na.rm = TRUE), 0),
    avg_daily_inpt = round(mean(daily_inpatients, na.rm = TRUE),0),
    prop_toilet_usable = round(mean(toilet_usable == "Yes", na.rm = TRUE) * 100, 0),
    prop_water_avail = round(mean(ws_main_avl == "Yes", na.rm = TRUE) * 100, 0),
    .groups = "drop"
    ) |> 
  rename("Total number of facilities" = facilities_num,
    "Facility Level" = hcf_level,
         "Average Daily Outpatients" = avg_daily_opd,
         "Average Daily Inpatients" = avg_daily_inpt,
         "Proportion of facilities with functioning toilets (%)" = prop_toilet_usable,
         "Proportion of facilities with water available (%)" = prop_water_avail) |> 
      kable(caption = "Summary of patient load and WASH indicators by facility level")
Table 1: Summary of patient load and WASH indicators by facility level
Summary of patient load and WASH indicators by facility level
Facility Level Total number of facilities Average Daily Outpatients Average Daily Inpatients Proportion of facilities with functioning toilets (%) Proportion of facilities with water available (%)
CHPS Centre 24 15 0 64 75
District Hospital 1 110 30 100 100
Health Centre 13 35 3 70 85

Basic Water, Sanitation and Hygiene availability

An indicator of basic WASH access, defined as the simultaneous availability of water, usable toilets, and functioning hygiene stations was generated. Facilities were classified as having basic WASH access only when all three conditions were met.

Overall, 82% of the assessed facilities met the criteria for basic WASH access as shown in Table 2. This estimate reflects facilities with complete WASH data and existing sanitation infrastructure and therefore does not capture gaps related to the absence of toilets in some facilities.

Code
processed_data <- processed_data |> mutate(basic_wash = if_else(ws_main_avl == "Yes" &
                                toilet_usable == "Yes" &
                                hyg_station_funct == "Yes",
                              "Yes","No"))

processed_data |> 
  count(basic_wash) |> 
  mutate(percent = round(n / sum(n) * 100, 0)) |> 
  kable()
Table 2: Number of healthcare facilities with access to basic water, sanitation and hygiene
basic_wash n percent
No 31 82
Yes 7 18

Availability and functionality of toilets across all facility levels

Figure 1 shows the distribution of toilets across healthcare facilities, dissagregated by facility level. Facilities are grouped by their reported toilet status: functioning (Yes), non-functioning (No), or no toilet/latrine (NA). The plot shows that most facilities with toilets had functioning units while non-functioning toilets were relatively uncommon. However, among lower-level facilities, several facilities did not have any toilet infrastructure, which is represented by the NA category.

Code
processed_data |> 
  ggplot(aes(x = hcf_level, fill = toilet_usable)) + geom_bar() +
  labs(
    title = "Functioning toilets across facilities",
    x = "Facility level",
    y = "Number of facilities",
    fill = "Toilet status"
  )
Figure 1: Functioning toilets across facility levels

Availability of functioning hygiene stations across all facilities

As shown in Figure 2, the majority of health care facilities did not have functioning hygiene stations at the time of the assessment. A functioning hygiene station was defined as one with both water and soap available.

Code
library(ggplot2)

processed_data |> 
ggplot(aes(x = hyg_station_funct)) +
  geom_bar(fill = "darkblue") +
  labs(
    title = "Functioning hygiene stations",
    x = "Hygiene station functioning",
    y = "Number of facilities"
  ) + coord_flip()
Figure 2: Functioning hygiene stations

Health Care Waste Management

Most CHPS facilities (92%) did not have a dedicated staff appointed for health care facility waste management, while only 8% had a trained officer. Similarly, 77% of Health Centres lacked a dedicated waste management staff, with only 23% having one. In contrast, the District Hospital had a staff assigned to health care waste management.

Code
hcf_waste_management <- processed_data |> 
  count(hcf_level, hcf_waste_mgt_responsible)  |>
  group_by(hcf_level)  |>                       
  mutate(percent = round(n / sum(n) * 100, 0)) |> 
  rename("Health Care Facility Type" = hcf_level,
         "Waste Management Staff Status" = hcf_waste_mgt_responsible,
         "Number of Facilities" = n,
         "Proportion (%)" = percent)

hcf_waste_management |> 
  kable(caption = "Health Care Waste Management Staff")
Health Care Waste Management Staff
Health Care Facility Type Waste Management Staff Status Number of Facilities Proportion (%)
CHPS Centre No appointed 22 92
CHPS Centre Yes, present and adequately trained 2 8
District Hospital Yes, present and adequately trained 1 100
Health Centre Appointed but not trained 2 15
Health Centre No appointed 10 77
Health Centre Yes, present and adequately trained 1 8

Infectious Waste Treatment

Functionality of infectious waste treatment was assessed among facilities with treatment infrastructure. See Table 3. Among CHPS compounds, 29% had functional treatment, 42% had non-functional treatment, and 29% did not have any treatment facilities. Health Centres reported 46% functional, 38% non-functional, and 15% without treatment facilities. The District Hospital had fully functional treatment. Overall, functional infectious waste treatment was more common in higher-level facilities, while many lower-level facilities lacked treatment infrastructure entirely.

Code
infectious_waste_treatment_table <- processed_data |> 
  count(hcf_level, infectious_waste_treatment_funct) |> 
  group_by(hcf_level) |> 
  mutate(percent = round(n / sum(n) * 100, 0)) |> 
  rename(
    "Health Care Facility Type" = hcf_level,
    "Infectious Waste Treatment Functionality" = infectious_waste_treatment_funct,
    "Number of Facilities" = n,
    "Proportion (%)" = percent
  )

  kable(infectious_waste_treatment_table,
    caption = "Infectious Waste Treatment Practices")
Table 3: Functionality of Infectious Waste Treatment Facilities
Infectious Waste Treatment Practices
Health Care Facility Type Infectious Waste Treatment Functionality Number of Facilities Proportion (%)
CHPS Centre No 10 42
CHPS Centre Yes 7 29
CHPS Centre NA 7 29
District Hospital Yes 1 100
Health Centre No 5 38
Health Centre Yes 6 46
Health Centre NA 2 15

Conclusions

  • The analysis covered 38 out of the 39 assessed facilities. This included 24 CHPS compounds, 13 Health Centres and one District Hospital.

  • Daily outpatient numbers were highest at the district hospital (110), and lowest at the CHPS (15).

  • Basic WASH access was present in 82% of facilities.

  • Sanitation and hygiene gaps are mainly due to the absence of facilities, not their functionality.

  • Availability of staff dedicated to waste management was limited. 92% of CHPS and 77% of health centres had no dedicated staff.

  • Functional infectious waste treatment was limited at lower-level facilities, with only 29% of CHPS and 46% of Health Centres having working systems. The District Hospital was fully functional.

References

Macarayan, E. K., Ratcliffe, H. L., Otupiri, E., Hirschhorn, L. R., Miller, K., Lipsitz, S. R., Gawande, A. A., & Bitton, A. (2019). Facility management associated with improved primary health care outcomes in ghana. PLoS One, 14(7), e0218662.
WASH in health care facilities. (n.d.). Retrieved January 28, 2026, from https://www.who.int/teams/environment-climate-change-and-health/water-sanitation-and-health-(wash)/health-care-facilities/wash-in-health-care-facilities
WHO and UNICEF. (2025). Essential services for quality care. Water, sanitation, hygiene, health care waste and electricity services in health care facilities: Global progress report. World Health Organization.