Ouvidômetro

Painel interativo sobre prazo e atraso nas manifestações de ouvidoria registradas no Fala.BR, a plataforma de ouvidoria do governo federal, com dados abertos da Controladoria-Geral da União (CGU). Ele mede como os órgãos públicos respondem ao cidadão: quanto tempo levam, quanto fica fora do prazo e onde as pendências se acumulam.

Captura de tela do painel Ouvidômetro, em tema escuro. À esquerda, o título e a pergunta sobre se os órgãos públicos respondem ao cidadão no prazo que a lei manda. À direita, uma grade de 10 por 10 pontos, em que os pontos em magenta representam as manifestações que ficaram fora do prazo.

Em telas pequenas o painel não é incorporado aqui. Abra a versão completa em outra aba.

Ver painel
Aplicação
Painel interativo sobre prazo de resposta em ouvidorias públicas
Tecnologias
  • Python
  • DuckDB
  • HTML
  • CSS
  • JavaScript
  • D3
Dados
Arquivo público de manifestações de ouvidoria da CGU, de janeiro de 2015 a agosto de 2026
Status
Publicado no GitHub Pages

O problema

O painel mede como os órgãos públicos respondem às manifestações dos cidadãos. A pergunta de fundo é a de quem gere uma ouvidoria pública: onde agir primeiro.

  • O prazo da lei é cumprido, e isso melhorou?
  • Quanto tempo o cidadão espera pela resposta?
  • O que está pendente com o prazo vencido?
  • Em que esfera, tipo, UF e assunto o prazo mais estoura?
  • Quais órgãos precisam de atenção primeiro?
  • A demanda foi atendida, e o atraso pesa na satisfação?

Fonte dos dados

Os dados vêm do arquivo público de manifestações de ouvidoria da CGU, atualizado todo mês. O arquivo usado foi gerado em 01/09/2026 e traz um CSV por ano, com datas de registro, prazo e resposta, tipo, órgão, assunto, situação, esfera e pesquisa de satisfação.

O recorte vai de janeiro de 2015 a 31/08/2026, com 8.752.496 manifestações. O recorte principal do painel são os últimos 12 meses completos, comparados aos 12 anteriores.

Os dados brutos não vão para o repositório, só os indicadores agregados.

Como foi construído

  1. Preparar

    Um script em Python baixa o arquivo da CGU, converte os CSVs de Latin-1 para UTF-8 e grava um arquivo Parquet por ano.

  2. Agregar

    Outro script agrega a base com DuckDB por mês, esfera, tipo, UF, órgão e assunto e grava o arquivo de dados que alimenta os filtros do painel.

  3. Resumir

    Um terceiro script grava o resumo dos últimos 12 meses em JSON e CSV, para quem quiser os números fora do painel.

  4. Painel

    O painel é feito em HTML, CSS e JavaScript, com gráficos em D3. Tem filtros de período, esfera, tipo e UF, clique nas barras para filtrar e busca de órgão, e funciona sem internet.

Como o painel foi pensado

  1. Uma pergunta por seção

    Cada seção responde a uma pergunta de decisão, e não só exibe números.

  2. Cor de alerta

    A cor diz onde olhar primeiro: verde abaixo da média, amarelo até o dobro e vermelho acima do dobro.

  3. Mediana e percentil 90

    A mediana mostra o caso típico, e o percentil 90 mostra quem espera demais.

  4. Pendências com idade

    O painel mostra há quanto tempo cada pendência está vencida, e não só a contagem.

  5. Denominador à vista

    Toda proporção traz o denominador, e a data de corte fica visível.

  6. Ranking por taxa

    Os órgãos são ordenados por taxa, com volume mínimo, para não punir quem recebe mais manifestações.

Limitações

  • O campo de dias de atraso do arquivo só vem preenchido para manifestações sem resposta. Por isso o atraso foi calculado pelas datas.
  • Nos meses mais recentes há mais manifestações em aberto, então a mediana e o percentil 90 de dias ficam um pouco abaixo do real.
  • A pesquisa de satisfação é opcional: no período, menos de 4% das manifestações têm resposta, com peso maior de quem ficou insatisfeito.
  • Os campos de perfil do manifestante têm mais de 80% de vazios e ficaram fora.
  • A base inclui estados e municípios que aderiram ao Fala.BR, e não todos os órgãos do país.