Household survey on water costs and coping strategies in Accra

Published

April 18, 2024

Introduction

In Accra, Ghana, those without household taps often rely on local water vendors, whose per-liter prices are typically 8–10 times higher than the national utility (Amankwaa et al., 2014; Braimah et al., 2018). Rationing is needed because the city’s demand outstrips the available regional supply (Alba & Bartels, 2018), and longer-lasting tap closures create acute shortages in neighborhoods with low storage capacity. Residents of low-income neighborhoods and informal settlements must use social networks and coping mechanisms to purchase the water they need (Amankwaa, 2016), often paying extreme prices or using expensive packaged drinking water to cook, bathe, and keep businesses open. This household survey was conducted to estimate water costs, payment mechanisms, and identify coping mechanisms in two low-income communities in Accra.

Methods

A survey of 116 households was conducted in two low-income communities in metropolitan Accra. These are Korle Gonno, a larger, well-planned coastal area with over 35 household water vendors, and Abuja, a small, densely packed, extralegal settlement with 15 water vendor and bathhouse businesses. Households were identified using geographically stratified random sampling; Korle Gonno was split into four quadrants and Abuja was bisected using major roads for demarcation. Respondents were household members who claimed to be knowledgeable about household water collection practices. “Household” in this survey was defined as a group of people who live in the same housing unit and usually have meals together, or “eat from the same pot.” Information about primary drinking water sources and reasoning was collected as well, but is not analyzed here.

Install packages:

install.packages("tidyverse")
install.packages("dplyr")
install.packages("readxl")
install.packages("tidyr")
install.packages("scales")
install.packages("knitr")
install.packages("kableExtra")

Load packages:

#Load packages and data
library(tidyverse)
library(dplyr)
library(readxl)
library(tidyr)
library(scales)
library(knitr)
library(kableExtra)

Read data from Excel format:

#Read data
data <- read_excel(here::here("data/raw/hh-data.xlsx"))

Data processing involved:

1) adding columns to the data to calculate total household population and household density

2) setting NA values to be omitted during analysis

3) setting value types

4) pivoting to long-format data for side-by-side comparisons of multiple values (community & coping mechanisms)

5) setting orders for ordinal variables used in data visualization

# Add variables related to household density
processed_data <- data |> 
  mutate(hh_size = adult_count + child_count,.after = child_count)  |>
  mutate(rooms_in_hh = na_if(rooms_in_hh,0)) |> 
  mutate(density = hh_size / rooms_in_hh,.after = rooms_in_hh)

# Set NA values
processed_data <- processed_data |>
  mutate(density = na_if(density,Inf)) |> 
  mutate(secondary_water_source = na_if(secondary_water_source,"na")) %>% 
  mutate(daily_hh_water_cost = na_if(daily_hh_water_cost, "na")) %>% 
  mutate(daily_hh_water_cost_phhm = na_if(daily_hh_water_cost_phhm,"na")) 

processed_data$time_of_last_struggle[processed_data$time_of_last_struggle == "na"] <- "have_not_struggled"

#Read costs as numerical data
processed_data$daily_hh_water_cost <- as.numeric(processed_data$daily_hh_water_cost)
processed_data$daily_hh_water_cost_phhm <- as.numeric(processed_data$daily_hh_water_cost_phhm)

# Pivot long
struggle_data <- processed_data %>% 
  filter(time_of_last_struggle == "last_3_days" |
           time_of_last_struggle == "last_7_days" |
           time_of_last_struggle ==  "last_30_days") 

long_struggle_data <- pivot_longer(struggle_data, 
                                   cols = coping_sachet_to_cook:coping_skipped_laundry)
long_struggle_data <- filter(.data = long_struggle_data, value == 1)

# Set orders for ordinal variables
processed_data$community <- factor(processed_data$community, 
                                   levels = c("kg","abuja"))
