Introdução

Este relatório analisa indicadores de descontinuidade e regularidade do abastecimento de água obtidos a partir da base do SNIS previamente consolidada em arquivo desagregado (Desagregado-.csv ou .xlsx). São analisados, para todos os municípios com dados disponíveis no período considerado, os seguintes indicadores:

  • IN071 – Economias atingidas por paralisações (quanto menor, melhor)

  • IN073 – Economias atingidas por intermitências (quanto menor, melhor)

  • IN083 – Tempo médio de reparo de vazamento de água (quanto menor, melhor)

  • IN072 – Duração média das paralisações (quanto menor, melhor)

  • IN074 – Duração média das intermitências (quanto menor, melhor)

A partir desses indicadores, realizamos:

  • leitura, padronização e integração com população municipal;

  • diagnóstico de cobertura (missingness) e consistência;

  • identificação e remoção de outliers com limites empíricos (p01–p99) e regra de não negatividade;

  • estatísticas descritivas anuais e evolução histórica;

  • definição de referências (benchmark) e classificação dos prestadores;

  • critérios de “excelência relativa” (p25) e escore composto (IDA-score) para ranking comparável;

  • análise por estratos populacionais do mercado atendido (quando a base de população estiver disponível).

pacman::p_load(purrr,dplyr,tidyr,stringr,readr,openxlsx,knitr,kableExtra,
ggplot2,flextable,officer,patchwork,plotly,webshot2,scales, gtable, ggplot, patchwork)
## Installing package into 'C:/Users/Paula Macedo/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## Warning: unable to access index for repository http://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/4.3:
##   não foi possível abrir a URL 'http://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/4.3/PACKAGES'
## 
##   There is a binary version available but the source version is later:
##           binary source needs_compilation
## patchwork  1.3.0  1.3.2             FALSE
## installing the source package 'patchwork'
## Warning in utils::install.packages(package, ...): installation of package
## 'patchwork' had non-zero exit status
## Warning in p_install(package, character.only = TRUE, ...):
## Warning in library(package, lib.loc = lib.loc, character.only = TRUE,
## logical.return = TRUE, : there is no package called 'patchwork'
## Installing package into 'C:/Users/Paula Macedo/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## Warning: package 'ggplot' is not available for this version of R
## 
## A version of this package for your version of R might be available elsewhere,
## see the ideas at
## https://cran.r-project.org/doc/manuals/r-patched/R-admin.html#Installing-packages
## Warning: unable to access index for repository http://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/4.3:
##   não foi possível abrir a URL 'http://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/4.3/PACKAGES'
## Warning: 'BiocManager' not available.  Could not check Bioconductor.
## 
## Please use `install.packages('BiocManager')` and then retry.
## Warning in p_install(package, character.only = TRUE, ...):
## Warning in library(package, lib.loc = lib.loc, character.only = TRUE,
## logical.return = TRUE, : there is no package called 'ggplot'
## Installing package into 'C:/Users/Paula Macedo/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## Warning: unable to access index for repository http://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/4.3:
##   não foi possível abrir a URL 'http://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/4.3/PACKAGES'
## 
##   There is a binary version available but the source version is later:
##           binary source needs_compilation
## patchwork  1.3.0  1.3.2             FALSE
## installing the source package 'patchwork'
## Warning in utils::install.packages(package, ...): installation of package
## 'patchwork' had non-zero exit status
## Warning in p_install(package, character.only = TRUE, ...):
## Warning in library(package, lib.loc = lib.loc, character.only = TRUE,
## logical.return = TRUE, : there is no package called 'patchwork'
## Warning in pacman::p_load(purrr, dplyr, tidyr, stringr, readr, openxlsx, : Failed to install/load:
## patchwork, ggplot, patchwork
knitr::opts_chunk$set(webshot = TRUE)
# Indicadores IDA (nomes curtos no script)
indicadores_ida <- c("IN071", "IN073", "IN083", "IN072", "IN074")

# Meta-info para tabelas e gráficos (direção: menor = melhor)
meta_indicadores_ida <- tibble::tibble(
  indicador = indicadores_ida,
  descricao = c(
    "Economias atingidas por paralisações",     # IN071
    "Economias atingidas por intermitências",   # IN073
    "Tempo médio de reparo de vazamento de água",# IN083 (proxy SNIS)
    "Duração média das paralisações",           # IN072
    "Duração média das intermitências"          # IN074
  ),
  direcao = "menor_melhor"
)
# Diretórios baseados no local do .Rmd
current_working_dir <- getwd()
bases_dir <- normalizePath(file.path(current_working_dir, "..", "bases"))

# Arquivo desagregado (SNIS pré-processado)
file_path_ida <- file.path(bases_dir, "Desagregado-20251218154840.csv")
print(file_path_ida)
## [1] "C:\\Users\\Paula Macedo\\OneDrive\\PROJETOS\\CONSULTORIA\\FIPE_CONCES\\indicadores\\bases/Desagregado-20251218154840.csv"
# Leitura com codificação UTF-16LE (padrão do export SNIS desagregado)
dados_ida_bruto <- readr::read_delim(
  file_path_ida,
  delim = ";",
  locale = readr::locale(encoding = "UTF-16LE"),
  trim_ws = TRUE,
  show_col_types = FALSE
)

# Renomear colunas principais e padronizar nomes dos indicadores
dados_ida <- dados_ida_bruto |>
  dplyr::rename(
    code_mun         = `Código do Município`,
    municipio        = Município,
    uf               = Estado,
    ano              = `Ano de Referência`,
    cod_prestador    = `Código do Prestador`,
    prestador        = Prestador,
    sigla_prestador  = `Sigla do Prestador`,
    abrangencia      = Abrangência,
    tipo_servico     = `Tipo de serviço`,
    natureza_juridica= `Natureza jurídica`,
    IN071 = `IN071 - Economias atingidas por paralisações`,
    IN072 = `IN072 - Duração média das paralisações`,
    IN073 = `IN073 - Economias atingidas por intermitências`,
    IN074 = `IN074 - Duração média das intermitências`,
    IN083 = `IN083 - Duração média dos serviços executados`
  ) |>
  dplyr::mutate(
    code_mun = as.numeric(code_mun),
    ano      = as.numeric(ano),
    dplyr::across(
      dplyr::all_of(indicadores_ida),
      ~ readr::parse_number(.x, locale = readr::locale(decimal_mark = ","))
    )
  )

anos <- sort(unique(dados_ida$ano))

glimpse(dados_ida)
## Rows: 987
## Columns: 15
## $ code_mun          <dbl> 270010, 270020, 270040, 270040, 270050, 270050, 2700…
## $ municipio         <chr> "Água Branca", "Anadia", "Atalaia", "Atalaia", "Barr…
## $ uf                <chr> "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL"…
## $ ano               <dbl> 2022, 2022, 2022, 2021, 2022, 2021, 2022, 2021, 2022…
## $ cod_prestador     <chr> "27067013", "27093013", "27043011", "27043011", "270…
## $ prestador         <chr> "Águas do Sertão S/A", "Verde Ambiental Alagoas S.A"…
## $ sigla_prestador   <chr> "AguasSertao", "VAA", "BRK RMM", "BRK RMM", "BRK RMM…
## $ abrangencia       <chr> "Microrregional", "Microrregional", "Microrregional"…
## $ tipo_servico      <chr> "Água", "Água", "Água", "Água", "Água e Esgoto", "Ág…
## $ natureza_juridica <chr> "Empresa privada", "Empresa privada", "Empresa priva…
## $ IN071             <dbl> 2269.00, 269.50, 2766.22, 923.72, 2563.88, 893.06, 4…
## $ IN072             <dbl> 24.00, 6.00, 23.87, 11.51, 27.40, 10.44, 11.10, 12.5…
## $ IN073             <dbl> 1912.90, 80.64, 481.80, NA, 2009.00, NA, NA, NA, 90.…
## $ IN074             <dbl> 17.17, 6.00, 19.44, NA, 13.15, NA, NA, NA, 24.00, 13…
## $ IN083             <dbl> 60.47, NA, 207.59, 0.05, 273.15, 0.07, 243.03, 0.02,…
file_path_pop <- file.path(bases_dir, "Populacao", "populacao_long_versao_final.csv")
tem_pop <- file.exists(file_path_pop)

populacao <- NULL
if (tem_pop) {
  populacao <- readr::read_delim(
    file_path_pop,
    delim = ",",
    locale = readr::locale(encoding = "UTF-8"),
    show_col_types = FALSE
  ) |>
    dplyr::mutate(
      code_mun = as.numeric(substr(as.character(code_mun), 1, 6)),
      ano      = as.numeric(ano),
      pop      = as.numeric(pop)
    )
}

ida <- dados_ida |>
  dplyr::left_join(
    if (tem_pop) populacao |> dplyr::select(code_mun, ano, pop) else tibble::tibble(code_mun = numeric(), ano = numeric(), pop = numeric()),
    by = c("code_mun", "ano")
  ) |>
  dplyr::mutate(
    # taxas por 10 mil habitantes (quando pop disponível)
    IN071_tx10k = dplyr::if_else(!is.na(pop) & pop > 0 & !is.na(IN071), (IN071 / pop) * 10000, as.numeric(NA)),
    IN073_tx10k = dplyr::if_else(!is.na(pop) & pop > 0 & !is.na(IN073), (IN073 / pop) * 10000, as.numeric(NA))
  )

glimpse(ida)
## Rows: 987
## Columns: 18
## $ code_mun          <dbl> 270010, 270020, 270040, 270040, 270050, 270050, 2700…
## $ municipio         <chr> "Água Branca", "Anadia", "Atalaia", "Atalaia", "Barr…
## $ uf                <chr> "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL"…
## $ ano               <dbl> 2022, 2022, 2022, 2021, 2022, 2021, 2022, 2021, 2022…
## $ cod_prestador     <chr> "27067013", "27093013", "27043011", "27043011", "270…
## $ prestador         <chr> "Águas do Sertão S/A", "Verde Ambiental Alagoas S.A"…
## $ sigla_prestador   <chr> "AguasSertao", "VAA", "BRK RMM", "BRK RMM", "BRK RMM…
## $ abrangencia       <chr> "Microrregional", "Microrregional", "Microrregional"…
## $ tipo_servico      <chr> "Água", "Água", "Água", "Água", "Água e Esgoto", "Ág…
## $ natureza_juridica <chr> "Empresa privada", "Empresa privada", "Empresa priva…
## $ IN071             <dbl> 2269.00, 269.50, 2766.22, 923.72, 2563.88, 893.06, 4…
## $ IN072             <dbl> 24.00, 6.00, 23.87, 11.51, 27.40, 10.44, 11.10, 12.5…
## $ IN073             <dbl> 1912.90, 80.64, 481.80, NA, 2009.00, NA, NA, NA, 90.…
## $ IN074             <dbl> 17.17, 6.00, 19.44, NA, 13.15, NA, NA, NA, 24.00, 13…
## $ IN083             <dbl> 60.47, NA, 207.59, 0.05, 273.15, 0.07, 243.03, 0.02,…
## $ pop               <dbl> 19008, 13966, 37512, 47540, 16365, 16201, 7944, 8434…
## $ IN071_tx10k       <dbl> 1193.70791, 192.96864, 737.42269, 194.30374, 1566.68…
## $ IN073_tx10k       <dbl> 1006.36574, 57.74023, 128.43890, NA, 1227.61992, NA,…
# Preferir versões normalizadas (por 10 mil hab.) quando houver população válida
has_tx10k <- all(c("IN071_tx10k","IN073_tx10k") %in% names(ida)) &&
  any(!is.na(ida$IN071_tx10k)) && any(!is.na(ida$IN073_tx10k))

if (has_tx10k) {
  indicadores_bench <- c("IN071_tx10k", "IN073_tx10k", "IN083", "IN072", "IN074")

  meta_bench <- tibble::tibble(
    indicador = indicadores_bench,
    descricao = c(
      "Economias atingidas por paralisações (por 10 mil hab.)",
      "Economias atingidas por intermitências (por 10 mil hab.)",
      "Tempo médio de reparo de vazamento de água",
      "Duração média das paralisações",
      "Duração média das intermitências"
    ),
    direcao = "menor_melhor"
  )
} else {
  indicadores_bench <- c("IN071", "IN073", "IN083", "IN072", "IN074")

  meta_bench <- tibble::tibble(
    indicador = indicadores_bench,
    descricao = c(
      "Economias atingidas por paralisações",
      "Economias atingidas por intermitências",
      "Tempo médio de reparo de vazamento de água",
      "Duração média das paralisações",
      "Duração média das intermitências"
    ),
    direcao = "menor_melhor"
  )
}

indicadores_bench
## [1] "IN071_tx10k" "IN073_tx10k" "IN083"       "IN072"       "IN074"
meta_bench
## # A tibble: 5 × 3
##   indicador   descricao                                                direcao  
##   <chr>       <chr>                                                    <chr>    
## 1 IN071_tx10k Economias atingidas por paralisações (por 10 mil hab.)   menor_me…
## 2 IN073_tx10k Economias atingidas por intermitências (por 10 mil hab.) menor_me…
## 3 IN083       Tempo médio de reparo de vazamento de água               menor_me…
## 4 IN072       Duração média das paralisações                           menor_me…
## 5 IN074       Duração média das intermitências                         menor_me…
# Cobertura (missingness) — indicadores do benchmarking
cobertura_bench <- tibble::tibble(indicador = indicadores_bench) |>
  dplyr::mutate(
    n_obs  = purrr::map_int(indicador, ~ sum(!is.na(ida[[.x]]))),
    pct_na = purrr::map_dbl(indicador, ~ round(100 * mean(is.na(ida[[.x]])), 2))
  ) |>
  dplyr::left_join(meta_bench, by = "indicador") |>
  dplyr::arrange(desc(n_obs))

cobertura_bench |>
  knitr::kable("html", caption = "Cobertura (missingness) — indicadores utilizados no benchmarking") |>
  kableExtra::kable_styling(
    bootstrap_options = c("striped","hover","condensed","responsive"),
    full_width = FALSE
  )
Cobertura (missingness) — indicadores utilizados no benchmarking
indicador n_obs pct_na descricao direcao
IN072 613 37.89 Duração média das paralisações menor_melhor
IN074 396 59.88 Duração média das intermitências menor_melhor
IN083 304 69.20 Tempo médio de reparo de vazamento de água menor_melhor
IN071_tx10k 291 70.52 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
IN073_tx10k 162 83.59 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
# Cobertura por ano: nº de municípios com observação por indicador
cobertura_ano_bench <- ida |>
  dplyr::group_by(ano) |>
  dplyr::summarise(
    n_linhas = dplyr::n(),
    n_municipios = dplyr::n_distinct(code_mun),
    dplyr::across(dplyr::all_of(indicadores_bench), ~ sum(!is.na(.x)), .names = "{.col}_n_obs"),
    .groups = "drop"
  ) |>
  dplyr::arrange(ano)

cobertura_ano_bench |>
  knitr::kable("html", caption = "Cobertura por ano — municípios com dado nos indicadores do benchmarking") |>
  kableExtra::kable_styling(
    bootstrap_options = c("striped","hover","condensed","responsive"),
    full_width = FALSE
  )
Cobertura por ano — municípios com dado nos indicadores do benchmarking
ano n_linhas n_municipios IN071_tx10k_n_obs IN073_tx10k_n_obs IN083_n_obs IN072_n_obs IN074_n_obs
1998 8 8 0 0 0 0 0
1999 14 14 0 0 0 1 0
2000 11 11 4 2 0 4 2
2001 12 12 8 5 0 8 5
2002 17 17 7 0 1 10 3
2003 22 22 6 1 2 8 3
2004 20 20 5 3 0 6 7
2005 23 23 3 0 2 7 4
2006 21 21 1 0 3 4 0
2007 21 21 21 21 0 21 9
2008 20 20 1 0 0 3 1
2009 18 18 3 0 8 3 0
2010 18 18 1 1 6 6 6
2011 18 18 3 2 5 9 9
2012 18 18 1 0 3 8 7
2013 18 18 1 1 3 8 8
2014 18 18 3 3 5 8 8
2015 18 18 3 3 3 11 12
2016 17 17 3 1 3 10 8
2017 17 17 6 3 8 9 5
2018 35 35 6 5 13 21 20
2019 56 56 9 6 16 44 39
2020 58 58 6 10 16 44 26
2021 100 98 33 14 58 51 32
2022 388 376 157 81 149 309 182
NA 1 1 0 0 0 0 0
# Checagem mínima de consistência: valores negativos (devem ser raros/zero)
negativos_bench <- tibble::tibble(indicador = indicadores_bench) |>
  dplyr::mutate(
    n_neg = purrr::map_int(indicador, ~ sum(!is.na(ida[[.x]]) & ida[[.x]] < 0))
  ) |>
  dplyr::left_join(meta_bench, by = "indicador")

negativos_bench |>
  knitr::kable("html", caption = "Quantidade de valores negativos por indicador (benchmarking)") |>
  kableExtra::kable_styling(
    bootstrap_options = c("striped","hover","condensed","responsive"),
    full_width = FALSE
  )
Quantidade de valores negativos por indicador (benchmarking)
indicador n_neg descricao direcao
IN071_tx10k 0 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
IN073_tx10k 0 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
IN083 0 Tempo médio de reparo de vazamento de água menor_melhor
IN072 0 Duração média das paralisações menor_melhor
IN074 0 Duração média das intermitências menor_melhor
# Estatísticas brutas por ano (antes de remover outliers) — conjunto benchmarking
stats_brutas_ida <- ida |>
  dplyr::group_by(ano) |>
  dplyr::summarise(
    dplyr::across(
      dplyr::all_of(indicadores_bench),
      list(media = ~ mean(.x, na.rm = TRUE), sd = ~ sd(.x, na.rm = TRUE)),
      .names = "{.col}_{.fn}"
    ),
    .groups = "drop"
  ) |>
  dplyr::arrange(ano)

stats_brutas_ida |>
  knitr::kable("html", digits = 2, caption = "Estatísticas anuais brutas (antes de outliers) — indicadores do benchmarking") |>
  kableExtra::kable_styling(
    bootstrap_options = c("striped","hover","condensed","responsive"),
    full_width = FALSE
  )
