1.029 tabelas públicas brasileiras — de instituições oficiais (RAIS, SIM, TSE, CGU, IBGE, INEP, CNES e outras), somadas a mais de 77 fontes raspadas de forma independente — lidas a partir de perguntas investigativas, não de uma vitrine técnica: o que esses registros, cruzados, revelam sobre desigualdade, poder, economia, saúde e violência no Brasil?
rodado.xyz — os 43 temas publicados · English
Cada um dos 43 temas deste projeto parte de dados administrativos reais — vínculos de emprego, óbitos, contratos públicos, resultados eleitorais, matrículas escolares — e pergunta o que eles escondem quando cruzados por raça, classe, gênero, território e ocupação. Não é uma pesquisa de opinião nem um modelo teórico: é o retrato que o próprio Estado brasileiro produziu sobre si mesmo, através dos registros que gera para administrar a população, e que raramente são lidos lado a lado.
O projeto nasce de uma aposta simples: que dados administrativos brutos, quando cruzados com cuidado, contam uma história mais direta sobre desigualdade do que a maior parte do debate público — e que essa história vale a pena ser escrita em tom investigativo, não hedgeado.
Cada tema no site publicado combina uma narrativa em prosa com as tabelas de evidência por trás dela — para que qualquer afirmação possa ser conferida, não só lida.
As 1.029 tabelas cobrem 43 domínios temáticos, cada um documentado em overview/ e publicado como uma página própria no site. Essas narrativas servem tanto de leitura para o público quanto de contexto para o assistente que consulta o espelho.
Os dados vêm de instituições públicas brasileiras — ministérios, tribunais, institutos e agências reguladoras — reunidos em um espelho próprio em Parquet, sem precisar importar nada localmente. Mais de 77 dessas fontes são raspadas de forma independente, cobrindo o que não está disponível em nenhum repositório consolidado (sanções nacionais e internacionais, SICAF, SINAN Violência, reclamações de consumidor e mais). No total, 1.029 tabelas (897 GB em Parquet+zstd) são consultadas sob demanda via DuckDB, o que permite cruzar bases de ministérios, tribunais, institutos e fontes independentes numa única consulta SQL.
O espelho não tem chave estrangeira. O que liga uma tabela à outra são colunas que significam a mesma coisa sob nomes diferentes — o código do município é id_municipio numa fonte, codIBGE noutra, MUNIC numa terceira, e às vezes chega como número, com o zero à esquerda já perdido.
Esse conhecimento fica em três arquivos, versionados junto com o resto:
docs/context/bridges.yaml— as 54 pontes entre colunas equivalentes, cada uma com a expressão SQL que converte uma ponta na outra e o registro do que ela casou quando foi conferida. Junto vão as colunas que parecem chave e não são:valoraparece em 91 tabelas de 56 datasets significando coisas diferentes, e juntar por ele produz um resultado grande, plausível e errado.docs/context/metrics.yaml— a definição única de cada número recorrente (população, PIB per capita, saldo do CAGED), com a expressão, a unidade e o valor conferido. Sem isso cada análise re-deriva o mesmo cálculo e as diferenças só aparecem quando dois textos publicados discordam.docs/context/hierarchies.yaml— como subir de um código para o nível acima. CNAE e CID-10 são códigos prefixais: a divisão sai de umsubstr()da subclasse, sem join nenhum.
Os três são servidos ao assistente como ferramentas, não como texto para ele interpretar: pedir a ligação entre duas tabelas devolve a cláusula ON pronta, com o aviso de que uma delas devolve toda linha duas vezes, se for o caso.
Deanonimizacao.md— as nove tabelas que hoje trazem o nome junto do CNPJ ou do CPF, e as quatro maneiras de tirar delas um resultado errado sem perceber.