long_struggle_data$name <- factor(long_struggle_data$name,
                           levels = rev(c("coping_sachet_to_bathe", 
                                          "coping_skipped_bathing",
                                          "coping_sachet_to_cook",
                                          "coping_skipped_cooking",
                                          "coping_skipped_laundry",
                                          "coping_closed_business")))
long_struggle_data$community <- factor(long_struggle_data$community, 
                                       levels = c("kg", "abuja"))

Additionally, label vectors were created for ordinal variables to be used in plots:

coping_mech_labs <- c( "coping_closed_business" = "Closed business",
                       "coping_sachet_to_bathe" = "Used sachet water\n for bathing",
                       "coping_sachet_to_cook" = "Used sachet water\nfor cooking",
                       "coping_skipped_bathing" = "Skipped bathing",
                       "coping_skipped_cooking" = "Skipped cooking",
                       "coping_skipped_laundry" = "Skipped laundry")
community_labels <- c("kg" = "Korle Gonno",
                      "abuja" = "Abuja")

Results

See Table 1 for a summary of information about the respondents.

summary_data <- processed_data %>% 
  mutate(community = factor(community, labels = community_labels)) %>%
  group_by(community) %>% 
  summarise(num = n(),
            years = round(mean(years_in_community), digits = 2),
            hh = round(mean(hh_size), digits = 2),
            mean_density = round(mean(density, na.rm = TRUE), digits = 2))
  
kable(summary_data, format = "html", col.names = c("Community",
                                                  "n",
                                                  "Years living in community",
                                                  "Household size",
                                                  "Persons per bedroom"),
      align = "c") 
Table 1: Respondent information
Community n Years living in community Household size Persons per bedroom
Korle Gonno 60 30.13 4.88 3.24
Abuja 56 13.71 5.57 5.37

Households in Korle Gonno were well-established compared to the somewhat transient, extralegal settlement of Abuja. Many Korle Gonno respondents had lived in the same family-owned compound houses for decades. These large houses have more bedrooms per unit, lowering the population density (persons per bedroom).

See Table 2 for information about respondents’ primary water sources, typical daily water cost per household member, and how they pay for water from their primary water source (either by pre-paying for each bucket, or by sharing a monthly bill with other households).

summary_data <- processed_data %>% 
  mutate(community = factor(community, labels = community_labels)) %>%
  group_by(community) %>% 
  summarise(num = n(),
            source_ct = percent(sum(primary_water_source == "commercial_tap")/num),
            source_hh = percent(sum(primary_water_source == "piped_to_compound",
                                    primary_water_source == "piped_to_home")/num),
            mean_cost = round(mean(daily_hh_water_cost_phhm, na.rm = TRUE), digits = 2),
            pay_fetch = percent(sum(payment_mode_primary=="pay_to_fetch")/num),
            pay_bill = percent(sum(payment_mode_primary=="shares_bill")/num))
            
kable(summary_data, format = "html",col.names = c("Community", 
                                                  "n",
                                                  "Commercial tap users (%)", 
                                                  "On-premises tap users (%)",
                                                  "Daily cost per person (GHC)",
                                                  "Pre-paying households",
                                                  "Bill-paying households"),
      align = "c") %>% 
  footnote(general = "1 USD ≈ 12.5 GHC", footnote_as_chunk = T)
Table 2: Summary of findings
Community n Commercial tap users (%) On-premises tap users (%) Daily cost per person (GHC) Pre-paying households Bill-paying households
Korle Gonno 60 25% 73% 1.47 62% 38%
Abuja 56 91% 9% 3.82 88% 9%
Note: 1 USD ≈ 12.5 GHC

The median daily cost for Abuja residents is about 4 cedis per person (approximately 0.32 USD), amounting to about 20 cedis (1.60 USD) for a typical household of five. (For reference, a 500 mL bottle of drinking water costed 3 cedis and a 500 mL sachet costed 0.3-0.5 cedis at the time of writing.)