Estatísticas anuais brutas (antes de outliers) — indicadores do benchmarking
ano IN071_tx10k_media IN071_tx10k_sd IN073_tx10k_media IN073_tx10k_sd IN083_media IN083_sd IN072_media IN072_sd IN074_media IN074_sd
1998 NaN NA NaN NA NaN NA NaN NA NaN NA
1999 NaN NA NaN NA NaN NA 3.00 NA NaN NA
2000 19.73 36.12 70.21 28.42 NaN NA 1.89 1.29 0.26 0.09
2001 395.04 173.08 206.36 267.35 NaN NA 14.00 8.28 14.72 12.71
2002 236.45 188.17 NaN NA 0.08 NA 6.26 3.32 6.00 0.00
2003 477.22 269.14 5.55 NA 1.50 0.71 5.94 3.90 1.27 0.63
2004 1488.02 1358.56 826.67 10.64 NaN NA 7.26 4.81 9.57 5.56
2005 1246.28 403.68 NaN NA 1.58 0.40 8.49 2.33 14.00 0.00
2006 1239.61 NA NaN NA 8.54 0.14 9.58 9.40 NaN NA
2007 52.26 52.64 0.58 0.86 NaN NA 37.18 48.21 0.43 0.61
2008 532.60 NA NaN NA NaN NA 3.18 1.27 27.00 NA
2009 755.48 424.42 NaN NA 2.76 3.22 3.06 0.25 NaN NA
2010 362.74 NA 362.74 NA 21.47 22.80 4.43 1.38 8.05 2.00
2011 851.03 587.73 880.40 694.38 46.32 41.67 5.31 1.62 9.54 3.74
2012 335.26 NA NaN NA 45.82 0.08 8.43 3.05 10.05 2.66
2013 36.27 NA 260.58 NA 40.87 0.53 8.75 3.86 5.40 3.57
2014 14.59 15.56 38.56 52.08 0.22 0.19 4.50 1.68 4.86 3.68
2015 14.39 15.30 41.61 48.01 46.39 0.01 3.38 2.03 3.83 2.93
2016 379.78 517.09 103.38 NA 75.71 0.02 6.80 6.19 3.37 2.88
2017 6.31 15.45 33.97 58.84 49.44 64.81 5.98 3.72 6.58 4.00
2018 432.53 318.94 445.24 474.91 25.84 40.36 11.45 4.35 17.93 19.76
2019 431.18 266.55 508.90 463.13 30.12 62.32 7.47 3.18 11.85 21.56
2020 476.74 279.99 884.30 996.28 38.32 32.95 7.87 3.40 14.22 15.15
2021 1347.10 1108.58 1032.93 727.51 8.71 24.55 15.32 14.30 23.78 37.78
2022 795.40 1049.76 655.93 1334.29 65.95 91.27 78.24 391.39 11.43 8.81
NA NaN NA NaN NA NaN NA NaN NA NaN NA
# Limites empíricos (p01–p99) para diagnóstico; filtro usa não-negatividade + teto p99
q_safe <- function(x, p) {
  if (all(is.na(x))) return(NA_real_)
  as.numeric(stats::quantile(x, probs = p, na.rm = TRUE, names = FALSE))
}

limites_ida <- tibble::tibble(indicador = indicadores_bench) |>
  dplyr::mutate(
    p01 = purrr::map_dbl(indicador, ~ q_safe(ida[[.x]], 0.01)),
    p99 = purrr::map_dbl(indicador, ~ q_safe(ida[[.x]], 0.99))
  ) |>
  dplyr::left_join(meta_bench, by = "indicador")

limites_ida |>
  knitr::kable("html", digits = 2, caption = "Limites empíricos (p01–p99) — diagnóstico de outliers (benchmarking)") |>
  kableExtra::kable_styling(
    bootstrap_options = c("striped","hover","condensed","responsive"),
    full_width = FALSE
  )
Limites empíricos (p01–p99) — diagnóstico de outliers (benchmarking)
indicador p01 p99 descricao direcao
IN071_tx10k 0.00 3795.92 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
IN073_tx10k 0.00 6167.18 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
IN083 0.00 317.57 Tempo médio de reparo de vazamento de água menor_melhor
IN072 0.00 1227.70 Duração média das paralisações menor_melhor
IN074 0.19 75.02 Duração média das intermitências menor_melhor
# Quantos outliers por indicador (regra: <0 ou >p99)
outliers_diag <- purrr::map_dfr(indicadores_bench, function(ind) {
  teto <- limites_ida$p99[limites_ida$indicador == ind][1]
  x <- ida[[ind]]

  n_out <- if (is.na(teto)) {
    sum(!is.na(x) & x < 0)
  } else {
    sum(!is.na(x) & (x < 0 | x > teto))
  }

  tibble::tibble(indicador = ind, n_outliers = n_out)
}) |>
  dplyr::left_join(meta_bench, by = "indicador") |>
  dplyr::arrange(desc(n_outliers))

outliers_diag |>
  knitr::kable("html", caption = "Diagnóstico: número de outliers por indicador (regra <0 ou > p99)") |>
  kableExtra::kable_styling(
    bootstrap_options = c("striped","hover","condensed","responsive"),
    full_width = FALSE
  )
Diagnóstico: número de outliers por indicador (regra <0 ou > p99)
indicador n_outliers descricao direcao
IN072 7 Duração média das paralisações menor_melhor
IN083 4 Tempo médio de reparo de vazamento de água menor_melhor
IN074 4 Duração média das intermitências menor_melhor
IN071_tx10k 3 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
IN073_tx10k 2 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
# Filtro: preservar zeros e cauda inferior válida; remover negativos e cauda superior extrema (p99)
dados_validos_ida <- ida

for (ind in indicadores_bench) {
  teto <- limites_ida$p99[limites_ida$indicador == ind][1]

  if (is.na(teto)) {
    # se p99 indisponível (tudo NA), só remove negativos
    dados_validos_ida <- dados_validos_ida |>
      dplyr::filter(is.na(.data[[ind]]) | .data[[ind]] >= 0)
  } else {
    dados_validos_ida <- dados_validos_ida |>
      dplyr::filter(is.na(.data[[ind]]) | (.data[[ind]] >= 0 & .data[[ind]] <= teto))
  }
}

registros_iniciais_ida  <- nrow(ida)
registros_validos_ida   <- nrow(dados_validos_ida)
registros_removidos_ida <- registros_iniciais_ida - registros_validos_ida

tibble::tibble(
  Categoria  = c("Registros iniciais", "Registros após filtro (>=0 e <=p99)", "Total removido"),
  Quantidade = c(registros_iniciais_ida, registros_validos_ida, registros_removidos_ida)
) |>
  knitr::kable("html", caption = "Resumo da remoção de outliers (benchmarking)") |>
  kableExtra::kable_styling(
    bootstrap_options = c("striped","hover","condensed","responsive"),
    full_width = FALSE
  )
Resumo da remoção de outliers (benchmarking)
Categoria Quantidade
Registros iniciais 987
Registros após filtro (>=0 e <=p99) 967
Total removido 20
# Identificar prestadores com outliers por ano (na base original)
ida_flags <- ida

for (ind in indicadores_bench) {
  teto <- limites_ida$p99[limites_ida$indicador == ind][1]
  nm <- paste0("out_", ind)

  if (is.na(teto)) {
    ida_flags <- ida_flags |>
      dplyr::mutate(!!nm := !is.na(.data[[ind]]) & .data[[ind]] < 0)
  } else {
    ida_flags <- ida_flags |>
      dplyr::mutate(!!nm := !is.na(.data[[ind]]) & (.data[[ind]] < 0 | .data[[ind]] > teto))
  }
}

prestadores_outliers_long <- ida_flags |>
  dplyr::filter(!is.na(prestador)) |>
  dplyr::filter(dplyr::if_any(dplyr::starts_with("out_"), ~ .x)) |>
  tidyr::pivot_longer(
    cols = dplyr::starts_with("out_"),
    names_to = "indicador",
    values_to = "eh_outlier"
  ) |>
  dplyr::filter(eh_outlier) |>
  dplyr::mutate(indicador = stringr::str_remove(indicador, "^out_")) |>
  dplyr::group_by(ano, prestador) |>
  dplyr::summarise(
    indicadores_afetados = paste(sort(unique(indicador)), collapse = ", "),
    .groups = "drop"
  )

tabela_outliers_prestador <- prestadores_outliers_long |>
  dplyr::group_by(ano) |>
  dplyr::summarise(
    prestadores_com_outliers = paste(sort(unique(prestador)), collapse = "; "),
    indicadores_afetados = {
      inds <- indicadores_afetados[!is.na(indicadores_afetados)]
      inds <- unlist(strsplit(inds, ",\\s*"))
      paste(sort(unique(inds)), collapse = ", ")
    },
    .groups = "drop"
  ) |>
  dplyr::arrange(ano)


tabela_outliers_prestador |>
  knitr::kable("html", caption = "Prestadores com outliers por ano (diagnóstico)") |>
  kableExtra::kable_styling(
    bootstrap_options = c("striped","hover","condensed","responsive"),
    full_width = FALSE
  )
Prestadores com outliers por ano (diagnóstico)
ano prestadores_com_outliers indicadores_afetados
2018 BRK Ambiental Araguaia IN074
2019 BRK Ambiental Araguaia IN074
2021 ÁGUAS DO RIO 4 SPE S.A.; BRK AMBIENTAL - REGIAO METROPOLITANA DE MACEIO S.A. IN071_tx10k, IN074
2022 BRK AMBIENTAL - REGIAO METROPOLITANA DE MACEIO S.A.; Concessionária de Saneamento do Amapá SPE S.A.; Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto; Sistema Integrado de Saneamento Rural da Bacia Hidrográfica do Salgado; Verde Ambiental Alagoas S.A IN071_tx10k, IN072, IN073_tx10k, IN083
# Quantidade de outliers por ano e indicador
ida_long <- ida |>
  dplyr::select(ano, dplyr::all_of(indicadores_bench)) |>
  tidyr::pivot_longer(
    cols = dplyr::all_of(indicadores_bench),
    names_to = "indicador",
    values_to = "valor"
  ) |>
  dplyr::left_join(limites_ida |> dplyr::select(indicador, p99), by = "indicador") |>
  dplyr::mutate(
    eh_outlier = dplyr::case_when(
      is.na(valor) ~ FALSE,
      is.na(p99)   ~ valor < 0,
      TRUE         ~ (valor < 0 | valor > p99)
    )
  ) |>
  dplyr::filter(eh_outlier) |>
  dplyr::count(ano, indicador, name = "qtd_outliers") |>
  dplyr::left_join(meta_bench, by = "indicador") |>
  dplyr::mutate(indicador_legenda = paste0(indicador, " — ", descricao))

ggplot(ida_long, aes(x = ano, y = qtd_outliers, fill = indicador_legenda)) +
  geom_col(position = position_dodge(width = 0.8), width = 0.7) +
  scale_x_continuous(breaks = sort(unique(ida$ano))) +
  scale_y_continuous(breaks = scales::pretty_breaks()) +
  labs(
    title = "Quantidade de outliers por ano e indicador (IDA)",
    x = "Ano",
    y = "Quantidade de outliers",
    fill = "Indicador"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold"),
    axis.text.x = element_text(angle = 45, hjust = 1),
    panel.grid.major.x = element_blank(),
    legend.position = "bottom",
    plot.caption = element_text(hjust = 0.5)
  ) +
  guides(fill = guide_legend(nrow = 2, byrow = TRUE))

# Estatísticas anuais após remoção de outliers — conjunto benchmarking
stats_pos_ida <- dados_validos_ida |>
  dplyr::group_by(ano) |>
  dplyr::summarise(
    dplyr::across(
      dplyr::all_of(indicadores_bench),
      list(
        media   = ~ mean(.x, na.rm = TRUE),
        mediana = ~ stats::median(.x, na.rm = TRUE),
        p25     = ~ as.numeric(stats::quantile(.x, 0.25, na.rm = TRUE)),
        p75     = ~ as.numeric(stats::quantile(.x, 0.75, na.rm = TRUE)),
        min     = ~ min(.x, na.rm = TRUE),
        max     = ~ max(.x, na.rm = TRUE)
      ),
      .names = "{.col}_{.fn}"
    ),
    .groups = "drop"
  ) |>
  dplyr::arrange(ano)

stats_pos_ida |>
  knitr::kable("html", digits = 2, caption = "Estatísticas anuais (após outliers) — indicadores do benchmarking") |>
  kableExtra::kable_styling(
    bootstrap_options = c("striped","hover","condensed","responsive"),
    full_width = FALSE
  )
Estatísticas anuais (após outliers) — indicadores do benchmarking
ano IN071_tx10k_media IN071_tx10k_mediana IN071_tx10k_p25 IN071_tx10k_p75 IN071_tx10k_min IN071_tx10k_max IN073_tx10k_media IN073_tx10k_mediana IN073_tx10k_p25 IN073_tx10k_p75 IN073_tx10k_min IN073_tx10k_max IN083_media IN083_mediana IN083_p25 IN083_p75 IN083_min IN083_max IN072_media IN072_mediana IN072_p25 IN072_p75 IN072_min IN072_max IN074_media IN074_mediana IN074_p25 IN074_p75 IN074_min IN074_max
1998 NaN NA NA NA Inf -Inf NaN NA NA NA Inf -Inf NaN NA NA NA Inf -Inf NaN NA NA NA Inf -Inf NaN NA NA NA Inf -Inf
1999 NaN NA NA NA Inf -Inf NaN NA NA NA Inf -Inf NaN NA NA NA Inf -Inf 3.00 3.00 3.00 3.00 3.00 3.00 NaN NA NA NA Inf -Inf
2000 19.73 2.56 0.00 22.29 0.00 73.78 70.21 70.21 60.16 80.26 50.11 90.31 NaN NA NA NA Inf -Inf 1.89 1.92 0.80 3.00 0.71 3.00 0.26 0.26 0.23 0.30 0.20 0.33
2001 395.04 371.60 298.29 512.57 154.96 656.93 206.36 154.96 10.74 207.73 1.44 656.93 NaN NA NA NA Inf -Inf 14.00 8.00 8.00 24.00 8.00 24.00 14.72 24.00 0.84 24.00 0.76 24.00
2002 236.45 232.84 115.71 330.35 0.24 529.98 NaN NA NA NA Inf -Inf 0.08 0.08 0.08 0.08 0.08 0.08 6.26 7.38 6.00 8.75 0.25 8.75 6.00 6.00 6.00 6.00 6.00 6.00
2003 477.22 499.08 413.81 668.14 5.55 749.76 5.55 5.55 5.55 5.55 5.55 5.55 1.50 1.50 1.25 1.75 1.00 2.00 5.94 8.75 1.73 8.75 0.83 8.75 1.27 0.93 0.91 1.47 0.89 2.00
2004 1488.02 2455.71 0.00 2468.22 0.00 2516.18 826.67 822.68 820.64 830.71 818.61 838.73 NaN NA NA NA Inf -Inf 7.26 10.36 3.45 10.36 0.96 10.36 9.57 14.00 4.00 14.00 3.00 14.00
2005 1246.28 1253.93 1046.38 1450.01 838.83 1646.09 NaN NA NA NA Inf -Inf 1.58 1.58 1.44 1.73 1.30 1.87 8.49 10.36 6.00 10.36 6.00 10.36 14.00 14.00 14.00 14.00 14.00 14.00
2006 1239.61 1239.61 1239.61 1239.61 1239.61 1239.61 NaN NA NA NA Inf -Inf 8.54 8.47 8.46 8.59 8.45 8.70 9.58 6.00 5.21 10.38 2.83 23.50 NaN NA NA NA Inf -Inf
2007 52.26 48.70 9.87 72.44 0.00 202.19 0.58 0.10 0.00 0.73 0.00 3.26 NaN NA NA NA Inf -Inf 37.18 0.00 0.00 99.07 0.00 100.00 0.43 0.19 0.14 0.47 0.03 1.99
2008 532.60 532.60 532.60 532.60 532.60 532.60 NaN NA NA NA Inf -Inf NaN NA NA NA Inf -Inf 3.18 2.52 2.44 3.58 2.37 4.64 27.00 27.00 27.00 27.00 27.00 27.00
2009 755.48 527.58 510.63 886.37 493.69 1245.16 NaN NA NA NA Inf -Inf 2.76 1.12 0.00 6.61 0.00 6.61 3.06 3.00 2.92 3.16 2.85 3.33 NaN NA NA NA Inf -Inf
2010 362.74 362.74 362.74 362.74 362.74 362.74 362.74 362.74 362.74 362.74 362.74 362.74 21.47 21.51 0.66 42.28 0.61 42.29 4.43 4.66 4.66 5.00 1.75 5.71 8.05 8.16 7.00 9.33 5.12 10.50
2011 851.03 764.84 538.00 1120.97 311.16 1477.10 880.40 880.40 634.90 1125.90 389.40 1371.40 46.32 76.74 0.68 76.75 0.67 76.75 5.31 5.71 4.67 6.37 1.75 7.25 9.54 9.33 7.00 10.50 6.37 18.00
2012 335.26 335.26 335.26 335.26 335.26 335.26 NaN NA NA NA Inf -Inf 45.82 45.86 45.79 45.86 45.72 45.87 8.43 7.00 6.00 12.00 5.43 12.00 10.05 8.50 8.50 12.66 6.50 13.00
2013 36.27 36.27 36.27 36.27 36.27 36.27 260.58 260.58 260.58 260.58 260.58 260.58 40.87 41.16 40.71 41.18 40.26 41.19 8.75 11.00 6.24 11.50 1.08 11.50 5.40 5.25 3.60 6.50 0.60 12.67
2014 14.59 5.89 5.61 19.23 5.33 32.56 38.56 11.78 8.55 55.18 5.33 98.58 0.22 0.35 0.01 0.35 0.01 0.36 4.50 4.63 3.83 5.62 1.22 6.25 4.86 4.38 2.38 5.75 0.92 12.67
2015 14.39 5.84 5.55 18.95 5.27 32.05 41.61 14.59 13.89 55.82 13.18 97.04 46.39 46.39 46.38 46.39 46.38 46.39 3.38 2.33 2.31 4.50 1.22 7.00 3.83 3.75 1.00 6.12 0.92 8.00
2016 379.78 126.25 82.32 550.48 38.40 974.71 103.38 103.38 103.38 103.38 103.38 103.38 75.71 75.71 75.71 75.72 75.70 75.73 6.80 5.22 4.86 6.00 1.55 24.00 3.37 2.00 2.00 3.50 0.92 8.00
2017 6.31 0.00 0.00 0.00 0.00 37.85 33.97 0.00 0.00 50.96 0.00 101.91 49.44 2.48 2.48 127.69 2.48 127.73 5.98 4.25 3.00 8.00 1.55 12.00 6.58 6.00 6.00 8.00 0.92 12.00
2018 387.34 237.11 201.72 363.58 163.97 970.32 370.05 123.64 113.63 380.06 93.88 1139.04 23.37 0.37 0.25 24.36 0.25 91.56 11.49 10.50 8.75 12.17 6.00 25.00 13.98 12.00 8.75 15.15 6.00 45.70
2019 466.31 430.14 268.31 644.10 114.82 863.54 591.55 383.89 376.81 581.32 222.81 1392.93 32.02 0.77 0.68 3.04 0.26 156.16 7.21 6.00 6.00 6.67 6.00 19.38 8.53 7.00 6.00 8.00 6.00 35.00
2020 476.74 436.01 250.33 714.43 178.71 814.03 884.30 328.92 223.74 1191.79 84.74 2999.65 38.32 38.81 0.45 64.88 0.31 97.61 7.87 6.64 6.00 8.00 6.00 24.99 14.22 7.50 6.00 16.00 6.00 73.67
2021 1169.86 1118.19 273.64 1723.38 46.75 2897.79 1041.70 1135.82 300.48 1400.02 67.73 2365.38 9.19 0.53 0.01 1.22 0.00 94.48 14.67 11.77 6.00 17.21 6.00 99.65 14.64 6.75 6.00 20.71 6.00 48.00
2022 765.27 379.24 32.22 1203.78 2.04 3685.54 517.02 129.68 37.29 611.61 5.90 6065.00 56.91 10.00 0.81 92.68 0.05 297.95 21.00 10.00 6.00 18.05 6.00 341.67 11.34 8.50 6.00 12.00 6.00 74.07
NA NaN NA NA NA Inf -Inf NaN NA NA NA Inf -Inf NaN NA NA NA Inf -Inf NaN NA NA NA Inf -Inf NaN NA NA NA Inf -Inf
# Médias globais antes e depois do filtro (para justificar no texto)
medias_antes <- ida |>
  dplyr::summarise(dplyr::across(dplyr::all_of(indicadores_bench), ~ mean(.x, na.rm = TRUE))) |>
  dplyr::mutate(tipo = "Antes (com outliers)")