Most (74%) of the surveyed households reported that they pre-pay for each bucket or gallon of water they collect from their primary source, instead of fully paying or contributing to a monthly bill. For these households, prices are left up to informal vendors, and are generally much higher than the utility’s price. Even among pre-paying households, Abuja residents pay higher prices overall, even though their daily usage is comparable to Korle Gonno residents (see Figure 1).

processed_data |> 
  filter(payment_mode_primary != "shares_bill") %>% 
  ggplot(mapping = aes(x=fct_rev(community),
                       y = daily_hh_water_cost_phhm,
                       fill = community)) +
  labs(title="Daily water expense per household member",
       y = "Cost (GHC)") +
  scale_y_continuous(limits = c(0,15),
                     breaks = c(0,5,10,15),
                     minor_breaks = pretty_breaks(15)) +
  scale_x_discrete("Community", 
                   labels = c("abuja" = "Abuja\n(n = 50)", 
                              "kg" = "Korle Gonno\n(n = 40)")) +  
  scale_fill_manual(values = c("darkturquoise","coral")) +
  theme(legend.position = "None",
        plot.title = element_text(hjust = 0.5),
        axis.text.x = element_text(size = 10.5),
        axis.text.y = element_text(size = 10.5))+
  geom_violin(alpha = 0.4) +
  geom_boxplot(width=0.20)
Figure 1: Daily water expense per household member, for households that pre-pay (n=90)

Figure 2 shows the variety of coping mechanisms respondents had used in the previous 30 days.

long_struggle_data %>% 
  ggplot(mapping = aes(y=name,
                       fill = community)) +
  labs(title = "Coping mechanisms used in the last 30 days",
       y = "Type of coping mechanism",
       x = "Count of respondents") +
  scale_y_discrete("Type of coping mechanism",
                 labels = coping_mech_labs) +
  scale_x_continuous(minor_breaks = pretty_breaks(25))+
  scale_fill_manual(values = c("coral","darkturquoise"),
                    name="Community: ",
                    labels=c("abuja" = "Abuja (n=56)",
                            "kg" = "Korle Gonno (n=60)"),
                    breaks = c("abuja", "kg")) +
  theme(axis.text.y = element_text(size = 10),
        plot.title = element_text(hjust = 0.5, vjust = 1),
        axis.title.y = element_text(size= 12, vjust = 5),
        axis.title.x = element_text(vjust=.25),
        plot.margin = margin(t=12,r=16,b=12,l=16),
        legend.position = "bottom",
        legend.text = element_text(size =10)) +
  geom_bar(position = position_dodge(.7), width = 0.6) 
Figure 2: Types of coping mechanisms used by respondents in the last 30 days.

Skipping laundry was the most common way to cope with water shortages. Six respondents had closed their business in the last 30 days due to water shortage. Frequencies were about even between the two communities, but residents of Korle Gonno had used fewer coping strategies overall.

Conclusions

  • Abuja residents are heavily reliant on commercial vendors, while a majority of Korle Gonno residents have access to a tap on-premises (inside the home or on the compound)

  • Abuja has an association of water vendors who agree on pricing strategies, and median prices are higher than Korle Gonno, where free market rules

  • Results indicate similar coping strategies between communities, but Abuja residents are more reliant on pre-pay water vendor services and the prices of those services are higher

References

Alba, R., & Bartels, L. E. (2018). Featuring water infrastructure, provision and access in the Greater Accra Metropolitan Area. WaterPower Working Paper.
Amankwaa, E. (2016). Poverty penalty: Strategies for coping with water access for the urban poor in Abuja, Accra. 2555.
Amankwaa, E., Owusu, A. B., Owusu, G., & Eshun, F. (2014). Accra’s poverty trap: Analysing water provision in urban Ghana. Journal of Social Science for Policy Implications, 2(2), 69–89.
Braimah, I., Obeng Nti, K., & Amponsah, O. (2018). Poverty Penalty in Urban Water Market in Ghana. Urban Forum, 29(2), 147–168. https://doi.org/10.1007/s12132-017-9328-x