medias_depois <- dados_validos_ida |>
  dplyr::summarise(dplyr::across(dplyr::all_of(indicadores_bench), ~ mean(.x, na.rm = TRUE))) |>
  dplyr::mutate(tipo = "Depois (sem outliers)")

tabela_medias <- dplyr::bind_rows(medias_antes, medias_depois) |>
  dplyr::relocate(tipo)

tabela_medias |>
  knitr::kable("html", digits = 2, caption = "Médias globais — antes e depois da remoção de outliers") |>
  kableExtra::kable_styling(
    bootstrap_options = c("striped","hover","condensed","responsive"),
    full_width = FALSE
  )
Médias globais — antes e depois da remoção de outliers
tipo IN071_tx10k IN073_tx10k IN083 IN072 IN074
Antes (com outliers) 712.35 544.53 43.42 44.79 11.80
Depois (sem outliers) 668.30 467.81 39.03 15.78 10.46
# Média ponderada segura (quando pop disponível)
wmean_safe <- function(x, w) {
  ok <- !is.na(x) & !is.na(w) & w > 0
  if (sum(ok) == 0) return(mean(x, na.rm = TRUE))
  sum(x[ok] * w[ok]) / sum(w[ok])
}

tem_pop <- "pop" %in% names(dados_validos_ida) && any(!is.na(dados_validos_ida$pop) & dados_validos_ida$pop > 0)

ida_prestadores <- dados_validos_ida |>
  dplyr::group_by(ano, prestador) |>
  dplyr::summarise(
    dplyr::across(
      dplyr::all_of(indicadores_bench),
      ~ if (tem_pop) wmean_safe(.x, pop) else mean(.x, na.rm = TRUE)
    ),
    pop_total = if (tem_pop) sum(pop, na.rm = TRUE) else as.numeric(NA),
    n_municipios = dplyr::n_distinct(code_mun),
    .groups = "drop"
  ) |>
  dplyr::arrange(ano, prestador)

ida_prestadores |>
  knitr::kable("html", digits = 2, caption = "Indicadores agregados por prestador e ano (pós-outliers)") |>
  kableExtra::kable_styling(
    bootstrap_options = c("striped","hover","condensed","responsive"),
    full_width = FALSE
  )
Indicadores agregados por prestador e ano (pós-outliers)
ano prestador IN071_tx10k IN073_tx10k IN083 IN072 IN074 pop_total n_municipios
1998 Concessionária Águas de Juturnaíba S/A NaN NaN NaN NaN NaN 70979 1
1998 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 222070 5
1998 Serviço Intermunicipal de Água e Esgoto NaN NaN NaN NaN NaN 22924 2
1999 Concessionária Águas de Juturnaíba S/A NaN NaN NaN NaN NaN 141395 3
1999 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 231052 5
1999 Serviço Autônomo de Água e Esgoto NaN NaN NaN 3.00 NaN 101421 4
1999 Serviço Intermunicipal de Água e Esgoto NaN NaN NaN NaN NaN 23313 2
2000 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 247225 5
2000 Serviço Autônomo de Água e Esgoto 5.27 NaN NaN 2.05 NaN 104339 4
2000 Serviço Intermunicipal de Água e Esgoto NaN 61.01 NaN NaN 0.24 27374 2
2001 Concessionária Águas de Juturnaíba S/A 438.83 438.83 NaN 24.00 24.00 161499 3
2001 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 387.24 NaN NaN 8.00 NaN 258262 5
2001 Serviço Autônomo de Água e Esgoto NaN 2.37 NaN NaN 0.83 106455 4
2002 Concessionária Águas de Juturnaíba S/A NaN NaN NaN 6.00 6.00 165255 3
2002 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 285.85 NaN NaN 8.75 NaN 266576 5
2002 Serviço Autônomo de Água e Esgoto 1.07 NaN 0.08 0.29 NaN 108661 4
2002 Serviço Intermunicipal de Água e Esgoto NaN NaN NaN NaN NaN 79366 5
2003 Concessionária Águas de Juturnaíba S/A 5.55 5.55 NaN 2.00 2.00 169305 3
2003 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 512.60 NaN NaN 8.75 NaN 275557 5
2003 Serviço Autônomo de Água e Esgoto NaN NaN 2.00 0.90 0.89 173538 7
2003 Serviço Intermunicipal de Água e Esgoto NaN NaN 1.00 NaN NaN 80386 5
2003 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 30227 2
2004 Concessionária Águas de Juturnaíba S/A 2467.70 822.57 NaN NaN 3.67 177809 3
2004 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 10.36 14.00 294411 5
2004 Serviço Autônomo de Água e Esgoto 0.00 NaN NaN 0.98 NaN 114875 4
2004 Serviço Intermunicipal de Água e Esgoto NaN NaN NaN NaN NaN 82525 5
2004 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 38740 3
2005 Concessionária Águas de Juturnaíba S/A 1253.93 NaN NaN 6.00 NaN 182514 3
2005 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 10.36 14.00 304846 5
2005 Serviço Autônomo de Água e Esgoto 917.99 NaN NaN 6.00 NaN 180166 7
2005 Serviço Intermunicipal de Água e Esgoto NaN NaN 1.45 NaN NaN 82346 5
2005 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 38940 3
2006 Concessionária Águas de Juturnaíba S/A 1239.61 NaN NaN 6.00 NaN 187184 3
2006 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 315201 5
2006 Serviço Autônomo de Água e Esgoto NaN NaN NaN 17.41 NaN 132234 5
2006 Serviço Intermunicipal de Água e Esgoto NaN NaN 8.49 NaN NaN 83481 5
2006 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 39139 3
2007 Concessionária Águas de Juturnaíba S/A 17.16 0.06 NaN 0.00 NaN 181804 3
2007 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 0.00 0.33 NaN 0.00 0.28 307622 5
2007 Serviço Autônomo de Água e Esgoto 50.67 0.08 NaN 89.43 0.09 131649 5
2007 Serviço Intermunicipal de Água e Esgoto 64.18 0.67 NaN 90.59 0.41 74328 5
2007 Serviço de Tratamento de Água e Esgoto 59.67 0.51 NaN 0.00 NaN 39216 3
2008 Concessionária Águas de Juturnaíba S/A 532.60 NaN NaN 2.37 NaN 197296 3
2008 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 340122 5
2008 Serviço Autônomo de Água e Esgoto NaN NaN NaN 4.26 27.00 129516 4
2008 Serviço Intermunicipal de Água e Esgoto NaN NaN NaN NaN NaN 76428 5
2008 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40452 3
2009 Concessionária Águas de Juturnaíba S/A 588.35 NaN 0.00 3.03 NaN 201309 3
2009 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 349366 5
2009 Serviço Autônomo de Água e Esgoto NaN NaN NaN NaN NaN 65263 2
2009 Serviço Intermunicipal de Água e Esgoto NaN NaN 4.76 NaN NaN 76400 5
2009 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40684 3
2010 Concessionária Águas de Juturnaíba S/A 362.74 362.74 0.67 5.12 5.12 207591 3
2010 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 4.51 8.69 352228 5
2010 Serviço Autônomo de Água e Esgoto NaN NaN NaN NaN NaN 65128 2
2010 Serviço Intermunicipal de Água e Esgoto NaN NaN 42.28 NaN NaN 82000 5
2010 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 39990 3
2011 Concessionária Águas de Juturnaíba S/A 311.16 NaN NaN 6.37 6.37 211512 3
2011 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 4.52 8.69 360290 5
2011 Serviço Autônomo de Água e Esgoto 1138.36 856.43 0.68 6.81 15.15 65621 2
2011 Serviço Intermunicipal de Água e Esgoto NaN NaN 76.75 NaN NaN 82460 5
2011 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40157 3
2012 Concessionária Águas de Juturnaíba S/A 335.26 NaN NaN 5.43 NaN 215302 3
2012 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 11.22 9.20 368086 5
2012 Serviço Autônomo de Água e Esgoto NaN NaN NaN 6.00 9.56 66096 2
2012 Serviço Intermunicipal de Água e Esgoto NaN NaN 45.85 NaN NaN 82904 5
2012 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40317 3
2013 Concessionária Águas de Juturnaíba S/A 36.27 260.58 NaN 1.08 0.60 219751 3
2013 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 11.34 5.39 377244 5
2013 Serviço Autônomo de Água e Esgoto NaN NaN NaN 6.22 9.74 70750 2
2013 Serviço Intermunicipal de Água e Esgoto NaN NaN 40.72 NaN NaN 85219 5
2013 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40581 3
2014 Concessionária Águas de Juturnaíba S/A 32.56 98.58 NaN 1.22 0.92 223199 3
2014 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 4.33 4.57 384463 5
2014 Serviço Autônomo de Água e Esgoto 5.60 8.39 0.01 6.22 9.74 71487 2
2014 Serviço Intermunicipal de Água e Esgoto NaN NaN 0.36 NaN NaN 85834 5
2014 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40709 3
2015 Concessionária Águas de Juturnaíba S/A 32.05 97.04 NaN 1.22 0.92 226531 3
2015 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 2.32 1.12 391436 5
2015 Serviço Autônomo de Água e Esgoto 5.54 13.85 NaN 2.53 6.00 72195 2
2015 Serviço Intermunicipal de Água e Esgoto NaN NaN 46.39 NaN 8.00 86441 5
2015 Serviço de Tratamento de Água e Esgoto NaN NaN NaN 6.57 6.38 40834 3
2016 Concessionária Águas de Juturnaíba S/A 38.40 103.38 NaN 1.55 0.92 229969 3
2016 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 4.76 2.00 397940 5
2016 Serviço Autônomo de Água e Esgoto NaN NaN NaN 6.00 8.00 72886 2
2016 Serviço Intermunicipal de Água e Esgoto 126.25 NaN 75.71 24.00 NaN 87045 5
2016 Serviço de Tratamento de Água e Esgoto 974.71 NaN NaN 6.00 NaN 25719 2
2017 Concessionária Águas de Juturnaíba S/A 37.85 101.91 NaN 1.55 0.92 233170 3
2017 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 0.00 0.00 2.48 4.74 6.00 404436 5
2017 Serviço Autônomo de Água e Esgoto NaN NaN NaN 9.89 9.89 73298 2
2017 Serviço Intermunicipal de Água e Esgoto NaN NaN 127.71 NaN NaN 87643 5
2017 Serviço de Tratamento de Água e Esgoto NaN NaN NaN 11.00 NaN 25705 2
2018 BRK Ambiental Araguaia 266.41 207.10 1.65 15.88 31.37 185965 4
2018 Concessionária Águas de Juturnaíba S/A 237.11 127.07 NaN 7.71 8.50 239916 3
2018 Hidro Forte Administração e Operação Ltda NaN NaN NaN 11.16 12.90 111840 13
2018 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN 0.25 NaN NaN 416472 5
2018 Serviço Autônomo de Água e Esgoto NaN NaN NaN 9.89 9.89 72140 2
2018 Serviço Intermunicipal de Água e Esgoto NaN NaN 91.54 NaN NaN 87983 5
2018 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 26430 2
2019 BRK Ambiental Araguaia 437.83 776.22 1.92 12.67 27.95 129351 4
2019 Concessionária Águas de Juturnaíba S/A 416.08 284.79 0.68 6.40 6.60 243344 3
2019 Hidro Forte Administração e Operação Ltda NaN NaN NaN 6.14 6.87 208376 34
2019 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN 0.49 NaN NaN 423530 5
2019 Serviço Autônomo de Água e Esgoto NaN NaN NaN 12.00 12.00 72847 2
2019 Serviço Intermunicipal de Água e Esgoto 607.80 NaN 155.57 7.00 NaN 88552 5
2019 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 26448 2
2020 BRK Ambiental Araguaia 331.40 284.53 42.86 18.14 44.00 216904 5
2020 Concessionária Águas de Juturnaíba S/A NaN 173.21 63.35 NaN 11.44 246650 3
2020 Hidro Forte Administração e Operação Ltda NaN NaN NaN 6.53 6.78 291036 36
2020 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN 0.36 6.46 NaN 430334 5
2020 Serviço Autônomo de Água e Esgoto NaN NaN NaN 12.00 12.00 73539 2
2020 Serviço Intermunicipal de Água e Esgoto 604.91 1845.18 68.25 6.00 19.43 89109 5
2020 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 25882 2
2021 BRK AMBIENTAL - REGIAO METROPOLITANA DE MACEIO S.A. 335.37 1146.40 0.02 79.83 43.03 1346539 12
2021 BRK Ambiental Araguaia 309.13 328.77 4.46 22.97 25.99 193680 4
2021 Concessionária Águas de Juturnaíba S/A 164.89 172.69 56.01 13.11 27.54 249822 3
2021 Hidro Forte Administração e Operação Ltda NaN NaN NaN 6.36 6.12 323151 38
2021 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN 0.39 NaN NaN 436864 5
2021 Serviço Autônomo de Água e Esgoto NaN NaN 2.58 12.00 12.00 74216 2
2021 Serviço Intermunicipal de Água e Esgoto NaN NaN 94.47 NaN NaN 89656 5
2021 Serviço de Tratamento de Água e Esgoto 1085.96 NaN NaN 7.00 NaN 26532 2
2021 ÁGUAS DO RIO 1 SPE S.A. 376.20 NaN 0.06 17.55 NaN 9010435 19
2021 ÁGUAS DO RIO 4 SPE S.A. 1634.94 1590.93 0.01 16.58 20.71 9139839 7
2022 BRK AMBIENTAL - REGIAO METROPOLITANA DE MACEIO S.A. 256.43 43.02 169.60 24.85 70.92 1183333 10
2022 BRK Ambiental Araguaia 453.41 444.86 251.07 16.77 17.74 149679 4
2022 Central - Sistemas de Saneamento de Jacobina 18.53 22.92 1.93 12.12 13.86 298950 9
2022 Central - Sistemas de Saneamento de Seabra NaN NaN NaN 8.00 NaN 193537 12
2022 Concessionária de Saneamento do Amapá SPE S.A. NaN NaN 140.45 NaN NaN 709245 14
2022 Concessionária Águas de Juturnaíba S/A 149.82 264.19 69.02 24.65 21.16 240582 3
2022 Hidro Forte Administração e Operação Ltda NaN NaN NaN 6.00 6.00 288742 39
2022 Iguá Rio de Janeiro S.A. 175.16 291.19 9.87 27.00 6.00 6267424 3
2022 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 16.84 4316.67 0.37 6.00 6.00 357176 3
2022 Rio+ Saneamento BL3 S.A 734.58 1282.24 8.35 22.04 8.78 6860850 18
2022 Serviço Autônomo de Água e Esgoto NaN NaN NaN 12.00 12.00 81761 2
2022 Serviço Intermunicipal de Água e Esgoto 322.37 NaN 93.42 11.72 NaN 88010 5
2022 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 31264 2
2022 Sistema Integrado de Saneamento Rural - BAJ 7.89 NaN 10.00 9.10 NaN 495874 19
2022 Sistema Integrado de Saneamento Rural - Sobral NaN NaN 0.13 10.00 10.00 946706 32
2022 Sistema Integrado de Saneamento Rural Bacia do Baixo e Médio Jaguaribe NaN NaN NaN 17.78 24.00 403950 17
2022 Sistema Integrado de Saneamento Rural da Bacia Hidrográfica do Parnaíba NaN NaN NaN 8.98 NaN 551469 17
2022 Sistema Integrado de Saneamento Rural da Bacia Hidrográfica do Salgado 28.86 NaN NaN 285.81 NaN 590840 16
2022 Sistema Integrado de Saneamento Rural da Bacia Metropolitana NaN NaN NaN 6.00 6.00 895741 17
2022 Sistema Integrado de Saneamento Rural da Bacia do Banabuiu NaN NaN NaN 13.14 8.73 670430 23
2022 Sistema Integrado de Saneamento Rural da Bacia do Curu e Litoral NaN NaN NaN 16.64 NaN 656186 20
2022 Verde Ambiental Alagoas S.A 564.92 108.99 NaN 6.00 6.97 379361 26
2022 ÁGUAS DO RIO 1 SPE S.A. 266.32 NaN 0.71 11.50 NaN 8217024 19
2022 ÁGUAS DO RIO 4 SPE S.A. 635.20 19.21 0.61 12.99 24.00 9280013 9
2022 Águas do Sertão S/A 2013.55 777.31 83.12 29.99 22.27 709234 34
NA NaN NaN NaN NaN NaN 0 1
# Referência global pós-outliers: média global (municípios) para cada indicador do benchmarking
ref_globais <- dados_validos_ida |>
  dplyr::summarise(dplyr::across(dplyr::all_of(indicadores_bench), ~ mean(.x, na.rm = TRUE)))

# Vetor nomeado de referências (mais fácil/seguro para indexar)
ref_vec <- ref_globais |>
  tidyr::pivot_longer(dplyr::everything(), names_to = "indicador", values_to = "ref") |>
  dplyr::mutate(indicador = as.character(indicador)) |>
  tibble::deframe()

# Regra de cobertura mínima por prestador-ano: pelo menos 80% dos indicadores disponíveis
min_cob <- ceiling(0.80 * length(indicadores_bench))

ranking_prestadores_ida <- ida_prestadores |>
  dplyr::rowwise() |>
  dplyr::mutate(
    n_ind_disp = sum(!is.na(dplyr::c_across(dplyr::all_of(indicadores_bench)))),

    # atende = (para todos os indicadores observados) valor <= média global do indicador
    atende_logico = {
      vals <- dplyr::c_across(dplyr::all_of(indicadores_bench))
      obs  <- !is.na(vals)
      if (!any(obs)) FALSE else all(vals[obs] <= ref_vec[names(vals)][obs])
    },

    atende_benchmark = dplyr::case_when(
      n_ind_disp < min_cob ~ "Sem cobertura suficiente",
      atende_logico       ~ "Atende",
      TRUE                ~ "Não atende"
    )
  ) |>
  dplyr::ungroup() |>
  dplyr::select(-atende_logico)

table(ranking_prestadores_ida$atende_benchmark, useNA = "ifany")
## 
##               Não atende Sem cobertura suficiente 
##                       35                      114
ranking_prestadores_ida |>
  knitr::kable(
    "html",
    digits = 2,
    caption = "Classificação dos prestadores em relação ao benchmark (média global pós-outliers)"
  ) |>
  kableExtra::kable_styling(
    bootstrap_options = c("striped","hover","condensed","responsive"),
    full_width = FALSE
  )
Classificação dos prestadores em relação ao benchmark (média global pós-outliers)
ano prestador IN071_tx10k IN073_tx10k IN083 IN072 IN074 pop_total n_municipios n_ind_disp atende_benchmark
1998 Concessionária Águas de Juturnaíba S/A NaN NaN NaN NaN NaN 70979 1 0 Sem cobertura suficiente
1998 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 222070 5 0 Sem cobertura suficiente
1998 Serviço Intermunicipal de Água e Esgoto NaN NaN NaN NaN NaN 22924 2 0 Sem cobertura suficiente
1999 Concessionária Águas de Juturnaíba S/A NaN NaN NaN NaN NaN 141395 3 0 Sem cobertura suficiente
1999 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 231052 5 0 Sem cobertura suficiente
1999 Serviço Autônomo de Água e Esgoto NaN NaN NaN 3.00 NaN 101421 4 1 Sem cobertura suficiente
1999 Serviço Intermunicipal de Água e Esgoto NaN NaN NaN NaN NaN 23313 2 0 Sem cobertura suficiente
2000 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 247225 5 0 Sem cobertura suficiente
2000 Serviço Autônomo de Água e Esgoto 5.27 NaN NaN 2.05 NaN 104339 4 2 Sem cobertura suficiente
2000 Serviço Intermunicipal de Água e Esgoto NaN 61.01 NaN NaN 0.24 27374 2 2 Sem cobertura suficiente
2001 Concessionária Águas de Juturnaíba S/A 438.83 438.83 NaN 24.00 24.00 161499 3 4 Não atende
2001 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 387.24 NaN NaN 8.00 NaN 258262 5 2 Sem cobertura suficiente
2001 Serviço Autônomo de Água e Esgoto NaN 2.37 NaN NaN 0.83 106455 4 2 Sem cobertura suficiente
2002 Concessionária Águas de Juturnaíba S/A NaN NaN NaN 6.00 6.00 165255 3 2 Sem cobertura suficiente
2002 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 285.85 NaN NaN 8.75 NaN 266576 5 2 Sem cobertura suficiente
2002 Serviço Autônomo de Água e Esgoto 1.07 NaN 0.08 0.29 NaN 108661 4 3 Sem cobertura suficiente
2002 Serviço Intermunicipal de Água e Esgoto NaN NaN NaN NaN NaN 79366 5 0 Sem cobertura suficiente
2003 Concessionária Águas de Juturnaíba S/A 5.55 5.55 NaN 2.00 2.00 169305 3 4 Não atende
2003 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 512.60 NaN NaN 8.75 NaN 275557 5 2 Sem cobertura suficiente
2003 Serviço Autônomo de Água e Esgoto NaN NaN 2.00 0.90 0.89 173538 7 3 Sem cobertura suficiente
2003 Serviço Intermunicipal de Água e Esgoto NaN NaN 1.00 NaN NaN 80386 5 1 Sem cobertura suficiente
2003 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 30227 2 0 Sem cobertura suficiente
2004 Concessionária Águas de Juturnaíba S/A 2467.70 822.57 NaN NaN 3.67 177809 3 3 Sem cobertura suficiente
2004 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 10.36 14.00 294411 5 2 Sem cobertura suficiente
2004 Serviço Autônomo de Água e Esgoto 0.00 NaN NaN 0.98 NaN 114875 4 2 Sem cobertura suficiente
2004 Serviço Intermunicipal de Água e Esgoto NaN NaN NaN NaN NaN 82525 5 0 Sem cobertura suficiente
2004 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 38740 3 0 Sem cobertura suficiente
2005 Concessionária Águas de Juturnaíba S/A 1253.93 NaN NaN 6.00 NaN 182514 3 2 Sem cobertura suficiente
2005 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 10.36 14.00 304846 5 2 Sem cobertura suficiente
2005 Serviço Autônomo de Água e Esgoto 917.99 NaN NaN 6.00 NaN 180166 7 2 Sem cobertura suficiente
2005 Serviço Intermunicipal de Água e Esgoto NaN NaN 1.45 NaN NaN 82346 5 1 Sem cobertura suficiente
2005 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 38940 3 0 Sem cobertura suficiente
2006 Concessionária Águas de Juturnaíba S/A 1239.61 NaN NaN 6.00 NaN 187184 3 2 Sem cobertura suficiente
2006 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 315201 5 0 Sem cobertura suficiente
2006 Serviço Autônomo de Água e Esgoto NaN NaN NaN 17.41 NaN 132234 5 1 Sem cobertura suficiente
2006 Serviço Intermunicipal de Água e Esgoto NaN NaN 8.49 NaN NaN 83481 5 1 Sem cobertura suficiente
2006 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 39139 3 0 Sem cobertura suficiente
2007 Concessionária Águas de Juturnaíba S/A 17.16 0.06 NaN 0.00 NaN 181804 3 3 Sem cobertura suficiente
2007 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 0.00 0.33 NaN 0.00 0.28 307622 5 4 Não atende
2007 Serviço Autônomo de Água e Esgoto 50.67 0.08 NaN 89.43 0.09 131649 5 4 Não atende
2007 Serviço Intermunicipal de Água e Esgoto 64.18 0.67 NaN 90.59 0.41 74328 5 4 Não atende
2007 Serviço de Tratamento de Água e Esgoto 59.67 0.51 NaN 0.00 NaN 39216 3 3 Sem cobertura suficiente
2008 Concessionária Águas de Juturnaíba S/A 532.60 NaN NaN 2.37 NaN 197296 3 2 Sem cobertura suficiente
2008 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 340122 5 0 Sem cobertura suficiente
2008 Serviço Autônomo de Água e Esgoto NaN NaN NaN 4.26 27.00 129516 4 2 Sem cobertura suficiente
2008 Serviço Intermunicipal de Água e Esgoto NaN NaN NaN NaN NaN 76428 5 0 Sem cobertura suficiente
2008 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40452 3 0 Sem cobertura suficiente
2009 Concessionária Águas de Juturnaíba S/A 588.35 NaN 0.00 3.03 NaN 201309 3 3 Sem cobertura suficiente
2009 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 349366 5 0 Sem cobertura suficiente
2009 Serviço Autônomo de Água e Esgoto NaN NaN NaN NaN NaN 65263 2 0 Sem cobertura suficiente
2009 Serviço Intermunicipal de Água e Esgoto NaN NaN 4.76 NaN NaN 76400 5 1 Sem cobertura suficiente
2009 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40684 3 0 Sem cobertura suficiente
2010 Concessionária Águas de Juturnaíba S/A 362.74 362.74 0.67 5.12 5.12 207591 3 5 Não atende
2010 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 4.51 8.69 352228 5 2 Sem cobertura suficiente
2010 Serviço Autônomo de Água e Esgoto NaN NaN NaN NaN NaN 65128 2 0 Sem cobertura suficiente
2010 Serviço Intermunicipal de Água e Esgoto NaN NaN 42.28 NaN NaN 82000 5 1 Sem cobertura suficiente
2010 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 39990 3 0 Sem cobertura suficiente
2011 Concessionária Águas de Juturnaíba S/A 311.16 NaN NaN 6.37 6.37 211512 3 3 Sem cobertura suficiente
2011 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 4.52 8.69 360290 5 2 Sem cobertura suficiente
2011 Serviço Autônomo de Água e Esgoto 1138.36 856.43 0.68 6.81 15.15 65621 2 5 Não atende
2011 Serviço Intermunicipal de Água e Esgoto NaN NaN 76.75 NaN NaN 82460 5 1 Sem cobertura suficiente
2011 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40157 3 0 Sem cobertura suficiente
2012 Concessionária Águas de Juturnaíba S/A 335.26 NaN NaN 5.43 NaN 215302 3 2 Sem cobertura suficiente
2012 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 11.22 9.20 368086 5 2 Sem cobertura suficiente
2012 Serviço Autônomo de Água e Esgoto NaN NaN NaN 6.00 9.56 66096 2 2 Sem cobertura suficiente
2012 Serviço Intermunicipal de Água e Esgoto NaN NaN 45.85 NaN NaN 82904 5 1 Sem cobertura suficiente
2012 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40317 3 0 Sem cobertura suficiente
2013 Concessionária Águas de Juturnaíba S/A 36.27 260.58 NaN 1.08 0.60 219751 3 4 Não atende
2013 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 11.34 5.39 377244 5 2 Sem cobertura suficiente
2013 Serviço Autônomo de Água e Esgoto NaN NaN NaN 6.22 9.74 70750 2 2 Sem cobertura suficiente
2013 Serviço Intermunicipal de Água e Esgoto NaN NaN 40.72 NaN NaN 85219 5 1 Sem cobertura suficiente
2013 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40581 3 0 Sem cobertura suficiente
2014 Concessionária Águas de Juturnaíba S/A 32.56 98.58 NaN 1.22 0.92 223199 3 4 Não atende
2014 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 4.33 4.57 384463 5 2 Sem cobertura suficiente
2014 Serviço Autônomo de Água e Esgoto 5.60 8.39 0.01 6.22 9.74 71487 2 5 Não atende
2014 Serviço Intermunicipal de Água e Esgoto NaN NaN 0.36 NaN NaN 85834 5 1 Sem cobertura suficiente
2014 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40709 3 0 Sem cobertura suficiente
2015 Concessionária Águas de Juturnaíba S/A 32.05 97.04 NaN 1.22 0.92 226531 3 4 Não atende
2015 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 2.32 1.12 391436 5 2 Sem cobertura suficiente
2015 Serviço Autônomo de Água e Esgoto 5.54 13.85 NaN 2.53 6.00 72195 2 4 Não atende
2015 Serviço Intermunicipal de Água e Esgoto NaN NaN 46.39 NaN 8.00 86441 5 2 Sem cobertura suficiente
2015 Serviço de Tratamento de Água e Esgoto NaN NaN NaN 6.57 6.38 40834 3 2 Sem cobertura suficiente
2016 Concessionária Águas de Juturnaíba S/A 38.40 103.38 NaN 1.55 0.92 229969 3 4 Não atende
2016 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 4.76 2.00 397940 5 2 Sem cobertura suficiente
2016 Serviço Autônomo de Água e Esgoto NaN NaN NaN 6.00 8.00 72886 2 2 Sem cobertura suficiente
2016 Serviço Intermunicipal de Água e Esgoto 126.25 NaN 75.71 24.00 NaN 87045 5 3 Sem cobertura suficiente
2016 Serviço de Tratamento de Água e Esgoto 974.71 NaN NaN 6.00 NaN 25719 2 2 Sem cobertura suficiente
2017 Concessionária Águas de Juturnaíba S/A 37.85 101.91 NaN 1.55 0.92 233170 3 4 Não atende
2017 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 0.00 0.00 2.48 4.74 6.00 404436 5 5 Não atende
2017 Serviço Autônomo de Água e Esgoto NaN NaN NaN 9.89 9.89 73298 2 2 Sem cobertura suficiente
2017 Serviço Intermunicipal de Água e Esgoto NaN NaN 127.71 NaN NaN 87643 5 1 Sem cobertura suficiente
2017 Serviço de Tratamento de Água e Esgoto NaN NaN NaN 11.00 NaN 25705 2 1 Sem cobertura suficiente
2018 BRK Ambiental Araguaia 266.41 207.10 1.65 15.88 31.37 185965 4 5 Não atende
2018 Concessionária Águas de Juturnaíba S/A 237.11 127.07 NaN 7.71 8.50 239916 3 4 Não atende
2018 Hidro Forte Administração e Operação Ltda NaN NaN NaN 11.16 12.90 111840 13 2 Sem cobertura suficiente
2018 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN 0.25 NaN NaN 416472 5 1 Sem cobertura suficiente
2018 Serviço Autônomo de Água e Esgoto NaN NaN NaN 9.89 9.89 72140 2 2 Sem cobertura suficiente
2018 Serviço Intermunicipal de Água e Esgoto NaN NaN 91.54 NaN NaN 87983 5 1 Sem cobertura suficiente
2018 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 26430 2 0 Sem cobertura suficiente
2019 BRK Ambiental Araguaia 437.83 776.22 1.92 12.67 27.95 129351 4 5 Não atende
2019 Concessionária Águas de Juturnaíba S/A 416.08 284.79 0.68 6.40 6.60 243344 3 5 Não atende
2019 Hidro Forte Administração e Operação Ltda NaN NaN NaN 6.14 6.87 208376 34 2 Sem cobertura suficiente
2019 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN 0.49 NaN NaN 423530 5 1 Sem cobertura suficiente
2019 Serviço Autônomo de Água e Esgoto NaN NaN NaN 12.00 12.00 72847 2 2 Sem cobertura suficiente
2019 Serviço Intermunicipal de Água e Esgoto 607.80 NaN 155.57 7.00 NaN 88552 5 3 Sem cobertura suficiente
2019 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 26448 2 0 Sem cobertura suficiente
2020 BRK Ambiental Araguaia 331.40 284.53 42.86 18.14 44.00 216904 5 5 Não atende
2020 Concessionária Águas de Juturnaíba S/A NaN 173.21 63.35 NaN 11.44 246650 3 3 Sem cobertura suficiente
2020 Hidro Forte Administração e Operação Ltda NaN NaN NaN 6.53 6.78 291036 36 2 Sem cobertura suficiente
2020 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN 0.36 6.46 NaN 430334 5 2 Sem cobertura suficiente
2020 Serviço Autônomo de Água e Esgoto NaN NaN NaN 12.00 12.00 73539 2 2 Sem cobertura suficiente
2020 Serviço Intermunicipal de Água e Esgoto 604.91 1845.18 68.25 6.00 19.43 89109 5 5 Não atende
2020 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 25882 2 0 Sem cobertura suficiente
2021 BRK AMBIENTAL - REGIAO METROPOLITANA DE MACEIO S.A. 335.37 1146.40 0.02 79.83 43.03 1346539 12 5 Não atende
2021 BRK Ambiental Araguaia 309.13 328.77 4.46 22.97 25.99 193680 4 5 Não atende
2021 Concessionária Águas de Juturnaíba S/A 164.89 172.69 56.01 13.11 27.54 249822 3 5 Não atende
2021 Hidro Forte Administração e Operação Ltda NaN NaN NaN 6.36 6.12 323151 38 2 Sem cobertura suficiente
2021 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN 0.39 NaN NaN 436864 5 1 Sem cobertura suficiente
2021 Serviço Autônomo de Água e Esgoto NaN NaN 2.58 12.00 12.00 74216 2 3 Sem cobertura suficiente
2021 Serviço Intermunicipal de Água e Esgoto NaN NaN 94.47 NaN NaN 89656 5 1 Sem cobertura suficiente
2021 Serviço de Tratamento de Água e Esgoto 1085.96 NaN NaN 7.00 NaN 26532 2 2 Sem cobertura suficiente
2021 ÁGUAS DO RIO 1 SPE S.A. 376.20 NaN 0.06 17.55 NaN 9010435 19 3 Sem cobertura suficiente
2021 ÁGUAS DO RIO 4 SPE S.A. 1634.94 1590.93 0.01 16.58 20.71 9139839 7 5 Não atende
2022 BRK AMBIENTAL - REGIAO METROPOLITANA DE MACEIO S.A. 256.43 43.02 169.60 24.85 70.92 1183333 10 5 Não atende
2022 BRK Ambiental Araguaia 453.41 444.86 251.07 16.77 17.74 149679 4 5 Não atende
2022 Central - Sistemas de Saneamento de Jacobina 18.53 22.92 1.93 12.12 13.86 298950 9 5 Não atende
2022 Central - Sistemas de Saneamento de Seabra NaN NaN NaN 8.00 NaN 193537 12 1 Sem cobertura suficiente
2022 Concessionária de Saneamento do Amapá SPE S.A. NaN NaN 140.45 NaN NaN 709245 14 1 Sem cobertura suficiente
2022 Concessionária Águas de Juturnaíba S/A 149.82 264.19 69.02 24.65 21.16 240582 3 5 Não atende
2022 Hidro Forte Administração e Operação Ltda NaN NaN NaN 6.00 6.00 288742 39 2 Sem cobertura suficiente
2022 Iguá Rio de Janeiro S.A. 175.16 291.19 9.87 27.00 6.00 6267424 3 5 Não atende
2022 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 16.84 4316.67 0.37 6.00 6.00 357176 3 5 Não atende
2022 Rio+ Saneamento BL3 S.A 734.58 1282.24 8.35 22.04 8.78 6860850 18 5 Não atende
2022 Serviço Autônomo de Água e Esgoto NaN NaN NaN 12.00 12.00 81761 2 2 Sem cobertura suficiente
2022 Serviço Intermunicipal de Água e Esgoto 322.37 NaN 93.42 11.72 NaN 88010 5 3 Sem cobertura suficiente
2022 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 31264 2 0 Sem cobertura suficiente
2022 Sistema Integrado de Saneamento Rural - BAJ 7.89 NaN 10.00 9.10 NaN 495874 19 3 Sem cobertura suficiente
2022 Sistema Integrado de Saneamento Rural - Sobral NaN NaN 0.13 10.00 10.00 946706 32 3 Sem cobertura suficiente
2022 Sistema Integrado de Saneamento Rural Bacia do Baixo e Médio Jaguaribe NaN NaN NaN 17.78 24.00 403950 17 2 Sem cobertura suficiente
2022 Sistema Integrado de Saneamento Rural da Bacia Hidrográfica do Parnaíba NaN NaN NaN 8.98 NaN 551469 17 1 Sem cobertura suficiente
2022 Sistema Integrado de Saneamento Rural da Bacia Hidrográfica do Salgado 28.86 NaN NaN 285.81 NaN 590840 16 2 Sem cobertura suficiente
2022 Sistema Integrado de Saneamento Rural da Bacia Metropolitana NaN NaN NaN 6.00 6.00 895741 17 2 Sem cobertura suficiente
2022 Sistema Integrado de Saneamento Rural da Bacia do Banabuiu NaN NaN NaN 13.14 8.73 670430 23 2 Sem cobertura suficiente
2022 Sistema Integrado de Saneamento Rural da Bacia do Curu e Litoral NaN NaN NaN 16.64 NaN 656186 20 1 Sem cobertura suficiente
2022 Verde Ambiental Alagoas S.A 564.92 108.99 NaN 6.00 6.97 379361 26 4 Não atende
2022 ÁGUAS DO RIO 1 SPE S.A. 266.32 NaN 0.71 11.50 NaN 8217024 19 3 Sem cobertura suficiente
2022 ÁGUAS DO RIO 4 SPE S.A. 635.20 19.21 0.61 12.99 24.00 9280013 9 5 Não atende
2022 Águas do Sertão S/A 2013.55 777.31 83.12 29.99 22.27 709234 34 5 Não atende
NA NaN NaN NaN NaN NaN 0 1 0 Sem cobertura suficiente
# Garantir referência global (média) disponível para este chunk
ref_vec <- dados_validos_ida |>
  dplyr::summarise(dplyr::across(dplyr::all_of(indicadores_bench), ~ mean(.x, na.rm = TRUE))) |>
  tidyr::pivot_longer(dplyr::everything(), names_to = "indicador", values_to = "ref") |>
  tibble::deframe()

# Quais indicadores mais "derrubam" os prestadores (onde ficam > referência global)
gargalos <- ranking_prestadores_ida |>
  dplyr::filter(atende_benchmark == "Não atende") |>
  dplyr::mutate(
    dplyr::across(
      dplyr::all_of(indicadores_bench),
      ~ !is.na(.x) & (.x > as.numeric(ref_vec[dplyr::cur_column()])),
      .names = "falha_{.col}"
    )
  ) |>
  tidyr::pivot_longer(
    cols = dplyr::starts_with("falha_"),
    names_to = "indicador",
    values_to = "falhou"
  ) |>
  dplyr::filter(falhou) |>
  dplyr::mutate(indicador = stringr::str_remove(indicador, "^falha_")) |>
  dplyr::count(ano, indicador, name = "n_falhas") |>
  dplyr::left_join(meta_bench, by = "indicador") |>
  dplyr::arrange(ano, desc(n_falhas))

gargalos |>
  knitr::kable("html", caption = "Gargalos do benchmark: indicadores com mais falhas entre prestadores 'Não atende'") |>
  kableExtra::kable_styling(
    bootstrap_options = c("striped","hover","condensed","responsive"),
    full_width = FALSE
  )
Gargalos do benchmark: indicadores com mais falhas entre prestadores ‘Não atende’
ano indicador n_falhas descricao direcao
2001 IN072 1 Duração média das paralisações menor_melhor
2001 IN074 1 Duração média das intermitências menor_melhor
2007 IN072 2 Duração média das paralisações menor_melhor
2011 IN071_tx10k 1 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2011 IN073_tx10k 1 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2011 IN074 1 Duração média das intermitências menor_melhor
2018 IN072 1 Duração média das paralisações menor_melhor
2018 IN074 1 Duração média das intermitências menor_melhor
2019 IN073_tx10k 1 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2019 IN074 1 Duração média das intermitências menor_melhor
2020 IN074 2 Duração média das intermitências menor_melhor
2020 IN083 2 Tempo médio de reparo de vazamento de água menor_melhor
2020 IN072 1 Duração média das paralisações menor_melhor
2020 IN073_tx10k 1 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2021 IN074 4 Duração média das intermitências menor_melhor
2021 IN072 3 Duração média das paralisações menor_melhor
2021 IN073_tx10k 2 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2021 IN071_tx10k 1 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2021 IN083 1 Tempo médio de reparo de vazamento de água menor_melhor
2022 IN072 6 Duração média das paralisações menor_melhor
2022 IN074 6 Duração média das intermitências menor_melhor
2022 IN083 4 Tempo médio de reparo de vazamento de água menor_melhor
2022 IN073_tx10k 3 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2022 IN071_tx10k 2 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
tabela_atende_por_ano <- ranking_prestadores_ida |>
  dplyr::group_by(ano, atende_benchmark) |>
  dplyr::summarise(n_prestadores = dplyr::n_distinct(prestador), .groups = "drop") |>
  dplyr::arrange(ano, atende_benchmark)

tabela_atende_por_ano |>
  knitr::kable("html", caption = "Quantidade de prestadores por status do benchmark (por ano)") |>
  kableExtra::kable_styling(
    bootstrap_options = c("striped","hover","condensed","responsive"),
    full_width = FALSE
  )
Quantidade de prestadores por status do benchmark (por ano)
ano atende_benchmark n_prestadores
1998 Sem cobertura suficiente 3
1999 Sem cobertura suficiente 4
2000 Sem cobertura suficiente 3
2001 Não atende 1
2001 Sem cobertura suficiente 2
2002 Sem cobertura suficiente 4
2003 Não atende 1
2003 Sem cobertura suficiente 4
2004 Sem cobertura suficiente 5
2005 Sem cobertura suficiente 5
2006 Sem cobertura suficiente 5
2007 Não atende 3
2007 Sem cobertura suficiente 2
2008 Sem cobertura suficiente 5
2009 Sem cobertura suficiente 5
2010 Não atende 1
2010 Sem cobertura suficiente 4
2011 Não atende 1
2011 Sem cobertura suficiente 4
2012 Sem cobertura suficiente 5
2013 Não atende 1
2013 Sem cobertura suficiente 4
2014 Não atende 2
2014 Sem cobertura suficiente 3
2015 Não atende 2
2015 Sem cobertura suficiente 3
2016 Não atende 1
2016 Sem cobertura suficiente 4
2017 Não atende 2
2017 Sem cobertura suficiente 3
2018 Não atende 2
2018 Sem cobertura suficiente 5
2019 Não atende 2
2019 Sem cobertura suficiente 5
2020 Não atende 2
2020 Sem cobertura suficiente 5
2021 Não atende 4
2021 Sem cobertura suficiente 6
2022 Não atende 10
2022 Sem cobertura suficiente 15
NA Sem cobertura suficiente 1
ggplot(
  tabela_atende_por_ano |> dplyr::filter(atende_benchmark %in% c("Atende","Não atende")),
  aes(x = ano, y = n_prestadores, fill = atende_benchmark)
) +
  geom_col(position = "dodge") +
  scale_x_continuous(breaks = sort(unique(dados_validos_ida$ano))) +
  scale_y_continuous(breaks = scales::pretty_breaks()) +
  labs(
    title = "Prestadores que atendem / não atendem ao benchmark (por ano)",
    x = "Ano",
    y = "Número de prestadores",
    fill = "Status",
    caption = "Elaboração: Fipe com base nos dados SNIS"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold"),
    axis.text.x = element_text(angle = 45, hjust = 1),
    plot.caption = element_text(hjust = 0.5)
  )

# Excelência relativa: p25 global (pós-outliers), com menor = melhor
p25_ref <- dados_validos_ida |>
  dplyr::summarise(
    dplyr::across(
      dplyr::all_of(indicadores_bench),
      ~ as.numeric(stats::quantile(.x, 0.25, na.rm = TRUE))
    )
  )

# vetor nomeado de p25 (referência)
p25_vec <- p25_ref |>
  tidyr::pivot_longer(dplyr::everything(), names_to = "indicador", values_to = "p25") |>
  dplyr::mutate(indicador = as.character(indicador)) |>
  tibble::deframe()

# se min_cob não estiver definido antes, defina aqui
if (!exists("min_cob", inherits = TRUE)) {
  min_cob <- ceiling(0.80 * length(indicadores_bench))
}

ranking_excelencia_ida <- ida_prestadores |>
  dplyr::rowwise() |>
  dplyr::mutate(
    vals = list(dplyr::c_across(dplyr::all_of(indicadores_bench))),
    obs  = list(!is.na(unlist(vals))),
    n_ind_disp = sum(unlist(obs)),

    # TRUE se todos os indicadores observados estiverem <= p25; NA se não cumpre cobertura mínima
    excelencia_total = dplyr::case_when(
      n_ind_disp < min_cob ~ NA,
      TRUE ~ {
        v <- unlist(vals)
        o <- !is.na(v)
        if (!any(o)) NA else all(v[o] <= p25_vec[names(v)][o])
      }
    ),

    # TRUE se >=80% dos indicadores observados estiverem <= p25; NA se não há indicador observado
    excelencia_80 = dplyr::case_when(
      n_ind_disp < 1 ~ NA,
      TRUE ~ {
        v <- unlist(vals)
        o <- !is.na(v)
        mean(v[o] <= p25_vec[names(v)][o]) >= 0.80
      }
    )
  ) |>
  dplyr::ungroup() |>
  dplyr::select(-vals, -obs)

ranking_excelencia_ida |>
  dplyr::group_by(ano) |>
  dplyr::summarise(
    n_excelencia_total = sum(excelencia_total == TRUE, na.rm = TRUE),
    n_excelencia_80    = sum(excelencia_80 == TRUE, na.rm = TRUE),
    .groups = "drop"
  ) |>
  knitr::kable("html", caption = "Prestadores em excelência (p25) — critério estrito e flexível (>=80%)") |>
  kableExtra::kable_styling(
    bootstrap_options = c("striped","hover","condensed","responsive"),
    full_width = FALSE
  )
Prestadores em excelência (p25) — critério estrito e flexível (>=80%)
ano n_excelencia_total n_excelencia_80
1998 0 0
1999 0 0
2000 0 0
2001 0 0
2002 0 0
2003 0 0
2004 0 0
2005 0 0
2006 0 0
2007 0 0
2008 0 0
2009 0 0
2010 0 0
2011 0 0
2012 0 0
2013 0 0
2014 0 0
2015 0 0
2016 0 0
2017 0 0
2018 0 0
2019 0 0
2020 0 0
2021 0 0
2022 0 0
NA 0 0
# IDA-score (0–100): rank-percentil por ano, com menor = melhor
ida_score <- ida_prestadores |>
  dplyr::group_by(ano) |>
  dplyr::mutate(
    dplyr::across(
      dplyr::all_of(indicadores_bench),
      ~ 1 - dplyr::percent_rank(.x),
      .names = "s_{.col}"
    )
  ) |>
  dplyr::rowwise() |>
  dplyr::mutate(
    ida_score = round(mean(c_across(dplyr::starts_with("s_")), na.rm = TRUE) * 100, 2)
  ) |>
  dplyr::ungroup()

top20 <- ida_score |>
  dplyr::arrange(ano, desc(ida_score)) |>
  dplyr::group_by(ano) |>
  dplyr::slice_head(n = 20) |>
  dplyr::ungroup()

bottom20 <- ida_score |>
  dplyr::arrange(ano, ida_score) |>
  dplyr::group_by(ano) |>
  dplyr::slice_head(n = 20) |>
  dplyr::ungroup()

top20 |>
  knitr::kable("html", digits = 2, caption = "Top 20 prestadores por IDA-score (por ano)") |>
  kableExtra::kable_styling(bootstrap_options = c("striped","hover","condensed","responsive"), full_width = FALSE)
Top 20 prestadores por IDA-score (por ano)
ano prestador IN071_tx10k IN073_tx10k IN083 IN072 IN074 pop_total n_municipios s_IN071_tx10k s_IN073_tx10k s_IN083 s_IN072 s_IN074 ida_score
1998 Concessionária Águas de Juturnaíba S/A NaN NaN NaN NaN NaN 70979 1 NA NA NA NA NA NaN
1998 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 222070 5 NA NA NA NA NA NaN
1998 Serviço Intermunicipal de Água e Esgoto NaN NaN NaN NaN NaN 22924 2 NA NA NA NA NA NaN
1999 Concessionária Águas de Juturnaíba S/A NaN NaN NaN NaN NaN 141395 3 NA NA NA NA NA NaN
1999 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 231052 5 NA NA NA NA NA NaN
1999 Serviço Autônomo de Água e Esgoto NaN NaN NaN 3.00 NaN 101421 4 NA NA NA NaN NA NaN
1999 Serviço Intermunicipal de Água e Esgoto NaN NaN NaN NaN NaN 23313 2 NA NA NA NA NA NaN
2000 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 247225 5 NA NA NA NA NA NaN
2000 Serviço Autônomo de Água e Esgoto 5.27 NaN NaN 2.05 NaN 104339 4 NaN NA NA NaN NA NaN
2000 Serviço Intermunicipal de Água e Esgoto NaN 61.01 NaN NaN 0.24 27374 2 NA NaN NA NA NaN NaN
2001 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 387.24 NaN NaN 8.00 NaN 258262 5 1.00 NA NA 1.00 NA 100.00
2001 Serviço Autônomo de Água e Esgoto NaN 2.37 NaN NaN 0.83 106455 4 NA 1.00 NA NA 1.00 100.00
2001 Concessionária Águas de Juturnaíba S/A 438.83 438.83 NaN 24.00 24.00 161499 3 0.00 0.00 NA 0.00 0.00 0.00
2002 Serviço Autônomo de Água e Esgoto 1.07 NaN 0.08 0.29 NaN 108661 4 1.00 NA NaN 1.00 NA 100.00
2002 Concessionária Águas de Juturnaíba S/A NaN NaN NaN 6.00 6.00 165255 3 NA NA NA 0.50 NaN 50.00
2002 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 285.85 NaN NaN 8.75 NaN 266576 5 0.00 NA NA 0.00 NA 0.00
2002 Serviço Intermunicipal de Água e Esgoto NaN NaN NaN NaN NaN 79366 5 NA NA NA NA NA NaN
2003 Serviço Intermunicipal de Água e Esgoto NaN NaN 1.00 NaN NaN 80386 5 NA NA 1.00 NA NA 100.00
2003 Serviço Autônomo de Água e Esgoto NaN NaN 2.00 0.90 0.89 173538 7 NA NA 0.00 1.00 1.00 66.67
2003 Concessionária Águas de Juturnaíba S/A 5.55 5.55 NaN 2.00 2.00 169305 3 1.00 NaN NA 0.50 0.00 50.00
2003 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 512.60 NaN NaN 8.75 NaN 275557 5 0.00 NA NA 0.00 NA 0.00
2003 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 30227 2 NA NA NA NA NA NaN
2004 Serviço Autônomo de Água e Esgoto 0.00 NaN NaN 0.98 NaN 114875 4 1.00 NA NA 1.00 NA 100.00
2004 Concessionária Águas de Juturnaíba S/A 2467.70 822.57 NaN NaN 3.67 177809 3 0.00 NaN NA NA 1.00 50.00
2004 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 10.36 14.00 294411 5 NA NA NA 0.00 0.00 0.00
2004 Serviço Intermunicipal de Água e Esgoto NaN NaN NaN NaN NaN 82525 5 NA NA NA NA NA NaN
2004 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 38740 3 NA NA NA NA NA NaN
2005 Serviço Autônomo de Água e Esgoto 917.99 NaN NaN 6.00 NaN 180166 7 1.00 NA NA 1.00 NA 100.00
2005 Concessionária Águas de Juturnaíba S/A 1253.93 NaN NaN 6.00 NaN 182514 3 0.00 NA NA 1.00 NA 50.00
2005 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 10.36 14.00 304846 5 NA NA NA 0.00 NaN 0.00
2005 Serviço Intermunicipal de Água e Esgoto NaN NaN 1.45 NaN NaN 82346 5 NA NA NaN NA NA NaN
2005 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 38940 3 NA NA NA NA NA NaN
2006 Concessionária Águas de Juturnaíba S/A 1239.61 NaN NaN 6.00 NaN 187184 3 NaN NA NA 1.00 NA 100.00
2006 Serviço Autônomo de Água e Esgoto NaN NaN NaN 17.41 NaN 132234 5 NA NA NA 0.00 NA 0.00
2006 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 315201 5 NA NA NA NA NA NaN
2006 Serviço Intermunicipal de Água e Esgoto NaN NaN 8.49 NaN NaN 83481 5 NA NA NaN NA NA NaN
2006 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 39139 3 NA NA NA NA NA NaN
2007 Concessionária Águas de Juturnaíba S/A 17.16 0.06 NaN 0.00 NaN 181804 3 0.75 1.00 NA 1.00 NA 91.67
2007 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 0.00 0.33 NaN 0.00 0.28 307622 5 1.00 0.50 NA 1.00 0.50 75.00
2007 Serviço Autônomo de Água e Esgoto 50.67 0.08 NaN 89.43 0.09 131649 5 0.50 0.75 NA 0.25 1.00 62.50
2007 Serviço de Tratamento de Água e Esgoto 59.67 0.51 NaN 0.00 NaN 39216 3 0.25 0.25 NA 1.00 NA 50.00
2007 Serviço Intermunicipal de Água e Esgoto 64.18 0.67 NaN 90.59 0.41 74328 5 0.00 0.00 NA 0.00 0.00 0.00
2008 Concessionária Águas de Juturnaíba S/A 532.60 NaN NaN 2.37 NaN 197296 3 NaN NA NA 1.00 NA 100.00
2008 Serviço Autônomo de Água e Esgoto NaN NaN NaN 4.26 27.00 129516 4 NA NA NA 0.00 NaN 0.00
2008 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 340122 5 NA NA NA NA NA NaN
2008 Serviço Intermunicipal de Água e Esgoto NaN NaN NaN NaN NaN 76428 5 NA NA NA NA NA NaN
2008 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40452 3 NA NA NA NA NA NaN
2009 Concessionária Águas de Juturnaíba S/A 588.35 NaN 0.00 3.03 NaN 201309 3 NaN NA 1.00 NaN NA 100.00
2009 Serviço Intermunicipal de Água e Esgoto NaN NaN 4.76 NaN NaN 76400 5 NA NA 0.00 NA NA 0.00
2009 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 349366 5 NA NA NA NA NA NaN
2009 Serviço Autônomo de Água e Esgoto NaN NaN NaN NaN NaN 65263 2 NA NA NA NA NA NaN
2009 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40684 3 NA NA NA NA NA NaN
2010 Concessionária Águas de Juturnaíba S/A 362.74 362.74 0.67 5.12 5.12 207591 3 NaN NaN 1.00 0.00 1.00 66.67
2010 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 4.51 8.69 352228 5 NA NA NA 1.00 0.00 50.00
2010 Serviço Intermunicipal de Água e Esgoto NaN NaN 42.28 NaN NaN 82000 5 NA NA 0.00 NA NA 0.00
2010 Serviço Autônomo de Água e Esgoto NaN NaN NaN NaN NaN 65128 2 NA NA NA NA NA NaN
2010 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 39990 3 NA NA NA NA NA NaN
2011 Concessionária Águas de Juturnaíba S/A 311.16 NaN NaN 6.37 6.37 211512 3 1.00 NA NA 0.50 1.00 83.33
2011 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 4.52 8.69 360290 5 NA NA NA 1.00 0.50 75.00
2011 Serviço Autônomo de Água e Esgoto 1138.36 856.43 0.68 6.81 15.15 65621 2 0.00 NaN 1.00 0.00 0.00 25.00
2011 Serviço Intermunicipal de Água e Esgoto NaN NaN 76.75 NaN NaN 82460 5 NA NA 0.00 NA NA 0.00
2011 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40157 3 NA NA NA NA NA NaN
2012 Concessionária Águas de Juturnaíba S/A 335.26 NaN NaN 5.43 NaN 215302 3 NaN NA NA 1.00 NA 100.00
2012 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 11.22 9.20 368086 5 NA NA NA 0.00 1.00 50.00
2012 Serviço Autônomo de Água e Esgoto NaN NaN NaN 6.00 9.56 66096 2 NA NA NA 0.50 0.00 25.00
2012 Serviço Intermunicipal de Água e Esgoto NaN NaN 45.85 NaN NaN 82904 5 NA NA NaN NA NA NaN
2012 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40317 3 NA NA NA NA NA NaN
2013 Concessionária Águas de Juturnaíba S/A 36.27 260.58 NaN 1.08 0.60 219751 3 NaN NaN NA 1.00 1.00 100.00
2013 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 11.34 5.39 377244 5 NA NA NA 0.00 0.50 25.00
2013 Serviço Autônomo de Água e Esgoto NaN NaN NaN 6.22 9.74 70750 2 NA NA NA 0.50 0.00 25.00
2013 Serviço Intermunicipal de Água e Esgoto NaN NaN 40.72 NaN NaN 85219 5 NA NA NaN NA NA NaN
2013 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40581 3 NA NA NA NA NA NaN
2014 Serviço Autônomo de Água e Esgoto 5.60 8.39 0.01 6.22 9.74 71487 2 1.00 1.00 1.00 0.00 0.00 60.00
2014 Concessionária Águas de Juturnaíba S/A 32.56 98.58 NaN 1.22 0.92 223199 3 0.00 0.00 NA 1.00 1.00 50.00
2014 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 4.33 4.57 384463 5 NA NA NA 0.50 0.50 50.00
2014 Serviço Intermunicipal de Água e Esgoto NaN NaN 0.36 NaN NaN 85834 5 NA NA 0.00 NA NA 0.00
2014 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40709 3 NA NA NA NA NA NaN
2015 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 2.32 1.12 391436 5 NA NA NA 0.67 0.75 70.83
2015 Serviço Autônomo de Água e Esgoto 5.54 13.85 NaN 2.53 6.00 72195 2 1.00 1.00 NA 0.33 0.50 70.83
2015 Concessionária Águas de Juturnaíba S/A 32.05 97.04 NaN 1.22 0.92 226531 3 0.00 0.00 NA 1.00 1.00 50.00
2015 Serviço de Tratamento de Água e Esgoto NaN NaN NaN 6.57 6.38 40834 3 NA NA NA 0.00 0.25 12.50
2015 Serviço Intermunicipal de Água e Esgoto NaN NaN 46.39 NaN 8.00 86441 5 NA NA NaN NA 0.00 0.00
2016 Concessionária Águas de Juturnaíba S/A 38.40 103.38 NaN 1.55 0.92 229969 3 1.00 NaN NA 1.00 1.00 100.00
2016 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 4.76 2.00 397940 5 NA NA NA 0.75 0.50 62.50
2016 Serviço Autônomo de Água e Esgoto NaN NaN NaN 6.00 8.00 72886 2 NA NA NA 0.50 0.00 25.00
2016 Serviço Intermunicipal de Água e Esgoto 126.25 NaN 75.71 24.00 NaN 87045 5 0.50 NA NaN 0.00 NA 25.00
2016 Serviço de Tratamento de Água e Esgoto 974.71 NaN NaN 6.00 NaN 25719 2 0.00 NA NA 0.50 NA 25.00
2017 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 0.00 0.00 2.48 4.74 6.00 404436 5 1.00 1.00 1.00 0.67 0.50 83.33
2017 Concessionária Águas de Juturnaíba S/A 37.85 101.91 NaN 1.55 0.92 233170 3 0.00 0.00 NA 1.00 1.00 50.00
2017 Serviço Autônomo de Água e Esgoto NaN NaN NaN 9.89 9.89 73298 2 NA NA NA 0.33 0.00 16.67
2017 Serviço Intermunicipal de Água e Esgoto NaN NaN 127.71 NaN NaN 87643 5 NA NA 0.00 NA NA 0.00
2017 Serviço de Tratamento de Água e Esgoto NaN NaN NaN 11.00 NaN 25705 2 NA NA NA 0.00 NA 0.00
2018 Concessionária Águas de Juturnaíba S/A 237.11 127.07 NaN 7.71 8.50 239916 3 1.00 1.00 NA 1.00 1.00 100.00
2018 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN 0.25 NaN NaN 416472 5 NA NA 1.00 NA NA 100.00
2018 Serviço Autônomo de Água e Esgoto NaN NaN NaN 9.89 9.89 72140 2 NA NA NA 0.67 0.67 66.67
2018 Hidro Forte Administração e Operação Ltda NaN NaN NaN 11.16 12.90 111840 13 NA NA NA 0.33 0.33 33.33
2018 BRK Ambiental Araguaia 266.41 207.10 1.65 15.88 31.37 185965 4 0.00 0.00 0.50 0.00 0.00 10.00
2018 Serviço Intermunicipal de Água e Esgoto NaN NaN 91.54 NaN NaN 87983 5 NA NA 0.00 NA NA 0.00
2018 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 26430 2 NA NA NA NA NA NaN
2019 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN 0.49 NaN NaN 423530 5 NA NA 1.00 NA NA 100.00
2019 Concessionária Águas de Juturnaíba S/A 416.08 284.79 0.68 6.40 6.60 243344 3 1.00 1.00 0.67 0.75 1.00 88.33
2019 Hidro Forte Administração e Operação Ltda NaN NaN NaN 6.14 6.87 208376 34 NA NA NA 1.00 0.67 83.33
2019 Serviço Autônomo de Água e Esgoto NaN NaN NaN 12.00 12.00 72847 2 NA NA NA 0.25 0.33 29.17
2019 BRK Ambiental Araguaia 437.83 776.22 1.92 12.67 27.95 129351 4 0.50 0.00 0.33 0.00 0.00 16.67
2019 Serviço Intermunicipal de Água e Esgoto 607.80 NaN 155.57 7.00 NaN 88552 5 0.00 NA 0.00 0.50 NA 16.67
2019 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 26448 2 NA NA NA NA NA NaN
2020 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN 0.36 6.46 NaN 430334 5 NA NA 1.00 0.75 NA 87.50
2020 Hidro Forte Administração e Operação Ltda NaN NaN NaN 6.53 6.78 291036 36 NA NA NA 0.50 1.00 75.00
2020 Concessionária Águas de Juturnaíba S/A NaN 173.21 63.35 NaN 11.44 246650 3 NA 1.00 0.33 NA 0.75 69.44
2020 BRK Ambiental Araguaia 331.40 284.53 42.86 18.14 44.00 216904 5 1.00 0.50 0.67 0.00 0.00 43.33
2020 Serviço Autônomo de Água e Esgoto NaN NaN NaN 12.00 12.00 73539 2 NA NA NA 0.25 0.50 37.50
2020 Serviço Intermunicipal de Água e Esgoto 604.91 1845.18 68.25 6.00 19.43 89109 5 0.00 0.00 0.00 1.00 0.25 25.00
2020 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 25882 2 NA NA NA NA NA NaN
2021 Hidro Forte Administração e Operação Ltda NaN NaN NaN 6.36 6.12 323151 38 NA NA NA 1.00 1.00 100.00
2021 Serviço Autônomo de Água e Esgoto NaN NaN 2.58 12.00 12.00 74216 2 NA NA 0.43 0.71 0.80 64.76
2021 Concessionária Águas de Juturnaíba S/A 164.89 172.69 56.01 13.11 27.54 249822 3 1.00 1.00 0.14 0.57 0.20 58.29
2021 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN 0.39 NaN NaN 436864 5 NA NA 0.57 NA NA 57.14
2021 Serviço de Tratamento de Água e Esgoto 1085.96 NaN NaN 7.00 NaN 26532 2 0.20 NA NA 0.86 NA 52.86
2021 ÁGUAS DO RIO 1 SPE S.A. 376.20 NaN 0.06 17.55 NaN 9010435 19 0.40 NA 0.71 0.29 NA 46.67
2021 BRK Ambiental Araguaia 309.13 328.77 4.46 22.97 25.99 193680 4 0.80 0.67 0.29 0.14 0.40 45.90
2021 ÁGUAS DO RIO 4 SPE S.A. 1634.94 1590.93 0.01 16.58 20.71 9139839 7 0.00 0.00 1.00 0.43 0.60 40.57
2021 BRK AMBIENTAL - REGIAO METROPOLITANA DE MACEIO S.A. 335.37 1146.40 0.02 79.83 43.03 1346539 12 0.60 0.33 0.86 0.00 0.00 35.81
2021 Serviço Intermunicipal de Água e Esgoto NaN NaN 94.47 NaN NaN 89656 5 NA NA 0.00 NA NA 0.00
2022 Hidro Forte Administração e Operação Ltda NaN NaN NaN 6.00 6.00 288742 39 NA NA NA 1.00 1.00 100.00
2022 Sistema Integrado de Saneamento Rural da Bacia Metropolitana NaN NaN NaN 6.00 6.00 895741 17 NA NA NA 1.00 1.00 100.00
2022 Central - Sistemas de Saneamento de Seabra NaN NaN NaN 8.00 NaN 193537 12 NA NA NA 0.82 NA 81.82
2022 Sistema Integrado de Saneamento Rural da Bacia Hidrográfica do Parnaíba NaN NaN NaN 8.98 NaN 551469 17 NA NA NA 0.77 NA 77.27
2022 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 16.84 4316.67 0.37 6.00 6.00 357176 3 0.92 0.00 0.92 1.00 1.00 76.92
2022 Sistema Integrado de Saneamento Rural - Sobral NaN NaN 0.13 10.00 10.00 946706 32 NA NA 1.00 0.68 0.53 73.84
2022 Sistema Integrado de Saneamento Rural - BAJ 7.89 NaN 10.00 9.10 NaN 495874 19 1.00 NA 0.46 0.73 NA 72.96
2022 Central - Sistemas de Saneamento de Jacobina 18.53 22.92 1.93 12.12 13.86 298950 9 0.85 0.89 0.69 0.50 0.40 66.55
2022 Verde Ambiental Alagoas S.A 564.92 108.99 NaN 6.00 6.97 379361 26 0.23 0.67 NA 1.00 0.73 65.77
2022 ÁGUAS DO RIO 1 SPE S.A. 266.32 NaN 0.71 11.50 NaN 8217024 19 0.46 NA 0.77 0.64 NA 62.24
2022 Sistema Integrado de Saneamento Rural da Bacia do Banabuiu NaN NaN NaN 13.14 8.73 670430 23 NA NA NA 0.41 0.67 53.79
2022 Iguá Rio de Janeiro S.A. 175.16 291.19 9.87 27.00 6.00 6267424 3 0.62 0.44 0.54 0.09 1.00 53.78
2022 ÁGUAS DO RIO 4 SPE S.A. 635.20 19.21 0.61 12.99 24.00 9280013 9 0.15 1.00 0.85 0.45 0.13 51.76
2022 Serviço Autônomo de Água e Esgoto NaN NaN NaN 12.00 12.00 81761 2 NA NA NA 0.55 0.47 50.61
2022 Concessionária Águas de Juturnaíba S/A 149.82 264.19 69.02 24.65 21.16 240582 3 0.69 0.56 0.38 0.18 0.27 41.62
2022 Serviço Intermunicipal de Água e Esgoto 322.37 NaN 93.42 11.72 NaN 88010 5 0.38 NA 0.23 0.59 NA 40.21
2022 Sistema Integrado de Saneamento Rural da Bacia Hidrográfica do Salgado 28.86 NaN NaN 285.81 NaN 590840 16 0.77 NA NA 0.00 NA 38.46
2022 Sistema Integrado de Saneamento Rural da Bacia do Curu e Litoral NaN NaN NaN 16.64 NaN 656186 20 NA NA NA 0.36 NA 36.36
2022 Rio+ Saneamento BL3 S.A 734.58 1282.24 8.35 22.04 8.78 6860850 18 0.08 0.11 0.62 0.23 0.60 32.61
2022 BRK AMBIENTAL - REGIAO METROPOLITANA DE MACEIO S.A. 256.43 43.02 169.60 24.85 70.92 1183333 10 0.54 0.78 0.08 0.14 0.00 30.59
NA NaN NaN NaN NaN NaN 0 1 NA NA NA NA NA NaN
bottom20 |>
  knitr::kable("html", digits = 2, caption = "Bottom 20 prestadores por IDA-score (por ano)") |>
  kableExtra::kable_styling(bootstrap_options = c("striped","hover","condensed","responsive"), full_width = FALSE)
Bottom 20 prestadores por IDA-score (por ano)
ano prestador IN071_tx10k IN073_tx10k IN083 IN072 IN074 pop_total n_municipios s_IN071_tx10k s_IN073_tx10k s_IN083 s_IN072 s_IN074 ida_score
1998 Concessionária Águas de Juturnaíba S/A NaN NaN NaN NaN NaN 70979 1 NA NA NA NA NA NaN
1998 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 222070 5 NA NA NA NA NA NaN
1998 Serviço Intermunicipal de Água e Esgoto NaN NaN NaN NaN NaN 22924 2 NA NA NA NA NA NaN
1999 Concessionária Águas de Juturnaíba S/A NaN NaN NaN NaN NaN 141395 3 NA NA NA NA NA NaN
1999 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 231052 5 NA NA NA NA NA NaN
1999 Serviço Autônomo de Água e Esgoto NaN NaN NaN 3.00 NaN 101421 4 NA NA NA NaN NA NaN
1999 Serviço Intermunicipal de Água e Esgoto NaN NaN NaN NaN NaN 23313 2 NA NA NA NA NA NaN
2000 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 247225 5 NA NA NA NA NA NaN
2000 Serviço Autônomo de Água e Esgoto 5.27 NaN NaN 2.05 NaN 104339 4 NaN NA NA NaN NA NaN
2000 Serviço Intermunicipal de Água e Esgoto NaN 61.01 NaN NaN 0.24 27374 2 NA NaN NA NA NaN NaN
2001 Concessionária Águas de Juturnaíba S/A 438.83 438.83 NaN 24.00 24.00 161499 3 0.00 0.00 NA 0.00 0.00 0.00
2001 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 387.24 NaN NaN 8.00 NaN 258262 5 1.00 NA NA 1.00 NA 100.00
2001 Serviço Autônomo de Água e Esgoto NaN 2.37 NaN NaN 0.83 106455 4 NA 1.00 NA NA 1.00 100.00
2002 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 285.85 NaN NaN 8.75 NaN 266576 5 0.00 NA NA 0.00 NA 0.00
2002 Concessionária Águas de Juturnaíba S/A NaN NaN NaN 6.00 6.00 165255 3 NA NA NA 0.50 NaN 50.00
2002 Serviço Autônomo de Água e Esgoto 1.07 NaN 0.08 0.29 NaN 108661 4 1.00 NA NaN 1.00 NA 100.00
2002 Serviço Intermunicipal de Água e Esgoto NaN NaN NaN NaN NaN 79366 5 NA NA NA NA NA NaN
2003 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 512.60 NaN NaN 8.75 NaN 275557 5 0.00 NA NA 0.00 NA 0.00
2003 Concessionária Águas de Juturnaíba S/A 5.55 5.55 NaN 2.00 2.00 169305 3 1.00 NaN NA 0.50 0.00 50.00
2003 Serviço Autônomo de Água e Esgoto NaN NaN 2.00 0.90 0.89 173538 7 NA NA 0.00 1.00 1.00 66.67
2003 Serviço Intermunicipal de Água e Esgoto NaN NaN 1.00 NaN NaN 80386 5 NA NA 1.00 NA NA 100.00
2003 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 30227 2 NA NA NA NA NA NaN
2004 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 10.36 14.00 294411 5 NA NA NA 0.00 0.00 0.00
2004 Concessionária Águas de Juturnaíba S/A 2467.70 822.57 NaN NaN 3.67 177809 3 0.00 NaN NA NA 1.00 50.00
2004 Serviço Autônomo de Água e Esgoto 0.00 NaN NaN 0.98 NaN 114875 4 1.00 NA NA 1.00 NA 100.00
2004 Serviço Intermunicipal de Água e Esgoto NaN NaN NaN NaN NaN 82525 5 NA NA NA NA NA NaN
2004 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 38740 3 NA NA NA NA NA NaN
2005 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 10.36 14.00 304846 5 NA NA NA 0.00 NaN 0.00
2005 Concessionária Águas de Juturnaíba S/A 1253.93 NaN NaN 6.00 NaN 182514 3 0.00 NA NA 1.00 NA 50.00
2005 Serviço Autônomo de Água e Esgoto 917.99 NaN NaN 6.00 NaN 180166 7 1.00 NA NA 1.00 NA 100.00
2005 Serviço Intermunicipal de Água e Esgoto NaN NaN 1.45 NaN NaN 82346 5 NA NA NaN NA NA NaN
2005 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 38940 3 NA NA NA NA NA NaN
2006 Serviço Autônomo de Água e Esgoto NaN NaN NaN 17.41 NaN 132234 5 NA NA NA 0.00 NA 0.00
2006 Concessionária Águas de Juturnaíba S/A 1239.61 NaN NaN 6.00 NaN 187184 3 NaN NA NA 1.00 NA 100.00
2006 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 315201 5 NA NA NA NA NA NaN
2006 Serviço Intermunicipal de Água e Esgoto NaN NaN 8.49 NaN NaN 83481 5 NA NA NaN NA NA NaN
2006 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 39139 3 NA NA NA NA NA NaN
2007 Serviço Intermunicipal de Água e Esgoto 64.18 0.67 NaN 90.59 0.41 74328 5 0.00 0.00 NA 0.00 0.00 0.00
2007 Serviço de Tratamento de Água e Esgoto 59.67 0.51 NaN 0.00 NaN 39216 3 0.25 0.25 NA 1.00 NA 50.00
2007 Serviço Autônomo de Água e Esgoto 50.67 0.08 NaN 89.43 0.09 131649 5 0.50 0.75 NA 0.25 1.00 62.50
2007 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 0.00 0.33 NaN 0.00 0.28 307622 5 1.00 0.50 NA 1.00 0.50 75.00
2007 Concessionária Águas de Juturnaíba S/A 17.16 0.06 NaN 0.00 NaN 181804 3 0.75 1.00 NA 1.00 NA 91.67
2008 Serviço Autônomo de Água e Esgoto NaN NaN NaN 4.26 27.00 129516 4 NA NA NA 0.00 NaN 0.00
2008 Concessionária Águas de Juturnaíba S/A 532.60 NaN NaN 2.37 NaN 197296 3 NaN NA NA 1.00 NA 100.00
2008 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 340122 5 NA NA NA NA NA NaN
2008 Serviço Intermunicipal de Água e Esgoto NaN NaN NaN NaN NaN 76428 5 NA NA NA NA NA NaN
2008 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40452 3 NA NA NA NA NA NaN
2009 Serviço Intermunicipal de Água e Esgoto NaN NaN 4.76 NaN NaN 76400 5 NA NA 0.00 NA NA 0.00
2009 Concessionária Águas de Juturnaíba S/A 588.35 NaN 0.00 3.03 NaN 201309 3 NaN NA 1.00 NaN NA 100.00
2009 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN NaN NaN 349366 5 NA NA NA NA NA NaN
2009 Serviço Autônomo de Água e Esgoto NaN NaN NaN NaN NaN 65263 2 NA NA NA NA NA NaN
2009 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40684 3 NA NA NA NA NA NaN
2010 Serviço Intermunicipal de Água e Esgoto NaN NaN 42.28 NaN NaN 82000 5 NA NA 0.00 NA NA 0.00
2010 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 4.51 8.69 352228 5 NA NA NA 1.00 0.00 50.00
2010 Concessionária Águas de Juturnaíba S/A 362.74 362.74 0.67 5.12 5.12 207591 3 NaN NaN 1.00 0.00 1.00 66.67
2010 Serviço Autônomo de Água e Esgoto NaN NaN NaN NaN NaN 65128 2 NA NA NA NA NA NaN
2010 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 39990 3 NA NA NA NA NA NaN
2011 Serviço Intermunicipal de Água e Esgoto NaN NaN 76.75 NaN NaN 82460 5 NA NA 0.00 NA NA 0.00
2011 Serviço Autônomo de Água e Esgoto 1138.36 856.43 0.68 6.81 15.15 65621 2 0.00 NaN 1.00 0.00 0.00 25.00
2011 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 4.52 8.69 360290 5 NA NA NA 1.00 0.50 75.00
2011 Concessionária Águas de Juturnaíba S/A 311.16 NaN NaN 6.37 6.37 211512 3 1.00 NA NA 0.50 1.00 83.33
2011 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40157 3 NA NA NA NA NA NaN
2012 Serviço Autônomo de Água e Esgoto NaN NaN NaN 6.00 9.56 66096 2 NA NA NA 0.50 0.00 25.00
2012 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 11.22 9.20 368086 5 NA NA NA 0.00 1.00 50.00
2012 Concessionária Águas de Juturnaíba S/A 335.26 NaN NaN 5.43 NaN 215302 3 NaN NA NA 1.00 NA 100.00
2012 Serviço Intermunicipal de Água e Esgoto NaN NaN 45.85 NaN NaN 82904 5 NA NA NaN NA NA NaN
2012 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40317 3 NA NA NA NA NA NaN
2013 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 11.34 5.39 377244 5 NA NA NA 0.00 0.50 25.00
2013 Serviço Autônomo de Água e Esgoto NaN NaN NaN 6.22 9.74 70750 2 NA NA NA 0.50 0.00 25.00
2013 Concessionária Águas de Juturnaíba S/A 36.27 260.58 NaN 1.08 0.60 219751 3 NaN NaN NA 1.00 1.00 100.00
2013 Serviço Intermunicipal de Água e Esgoto NaN NaN 40.72 NaN NaN 85219 5 NA NA NaN NA NA NaN
2013 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40581 3 NA NA NA NA NA NaN
2014 Serviço Intermunicipal de Água e Esgoto NaN NaN 0.36 NaN NaN 85834 5 NA NA 0.00 NA NA 0.00
2014 Concessionária Águas de Juturnaíba S/A 32.56 98.58 NaN 1.22 0.92 223199 3 0.00 0.00 NA 1.00 1.00 50.00
2014 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 4.33 4.57 384463 5 NA NA NA 0.50 0.50 50.00
2014 Serviço Autônomo de Água e Esgoto 5.60 8.39 0.01 6.22 9.74 71487 2 1.00 1.00 1.00 0.00 0.00 60.00
2014 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 40709 3 NA NA NA NA NA NaN
2015 Serviço Intermunicipal de Água e Esgoto NaN NaN 46.39 NaN 8.00 86441 5 NA NA NaN NA 0.00 0.00
2015 Serviço de Tratamento de Água e Esgoto NaN NaN NaN 6.57 6.38 40834 3 NA NA NA 0.00 0.25 12.50
2015 Concessionária Águas de Juturnaíba S/A 32.05 97.04 NaN 1.22 0.92 226531 3 0.00 0.00 NA 1.00 1.00 50.00
2015 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 2.32 1.12 391436 5 NA NA NA 0.67 0.75 70.83
2015 Serviço Autônomo de Água e Esgoto 5.54 13.85 NaN 2.53 6.00 72195 2 1.00 1.00 NA 0.33 0.50 70.83
2016 Serviço Autônomo de Água e Esgoto NaN NaN NaN 6.00 8.00 72886 2 NA NA NA 0.50 0.00 25.00
2016 Serviço Intermunicipal de Água e Esgoto 126.25 NaN 75.71 24.00 NaN 87045 5 0.50 NA NaN 0.00 NA 25.00
2016 Serviço de Tratamento de Água e Esgoto 974.71 NaN NaN 6.00 NaN 25719 2 0.00 NA NA 0.50 NA 25.00
2016 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN NaN 4.76 2.00 397940 5 NA NA NA 0.75 0.50 62.50
2016 Concessionária Águas de Juturnaíba S/A 38.40 103.38 NaN 1.55 0.92 229969 3 1.00 NaN NA 1.00 1.00 100.00
2017 Serviço Intermunicipal de Água e Esgoto NaN NaN 127.71 NaN NaN 87643 5 NA NA 0.00 NA NA 0.00
2017 Serviço de Tratamento de Água e Esgoto NaN NaN NaN 11.00 NaN 25705 2 NA NA NA 0.00 NA 0.00
2017 Serviço Autônomo de Água e Esgoto NaN NaN NaN 9.89 9.89 73298 2 NA NA NA 0.33 0.00 16.67
2017 Concessionária Águas de Juturnaíba S/A 37.85 101.91 NaN 1.55 0.92 233170 3 0.00 0.00 NA 1.00 1.00 50.00
2017 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 0.00 0.00 2.48 4.74 6.00 404436 5 1.00 1.00 1.00 0.67 0.50 83.33
2018 Serviço Intermunicipal de Água e Esgoto NaN NaN 91.54 NaN NaN 87983 5 NA NA 0.00 NA NA 0.00
2018 BRK Ambiental Araguaia 266.41 207.10 1.65 15.88 31.37 185965 4 0.00 0.00 0.50 0.00 0.00 10.00
2018 Hidro Forte Administração e Operação Ltda NaN NaN NaN 11.16 12.90 111840 13 NA NA NA 0.33 0.33 33.33
2018 Serviço Autônomo de Água e Esgoto NaN NaN NaN 9.89 9.89 72140 2 NA NA NA 0.67 0.67 66.67
2018 Concessionária Águas de Juturnaíba S/A 237.11 127.07 NaN 7.71 8.50 239916 3 1.00 1.00 NA 1.00 1.00 100.00
2018 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN 0.25 NaN NaN 416472 5 NA NA 1.00 NA NA 100.00
2018 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 26430 2 NA NA NA NA NA NaN
2019 BRK Ambiental Araguaia 437.83 776.22 1.92 12.67 27.95 129351 4 0.50 0.00 0.33 0.00 0.00 16.67
2019 Serviço Intermunicipal de Água e Esgoto 607.80 NaN 155.57 7.00 NaN 88552 5 0.00 NA 0.00 0.50 NA 16.67
2019 Serviço Autônomo de Água e Esgoto NaN NaN NaN 12.00 12.00 72847 2 NA NA NA 0.25 0.33 29.17
2019 Hidro Forte Administração e Operação Ltda NaN NaN NaN 6.14 6.87 208376 34 NA NA NA 1.00 0.67 83.33
2019 Concessionária Águas de Juturnaíba S/A 416.08 284.79 0.68 6.40 6.60 243344 3 1.00 1.00 0.67 0.75 1.00 88.33
2019 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN 0.49 NaN NaN 423530 5 NA NA 1.00 NA NA 100.00
2019 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 26448 2 NA NA NA NA NA NaN
2020 Serviço Intermunicipal de Água e Esgoto 604.91 1845.18 68.25 6.00 19.43 89109 5 0.00 0.00 0.00 1.00 0.25 25.00
2020 Serviço Autônomo de Água e Esgoto NaN NaN NaN 12.00 12.00 73539 2 NA NA NA 0.25 0.50 37.50
2020 BRK Ambiental Araguaia 331.40 284.53 42.86 18.14 44.00 216904 5 1.00 0.50 0.67 0.00 0.00 43.33
2020 Concessionária Águas de Juturnaíba S/A NaN 173.21 63.35 NaN 11.44 246650 3 NA 1.00 0.33 NA 0.75 69.44
2020 Hidro Forte Administração e Operação Ltda NaN NaN NaN 6.53 6.78 291036 36 NA NA NA 0.50 1.00 75.00
2020 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN 0.36 6.46 NaN 430334 5 NA NA 1.00 0.75 NA 87.50
2020 Serviço de Tratamento de Água e Esgoto NaN NaN NaN NaN NaN 25882 2 NA NA NA NA NA NaN
2021 Serviço Intermunicipal de Água e Esgoto NaN NaN 94.47 NaN NaN 89656 5 NA NA 0.00 NA NA 0.00
2021 BRK AMBIENTAL - REGIAO METROPOLITANA DE MACEIO S.A. 335.37 1146.40 0.02 79.83 43.03 1346539 12 0.60 0.33 0.86 0.00 0.00 35.81
2021 ÁGUAS DO RIO 4 SPE S.A. 1634.94 1590.93 0.01 16.58 20.71 9139839 7 0.00 0.00 1.00 0.43 0.60 40.57
2021 BRK Ambiental Araguaia 309.13 328.77 4.46 22.97 25.99 193680 4 0.80 0.67 0.29 0.14 0.40 45.90
2021 ÁGUAS DO RIO 1 SPE S.A. 376.20 NaN 0.06 17.55 NaN 9010435 19 0.40 NA 0.71 0.29 NA 46.67
2021 Serviço de Tratamento de Água e Esgoto 1085.96 NaN NaN 7.00 NaN 26532 2 0.20 NA NA 0.86 NA 52.86
2021 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto NaN NaN 0.39 NaN NaN 436864 5 NA NA 0.57 NA NA 57.14
2021 Concessionária Águas de Juturnaíba S/A 164.89 172.69 56.01 13.11 27.54 249822 3 1.00 1.00 0.14 0.57 0.20 58.29
2021 Serviço Autônomo de Água e Esgoto NaN NaN 2.58 12.00 12.00 74216 2 NA NA 0.43 0.71 0.80 64.76
2021 Hidro Forte Administração e Operação Ltda NaN NaN NaN 6.36 6.12 323151 38 NA NA NA 1.00 1.00 100.00
2022 Concessionária de Saneamento do Amapá SPE S.A. NaN NaN 140.45 NaN NaN 709245 14 NA NA 0.15 NA NA 15.38
2022 Águas do Sertão S/A 2013.55 777.31 83.12 29.99 22.27 709234 34 0.00 0.22 0.31 0.05 0.20 15.51
2022 Sistema Integrado de Saneamento Rural Bacia do Baixo e Médio Jaguaribe NaN NaN NaN 17.78 24.00 403950 17 NA NA NA 0.27 0.13 20.30
2022 BRK Ambiental Araguaia 453.41 444.86 251.07 16.77 17.74 149679 4 0.31 0.33 0.00 0.32 0.33 25.85
2022 BRK AMBIENTAL - REGIAO METROPOLITANA DE MACEIO S.A. 256.43 43.02 169.60 24.85 70.92 1183333 10 0.54 0.78 0.08 0.14 0.00 30.59
2022 Rio+ Saneamento BL3 S.A 734.58 1282.24 8.35 22.04 8.78 6860850 18 0.08 0.11 0.62 0.23 0.60 32.61
2022 Sistema Integrado de Saneamento Rural da Bacia do Curu e Litoral NaN NaN NaN 16.64 NaN 656186 20 NA NA NA 0.36 NA 36.36
2022 Sistema Integrado de Saneamento Rural da Bacia Hidrográfica do Salgado 28.86 NaN NaN 285.81 NaN 590840 16 0.77 NA NA 0.00 NA 38.46
2022 Serviço Intermunicipal de Água e Esgoto 322.37 NaN 93.42 11.72 NaN 88010 5 0.38 NA 0.23 0.59 NA 40.21
2022 Concessionária Águas de Juturnaíba S/A 149.82 264.19 69.02 24.65 21.16 240582 3 0.69 0.56 0.38 0.18 0.27 41.62
2022 Serviço Autônomo de Água e Esgoto NaN NaN NaN 12.00 12.00 81761 2 NA NA NA 0.55 0.47 50.61
2022 ÁGUAS DO RIO 4 SPE S.A. 635.20 19.21 0.61 12.99 24.00 9280013 9 0.15 1.00 0.85 0.45 0.13 51.76
2022 Iguá Rio de Janeiro S.A. 175.16 291.19 9.87 27.00 6.00 6267424 3 0.62 0.44 0.54 0.09 1.00 53.78
2022 Sistema Integrado de Saneamento Rural da Bacia do Banabuiu NaN NaN NaN 13.14 8.73 670430 23 NA NA NA 0.41 0.67 53.79
2022 ÁGUAS DO RIO 1 SPE S.A. 266.32 NaN 0.71 11.50 NaN 8217024 19 0.46 NA 0.77 0.64 NA 62.24
2022 Verde Ambiental Alagoas S.A 564.92 108.99 NaN 6.00 6.97 379361 26 0.23 0.67 NA 1.00 0.73 65.77
2022 Central - Sistemas de Saneamento de Jacobina 18.53 22.92 1.93 12.12 13.86 298950 9 0.85 0.89 0.69 0.50 0.40 66.55
2022 Sistema Integrado de Saneamento Rural - BAJ 7.89 NaN 10.00 9.10 NaN 495874 19 1.00 NA 0.46 0.73 NA 72.96
2022 Sistema Integrado de Saneamento Rural - Sobral NaN NaN 0.13 10.00 10.00 946706 32 NA NA 1.00 0.68 0.53 73.84
2022 Prolagos S/A - Concessionária de Serviços Públicos de Água e Esgoto 16.84 4316.67 0.37 6.00 6.00 357176 3 0.92 0.00 0.92 1.00 1.00 76.92
NA NaN NaN NaN NaN NaN 0 1 NA NA NA NA NA NaN
ggplot(ida_score, aes(x = factor(ano), y = ida_score)) +
  geom_boxplot() +
  labs(
    title = "Distribuição do IDA-score por ano (prestadores)",
    x = "Ano",
    y = "IDA-score (0–100; maior = melhor)",
    caption = "Elaboração: Fipe com base nos dados SNIS"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold"),
    axis.text.x = element_text(angle = 45, hjust = 1),
    plot.caption = element_text(hjust = 0.5)
  )

# Garantir pop_total no ida_score (se não estiver)
if (!("pop_total" %in% names(ida_score))) {
  ida_score2 <- ida_score |>
    dplyr::left_join(
      ida_prestadores |> dplyr::select(ano, prestador, pop_total),
      by = c("ano","prestador")
    )
} else {
  ida_score2 <- ida_score
}

# Estratos populacionais
ida_score_estratos <- ida_score2 |>
  dplyr::mutate(
    estrato_pop = dplyr::case_when(
      is.na(pop_total) ~ "Não informado",
      pop_total <= 20000 ~ "Até 20.000",
      pop_total <= 1e5   ~ "20.001 a 100.000",
      pop_total <= 5e5   ~ "100.001 a 500.000",
      TRUE              ~ "Acima de 500.000"
    ),
    estrato_pop = factor(
      estrato_pop,
      levels = c("Até 20.000","20.001 a 100.000","100.001 a 500.000","Acima de 500.000","Não informado")
    )
  )

# Sumário por ano × estrato (com IC95% para média)
cen_estratos <- ida_score_estratos |>
  dplyr::filter(!is.na(ida_score)) |>
  dplyr::group_by(ano, estrato_pop) |>
  dplyr::summarise(
    n_prestadores  = dplyr::n_distinct(prestador),
    ida_media      = mean(ida_score, na.rm = TRUE),
    ida_sd         = stats::sd(ida_score, na.rm = TRUE),
    ida_se         = ida_sd / sqrt(dplyr::n()),
    ci95_inf       = ida_media - 1.96 * ida_se,
    ci95_sup       = ida_media + 1.96 * ida_se,
    .groups = "drop"
  ) |>
  dplyr::arrange(ano, estrato_pop)

# ----------------------------
# TABELA (wide): média (n)
# ----------------------------
tabela_wide <- cen_estratos |>
  dplyr::mutate(
    media_n = paste0(round(ida_media, 1), " (n=", n_prestadores, ")")
  ) |>
  dplyr::select(ano, estrato_pop, media_n) |>
  tidyr::pivot_wider(names_from = estrato_pop, values_from = media_n)

tabela_wide |>
  knitr::kable(
    "html",
    caption = "IDA-score por estrato populacional e ano (média e número de prestadores)"
  ) |>
  kableExtra::kable_styling(
    bootstrap_options = c("striped","hover","condensed","responsive"),
    full_width = FALSE
  )
IDA-score por estrato populacional e ano (média e número de prestadores)
ano 100.001 a 500.000 20.001 a 100.000 Acima de 500.000
2001 66.7 (n=3) NA NA
2002 50 (n=3) NA NA
2003 38.9 (n=3) 100 (n=1) NA
2004 50 (n=3) NA NA
2005 50 (n=3) NA NA
2006 50 (n=2) NA NA
2007 76.4 (n=3) 25 (n=2) NA
2008 50 (n=2) NA NA
2009 100 (n=1) 0 (n=1) NA
2010 58.3 (n=2) 0 (n=1) NA
2011 79.2 (n=2) 12.5 (n=2) NA
2012 75 (n=2) 25 (n=1) NA
2013 62.5 (n=2) 25 (n=1) NA
2014 50 (n=2) 30 (n=2) NA
2015 60.4 (n=2) 27.8 (n=3) NA
2016 81.2 (n=2) 25 (n=3) NA
2017 66.7 (n=2) 5.6 (n=3) NA
2018 60.8 (n=4) 33.3 (n=2) NA
2019 72.1 (n=4) 22.9 (n=2) NA
2020 68.8 (n=4) 31.2 (n=2) NA
2021 65.3 (n=4) 39.2 (n=3) 41 (n=3)
2022 61.3 (n=9) 45.4 (n=2) 49.4 (n=13)
# ----------------------------
# GRÁFICO 1 (recomendado): heatmap ano × estrato
# ----------------------------
ggplot(cen_estratos |> dplyr::filter(estrato_pop != "Não informado"),
       aes(x = estrato_pop, y = factor(ano), fill = ida_media)) +
  geom_tile(color = "white", linewidth = 0.4) +
  geom_text(aes(label = round(ida_media, 1)), size = 3) +
  labs(
    title = "IDA-score médio por estrato populacional e ano",
    x = "Estrato populacional (população atendida)",
    y = "Ano",
    fill = "IDA-score médio",
    caption = "Elaboração: Fipe com base nos dados SNIS"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold"),
    axis.text.x = element_text(angle = 35, hjust = 1),
    panel.grid = element_blank(),
    plot.caption = element_text(hjust = 0.5)
  )

# ----------------------------
# GRÁFICO 2 (se poucos anos): facet por ano com IC95% (comparação dentro do ano)
# ----------------------------
n_anos <- dplyr::n_distinct(cen_estratos$ano)

if (n_anos <= 6) {
  ggplot(cen_estratos |> dplyr::filter(estrato_pop != "Não informado"),
         aes(x = estrato_pop, y = ida_media)) +
    geom_pointrange(aes(ymin = ci95_inf, ymax = ci95_sup)) +
    facet_wrap(~ ano, nrow = 1) +
    labs(
      title = "IDA-score médio por estrato (IC95%) — comparação dentro do ano",
      x = "Estrato populacional (população atendida)",
      y = "IDA-score médio",
      caption = "Elaboração: Fipe com base nos dados SNIS"
    ) +
    theme_minimal(base_size = 12) +
    theme(
      plot.title = element_text(hjust = 0.5, face = "bold"),
      axis.text.x = element_text(angle = 35, hjust = 1),
      panel.grid.major.x = element_blank(),
      plot.caption = element_text(hjust = 0.5)
    )
}
# Evolução histórica (média ± 1 DP) na base municipal (pós-outliers)
yearly_stats <- dados_validos_ida |>
  dplyr::group_by(ano) |>
  dplyr::summarise(
    dplyr::across(
      dplyr::all_of(indicadores_bench),
      list(media = ~ mean(.x, na.rm = TRUE), sd = ~ sd(.x, na.rm = TRUE)),
      .names = "{.col}_{.fn}"
    ),
    .groups = "drop"
  )

yearly_long <- yearly_stats |>
  tidyr::pivot_longer(
    cols = -ano,
    names_to = c("indicador", ".value"),
    names_pattern = "(.+)_(media|sd)"
  ) |>
  dplyr::left_join(meta_bench, by = "indicador")

yearly_long |>
  knitr::kable("html", digits = 2, caption = "Evolução anual das médias e desvios-padrão (pós-outliers)") |>
  kableExtra::kable_styling(bootstrap_options = c("striped","hover","condensed","responsive"), full_width = FALSE)
Evolução anual das médias e desvios-padrão (pós-outliers)
ano indicador media sd descricao direcao
1998 IN071_tx10k NaN NA Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
1998 IN073_tx10k NaN NA Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
1998 IN083 NaN NA Tempo médio de reparo de vazamento de água menor_melhor
1998 IN072 NaN NA Duração média das paralisações menor_melhor
1998 IN074 NaN NA Duração média das intermitências menor_melhor
1999 IN071_tx10k NaN NA Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
1999 IN073_tx10k NaN NA Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
1999 IN083 NaN NA Tempo médio de reparo de vazamento de água menor_melhor
1999 IN072 3.00 NA Duração média das paralisações menor_melhor
1999 IN074 NaN NA Duração média das intermitências menor_melhor
2000 IN071_tx10k 19.73 36.12 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2000 IN073_tx10k 70.21 28.42 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2000 IN083 NaN NA Tempo médio de reparo de vazamento de água menor_melhor
2000 IN072 1.89 1.29 Duração média das paralisações menor_melhor
2000 IN074 0.26 0.09 Duração média das intermitências menor_melhor
2001 IN071_tx10k 395.04 173.08 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2001 IN073_tx10k 206.36 267.35 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2001 IN083 NaN NA Tempo médio de reparo de vazamento de água menor_melhor
2001 IN072 14.00 8.28 Duração média das paralisações menor_melhor
2001 IN074 14.72 12.71 Duração média das intermitências menor_melhor
2002 IN071_tx10k 236.45 188.17 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2002 IN073_tx10k NaN NA Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2002 IN083 0.08 NA Tempo médio de reparo de vazamento de água menor_melhor
2002 IN072 6.26 3.32 Duração média das paralisações menor_melhor
2002 IN074 6.00 0.00 Duração média das intermitências menor_melhor
2003 IN071_tx10k 477.22 269.14 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2003 IN073_tx10k 5.55 NA Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2003 IN083 1.50 0.71 Tempo médio de reparo de vazamento de água menor_melhor
2003 IN072 5.94 3.90 Duração média das paralisações menor_melhor
2003 IN074 1.27 0.63 Duração média das intermitências menor_melhor
2004 IN071_tx10k 1488.02 1358.56 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2004 IN073_tx10k 826.67 10.64 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2004 IN083 NaN NA Tempo médio de reparo de vazamento de água menor_melhor
2004 IN072 7.26 4.81 Duração média das paralisações menor_melhor
2004 IN074 9.57 5.56 Duração média das intermitências menor_melhor
2005 IN071_tx10k 1246.28 403.68 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2005 IN073_tx10k NaN NA Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2005 IN083 1.58 0.40 Tempo médio de reparo de vazamento de água menor_melhor
2005 IN072 8.49 2.33 Duração média das paralisações menor_melhor
2005 IN074 14.00 0.00 Duração média das intermitências menor_melhor
2006 IN071_tx10k 1239.61 NA Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2006 IN073_tx10k NaN NA Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2006 IN083 8.54 0.14 Tempo médio de reparo de vazamento de água menor_melhor
2006 IN072 9.58 9.40 Duração média das paralisações menor_melhor
2006 IN074 NaN NA Duração média das intermitências menor_melhor
2007 IN071_tx10k 52.26 52.64 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2007 IN073_tx10k 0.58 0.86 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2007 IN083 NaN NA Tempo médio de reparo de vazamento de água menor_melhor
2007 IN072 37.18 48.21 Duração média das paralisações menor_melhor
2007 IN074 0.43 0.61 Duração média das intermitências menor_melhor
2008 IN071_tx10k 532.60 NA Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2008 IN073_tx10k NaN NA Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2008 IN083 NaN NA Tempo médio de reparo de vazamento de água menor_melhor
2008 IN072 3.18 1.27 Duração média das paralisações menor_melhor
2008 IN074 27.00 NA Duração média das intermitências menor_melhor
2009 IN071_tx10k 755.48 424.42 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2009 IN073_tx10k NaN NA Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2009 IN083 2.76 3.22 Tempo médio de reparo de vazamento de água menor_melhor
2009 IN072 3.06 0.25 Duração média das paralisações menor_melhor
2009 IN074 NaN NA Duração média das intermitências menor_melhor
2010 IN071_tx10k 362.74 NA Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2010 IN073_tx10k 362.74 NA Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2010 IN083 21.47 22.80 Tempo médio de reparo de vazamento de água menor_melhor
2010 IN072 4.43 1.38 Duração média das paralisações menor_melhor
2010 IN074 8.05 2.00 Duração média das intermitências menor_melhor
2011 IN071_tx10k 851.03 587.73 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2011 IN073_tx10k 880.40 694.38 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2011 IN083 46.32 41.67 Tempo médio de reparo de vazamento de água menor_melhor
2011 IN072 5.31 1.62 Duração média das paralisações menor_melhor
2011 IN074 9.54 3.74 Duração média das intermitências menor_melhor
2012 IN071_tx10k 335.26 NA Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2012 IN073_tx10k NaN NA Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2012 IN083 45.82 0.08 Tempo médio de reparo de vazamento de água menor_melhor
2012 IN072 8.43 3.05 Duração média das paralisações menor_melhor
2012 IN074 10.05 2.66 Duração média das intermitências menor_melhor
2013 IN071_tx10k 36.27 NA Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2013 IN073_tx10k 260.58 NA Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2013 IN083 40.87 0.53 Tempo médio de reparo de vazamento de água menor_melhor
2013 IN072 8.75 3.86 Duração média das paralisações menor_melhor
2013 IN074 5.40 3.57 Duração média das intermitências menor_melhor
2014 IN071_tx10k 14.59 15.56 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2014 IN073_tx10k 38.56 52.08 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2014 IN083 0.22 0.19 Tempo médio de reparo de vazamento de água menor_melhor
2014 IN072 4.50 1.68 Duração média das paralisações menor_melhor
2014 IN074 4.86 3.68 Duração média das intermitências menor_melhor
2015 IN071_tx10k 14.39 15.30 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2015 IN073_tx10k 41.61 48.01 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2015 IN083 46.39 0.01 Tempo médio de reparo de vazamento de água menor_melhor
2015 IN072 3.38 2.03 Duração média das paralisações menor_melhor
2015 IN074 3.83 2.93 Duração média das intermitências menor_melhor
2016 IN071_tx10k 379.78 517.09 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2016 IN073_tx10k 103.38 NA Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2016 IN083 75.71 0.02 Tempo médio de reparo de vazamento de água menor_melhor
2016 IN072 6.80 6.19 Duração média das paralisações menor_melhor
2016 IN074 3.37 2.88 Duração média das intermitências menor_melhor
2017 IN071_tx10k 6.31 15.45 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2017 IN073_tx10k 33.97 58.84 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2017 IN083 49.44 64.81 Tempo médio de reparo de vazamento de água menor_melhor
2017 IN072 5.98 3.72 Duração média das paralisações menor_melhor
2017 IN074 6.58 4.00 Duração média das intermitências menor_melhor
2018 IN071_tx10k 387.34 334.42 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2018 IN073_tx10k 370.05 512.86 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2018 IN083 23.37 41.12 Tempo médio de reparo de vazamento de água menor_melhor
2018 IN072 11.49 4.46 Duração média das paralisações menor_melhor
2018 IN074 13.98 9.09 Duração média das intermitências menor_melhor
2019 IN071_tx10k 466.31 261.74 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2019 IN073_tx10k 591.55 465.70 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2019 IN083 32.02 64.03 Tempo médio de reparo de vazamento de água menor_melhor
2019 IN072 7.21 2.69 Duração média das paralisações menor_melhor
2019 IN074 8.53 5.83 Duração média das intermitências menor_melhor
2020 IN071_tx10k 476.74 279.99 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2020 IN073_tx10k 884.30 996.28 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2020 IN083 38.32 32.95 Tempo médio de reparo de vazamento de água menor_melhor
2020 IN072 7.87 3.40 Duração média das paralisações menor_melhor
2020 IN074 14.22 15.15 Duração média das intermitências menor_melhor
2021 IN071_tx10k 1169.86 841.78 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2021 IN073_tx10k 1041.70 784.94 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2021 IN083 9.19 25.14 Tempo médio de reparo de vazamento de água menor_melhor
2021 IN072 14.67 14.27 Duração média das paralisações menor_melhor
2021 IN074 14.64 11.98 Duração média das intermitências menor_melhor
2022 IN071_tx10k 765.27 912.86 Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
2022 IN073_tx10k 517.02 1001.31 Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
2022 IN083 56.91 74.77 Tempo médio de reparo de vazamento de água menor_melhor
2022 IN072 21.00 41.82 Duração média das paralisações menor_melhor
2022 IN074 11.34 8.50 Duração média das intermitências menor_melhor
NA IN071_tx10k NaN NA Economias atingidas por paralisações (por 10 mil hab.) menor_melhor
NA IN073_tx10k NaN NA Economias atingidas por intermitências (por 10 mil hab.) menor_melhor
NA IN083 NaN NA Tempo médio de reparo de vazamento de água menor_melhor
NA IN072 NaN NA Duração média das paralisações menor_melhor
NA IN074 NaN NA Duração média das intermitências menor_melhor
ggplot(yearly_long, aes(x = ano, y = media, colour = indicador, fill = indicador)) +
  geom_ribbon(aes(ymin = media - sd, ymax = media + sd), alpha = 0.15, colour = NA, show.legend = FALSE) +
  geom_line(linewidth = 0.7) +
  geom_point(size = 1.5) +
  facet_wrap(~ indicador, scales = "free_y") +
  scale_x_continuous(breaks = sort(unique(dados_validos_ida$ano))) +
  labs(
    x = "Ano",
    y = "Média anual (± 1 DP)",
    title = "Evolução anual dos indicadores de descontinuidade e abastecimento (IDA)"
  ) +
  theme_minimal(base_size = 10) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1), legend.position = "bottom")

# Boxplots por ano com referência global (média pós-outliers)
ref_globais <- dados_validos_ida |>
  dplyr::summarise(dplyr::across(dplyr::all_of(indicadores_bench), ~ mean(.x, na.rm = TRUE)))
ref_vals <- as.list(ref_globais)

plot_box <- function(dados, var, ref) {
  ggplot(dados, aes(x = factor(ano), y = .data[[var]])) +
    geom_boxplot() +
    geom_hline(yintercept = ref, linetype = "dashed") +
    labs(
      title = paste0("Distribuição anual — ", var),
      x = "Ano",
      y = var
    ) +
    theme_minimal() +
    theme(axis.text.x = element_text(angle = 45, hjust = 1))
}

plots <- purrr::map(indicadores_bench, ~ plot_box(dados_validos_ida, .x, ref_vals[[.x]]))
plots
## [[1]]

## 
## [[2]]

## 
## [[3]]

## 
## [[4]]

## 
## [[5]]

# Tabela "pronta para narrativa": variação das médias do primeiro para o último ano (pós-outliers)
anos_disp <- sort(unique(dados_validos_ida$ano))
ano_ini <- min(anos_disp, na.rm = TRUE)
ano_fim <- max(anos_disp, na.rm = TRUE)

resumo_variacao <- dados_validos_ida |>
  dplyr::filter(ano %in% c(ano_ini, ano_fim)) |>
  dplyr::group_by(ano) |>
  dplyr::summarise(dplyr::across(dplyr::all_of(indicadores_bench), ~ mean(.x, na.rm = TRUE)), .groups = "drop") |>
  tidyr::pivot_longer(-ano, names_to = "indicador", values_to = "media") |>
  tidyr::pivot_wider(names_from = ano, values_from = media, names_prefix = "media_") |>
  dplyr::mutate(
    delta_abs = .data[[paste0("media_", ano_fim)]] - .data[[paste0("media_", ano_ini)]],
    delta_pct = 100 * delta_abs / .data[[paste0("media_", ano_ini)]],
    interpretacao = dplyr::case_when(
      is.na(delta_abs) ~ NA_character_,
      delta_abs < 0 ~ "Melhora (redução)",
      delta_abs > 0 ~ "Piora (aumento)",
      TRUE ~ "Estável"
    )
  ) |>
  dplyr::left_join(meta_bench, by = "indicador") |>
  dplyr::select(indicador, descricao, tidyselect::starts_with("media_"), delta_abs, delta_pct, interpretacao) |>
  dplyr::arrange(desc(abs(delta_abs)))

resumo_variacao |>
  knitr::kable(
    "html",
    digits = 2,
    caption = paste0("Variação das médias (pós-outliers): ", ano_ini, " → ", ano_fim, " (indicadores do benchmarking)")
  ) |>
  kableExtra::kable_styling(bootstrap_options = c("striped","hover","condensed","responsive"), full_width = FALSE)
Variação das médias (pós-outliers): 1998 → 2022 (indicadores do benchmarking)
indicador descricao media_1998 media_2022 delta_abs delta_pct interpretacao
IN071_tx10k Economias atingidas por paralisações (por 10 mil hab.) NaN 765.27 NaN NaN NA
IN073_tx10k Economias atingidas por intermitências (por 10 mil hab.) NaN 517.02 NaN NaN NA
IN083 Tempo médio de reparo de vazamento de água NaN 56.91 NaN NaN NA
IN072 Duração média das paralisações NaN 21.00 NaN NaN NA
IN074 Duração média das intermitências NaN 11.34 NaN NaN NA