Seis censos, de 1970 a 2022, cada um desenhado na malha do seu próprio ano. Esta página conta como os números foram construídos, o que foi verificado, e — principalmente — onde estão os buracos. A página de fórmulas mostra a conta de cada indicador, variável por variável; esta aqui trata do que atravessa todos eles.
Fontes
| censo | de onde vem | como é lido |
|---|---|---|
| 2022 | microdados de área de ponderação, IBGE | DuckDB direto no parquet, na máquina |
| 1970–2010 | microdados da amostra, IBGE, pelo Base dos Dados | BigQuery, formato longo |
| 1980, parte | microdado original em SPSS (Cesit/Unicamp), 26 estados convertidos em parquet | os 53 municípios que a extração não localiza, e 24 indicadores que ela não tem como produzir |
Os cinco censos de 1970 a 2010 são lidos do espelho que a Base dos Dados
mantém no BigQuery (br_ibge_censo_demografico). O dado é o
do IBGE; o que a Base dos Dados faz é deixá-lo consultável em SQL, sem
baixar nada — o que permitiu extrair seis censos de uma vez, e voltar a
eles a cada correção sem refazer nenhum download. As armadilhas de
universo e de valor sentinela descritas abaixo são do microdado original,
e não da intermediação.
Toda proporção é ponderada pelo peso amostral
(P0111 em 2022, peso_amostral, v054,
v604 conforme o ano), nunca contagem de linha. Média e razão
saem de soma de numerador e denominador, e a fórmula é reaplicada depois da
agregação — somar percentuais municipais daria peso igual a São Paulo e a
Borá.
Mediana é a exceção. A mediana de um estado não sai das
medianas dos seus municípios, então ela é calculada direto do microdado em
cada nível geográfico, por soma acumulada de peso. Nunca por
PERCENTILE_CONT, que ignora o peso amostral e devolveria a
mediana das linhas, não das pessoas.
A armadilha principal: universo restrito
Muita variável do Censo só é perguntada a um subconjunto da população. Usar “não nulo” como denominador produz então um número plausível e errado, e nenhum erro é levantado. Isto já derrubou dez indicadores neste projeto:
| variável | o que dava | denominador certo |
|---|---|---|
P0600 migração (2022) | 65,4% de migrantes | população de 5 anos ou mais |
P1140 trabalho (2022) | 100,0% trabalhando fora | total de ocupados |
P0260 quilombola (2022) | 7,8%, doze vezes o publicado | população total |
v0220 internet (2010) | 80,2% com internet | v0219, domicílios permanentes |
v0626 migração (2010) | 1,5% de migrantes | comparação de código em v6264 |
v3211 residência anterior (1991) | 43,4% de migrantes | v0318 < 5 |
Duas variantes não são “não nulo”, mas dão no mesmo:
- Contribuinte automático.
v0650(2010) ev0450(2000) não são perguntadas a quem tem carteira assinada, porque essa pessoa contribui por definição. Contar só quem respondeu dava 22,6% e 18,7% de contribuição previdenciária. O numerador passou a incluir a posição na ocupação. - O oposto.
v0324(série que frequenta, 1991) nunca é nula: quem não estuda aparece com o grau em zero, não em NULL. A frequência escolar saía 100,00%.
Valor sentinela é uma terceira forma, e a mais
traiçoeira porque não deixa rastro de cobertura. v3561
(rendimento, 1991) é preenchida para todos, mas o código de “sem
declaração” é um número no meio da escala: a média nacional saiu em 1,7
milhão de cruzeiros. O detalhe que custou anos de dado é que ele é
“todos os noves” na largura do campo daquela variável, e
a largura muda dentro do mesmo censo — 8 dígitos aqui, 10 no rendimento
domiciliar. Filtrar por uma largura só deixa o resto passar. Está contado
em Rendimento em reais de 2026.
Sentinela não se descobre olhando o máximo: se descobre contando quantos registros caem em cada largura de all-nines. Um pico é resposta; um valor solto é lixo de digitação.
Antes de escrever qualquer denominador, medir a cobertura. Cobertura muito abaixo de 100% num indicador que deveria valer para todos é o sinal — e cobertura de exatamente 100% num quesito que só faz sentido para parte da população é o sinal contrário, do mesmo defeito.
Como se valida
Nenhum dos erros acima levanta exceção. Todos produzem percentual plausível. Só dois testes os pegam:
- Bater o agregado nacional contra o publicado pelo IBGE. A célula de salvamento da extração imprime faixas esperadas para dezenas de indicadores e marca o que sai fora.
- Pôr o indicador lado a lado nos censos em que existe. Com seis censos, a série é o teste mais barato, e pega o que a faixa de um ano só deixa passar. Foi assim que a previdência de 2000 caiu (18,7% entre 54,5 e 60,5) e que a frequência escolar de 1980 caiu — 62,7% contra 62,2% de 1970, quando a matrícula no 1º grau tinha ido de 16 para 22,6 milhões.
Onde há duas fontes para o mesmo dado, elas são comparadas. Os 52 municípios de 1980 recuperados do SPSS só foram gravados depois de os 171 municípios de Goiás que existem nas duas fontes baterem com diferença 0,000000 em 40 indicadores. E as fórmulas em R não foram copiadas à mão do SQL: são geradas dele, porque duas cópias da mesma conta divergem na primeira correção e as duas continuam parecendo certas.
Um erro que só a comparação entre indicadores pegou
Em 1970, moradores por domicílio e tamanho médio
da família estavam trocados. O primeiro saía da variável
v005 (“Total de pessoas”) do registro de domicílio e dava 4,96;
o segundo saía da contagem de pessoas por id_domicilio e dava
5,12. Os dois números são plausíveis, nenhum levanta exceção, e cada um
isolado passa em qualquer conferência contra o publicado.
O que denunciou foi pôr os dois lado a lado: a família não pode ser
maior que o domicílio que a contém. Juntando as duas tabelas do
censo pela chave (município, domicílio), v005
revelou-se igual à contagem de moradores em 95,04% dos
domicílios e menor em 4,95% — exatamente a fração que tem
mais de uma família (1,053 em média). v005 conta a
família, e coincide com o domicílio nos 95% em que os dois são a
mesma coisa. Foi por isso que a troca sobreviveu tanto tempo.
A correção não usa v005 para nenhum dos dois: a
tabela de pessoa tem id_domicilio e
numero_familia, então as duas unidades saem da mesma varredura
com agrupamentos diferentes. E o teste que fecha é de consistência interna,
não contra fonte externa — a razão entre os dois é o número de
famílias por domicílio, e ela deu 1,054 contra os 1,053 medidos por
caminho independente.
Geografia: cada censo na malha do seu ano
Eram 3.952 municípios em 1970 e são 5.570 hoje. Mato Grosso do Sul é de 1977, Tocantins de 1988, e Rondônia, Roraima e Amapá eram territórios. Cada censo é desenhado na malha do seu ano, e o contorno estadual troca junto com o dado.
A extração grava o código moderno do município mesmo nos censos antigos; a malha grava o da época. A ponte vai por nome, aceitando só correspondência única dentro do ano — um palpite errado aqui pinta o polígono errado e não levanta exceção. Um caso o nome não resolve, porque ele próprio mudou: em 1970 o município do Rio de Janeiro era o Estado da Guanabara, com código e nome próprios.
Os buracos de 1970 e 1980
A região que hoje é Tocantins e a que hoje é Mato Grosso do Sul ficavam cinzas. A causa não é a ponte de código — onde há dado, os códigos batem dos dois lados. É dado ausente: o arquivo traz essas pessoas sem código de município, então elas entram no total do estado da época e em polígono nenhum.
| ano | malha sem dado | população órfã | situação |
|---|---|---|---|
| 1970 | 105 municípios | 826 mil | resolvido pelos códigos da época |
| 1980 | 54 municípios | 740 mil | resolvido pelo microdado original |
Em 1970 há duas causas, e só a segunda é dado ausente. A
primeira é o dígito verificador. Campo Grande aparece no dado como
5102702 e na malha como 5102705: os seis
primeiros dígitos são os mesmos, o sétimo — que é só o verificador — não.
A ponte por nome não pega esses casos porque 5102702, lido
pela divisão territorial de hoje, é Canarana, criada em
1979, que não pode ter dado de 1970. Quem confirma o pareamento é a
população: 140.233 pessoas, que é Campo Grande de 1970 no publicado. São
27 municípios do futuro Mato Grosso do Sul, entre eles Corumbá, Dourados e
Três Lagoas. Os seis primeiros dígitos identificam município por
construção, e não há uma colisão sequer nas malhas de 1970 a 2010 — ainda
assim a regra só aceita quando o prefixo é único dos dois lados e o
polígono está livre.
A segunda: os registros órfãos ainda carregam a geografia da época: UF, microrregião e o código do município como ele era então. Essa tripla identifica município um para um — zero ambiguidades nos 3.907 pares em que há código moderno para conferir. O que ela não traz é o nome, e sem nome não há ponte para a malha.
A tradução veio de duas fontes e de uma regularidade. A Divisão Territorial de 1970 do Centro-Oeste nomeia os 84 municípios de Mato Grosso e resolve esse estado direto. Goiás não está naquela divisão, mas o código do município é o posto alfabético dentro da microrregião — e isso não é suposição: nos 84 municípios de Mato Grosso, onde há as duas informações, o posto reproduz o código em todos. Os nomes de Goiás vêm de 1980, onde os municípios existem, e as microrregiões de 1970 e 1980 têm os mesmos tamanhos (12, 7, 7, 15, 10 e 1).
O teste que autoriza o encaixe: duas dessas microrregiões cruzam a futura divisa TO/GO, então parte dos seus municípios tem código moderno e serve de gabarito. São 14 âncoras, e as 14 caem no posto certo. Se uma saísse do lugar, o script pararia sem gravar nada. Com isso 73 dos 74 municípios órfãos voltaram ao mapa; o que sobra é um no Ceará, para o qual não há divisão territorial de 1970 que o nomeie.
Em 1980 o microdado distribuído não tem como localizá-los: são 178.636 linhas
com id_municipio nulo e nenhuma outra coluna geográfica — nem
identificador de domicílio, então nem a transferência domicílio → pessoa
seria possível. O microdado original em SPSS tem: a variável
v5 corresponde aos quatro primeiros dígitos do código do
município (o código sem o dígito verificador), e 223 de 223 municípios de
Goiás casam. Com isso os 52 municípios do futuro Tocantins voltaram ao
mapa, e a população de 1980 subiu de 118,3 para 119,0 milhões,
contra 119,003 publicados.
Este defeito ficou invisível por muito tempo porque o pipeline só contava dado sem geometria, nunca geometria sem dado — e o defeito mora do segundo lado. Polígono sem dado fica cinza exatamente como polígono com dado faltando. Hoje o relatório sai nos dois sentidos a cada rodada.
A malha de áreas de ponderação de 2000
O Censo 2000 tem área de ponderação no microdado, mas o geobr só publica essa malha para 2010 e 2022. Ela foi construída aqui, a partir da composição setor censitário → área de ponderação que o IBGE distribui com os arquivos auxiliares do censo: 215.811 setores em 9.336 áreas, cobrindo os mesmos 5.507 municípios que a extração produz.
O problema: a malha de setores de 2000 é incompleta
A malha de setores urbanos de 2000 do IBGE só existe para municípios com mais de 25 mil habitantes — e, mesmo neles, é parcial. Isso foi verificado na fonte, não na cópia: o arquivo que o próprio IBGE distribui para Angra dos Reis tem 41 polígonos, e o censo de 2000 registra 181 setores naquele município. Os códigos estão no mesmo formato de 15 dígitos dos dois lados, então não é falha de junção. Somando urbano e rural, faltam 22.431 dos 215.811 setores.
Procuramos alternativa e não há. O repositório consolidado que circula no GitHub é a mesma coleção de arquivos do IBGE, e o CEM/USP só publica áreas de ponderação de 2010. A discussão pública sobre isso está na issue 152 do geobr, aberta desde 2020: o mantenedor do pacote registra que “existem áreas de ponderação para o censo 2000, mas não acho os shapes em lugar algum”, e que “os setores censitários de 2000 têm vários problemas”. Em novembro de 2023 o IBGE estava fazendo testes internos, sem prazo. O método de reconstrução sugerido lá — unir os setores pelos códigos das áreas e dissolver — é o mesmo usado aqui; quem o aplicou trabalhou só na Região Metropolitana de São Paulo, onde a cobertura urbana é a melhor do país, e por isso a lacuna nacional não aparece naquele relato.
Como a malha foi montada, em ordem de confiança
| origem | áreas | o que é |
|---|---|---|
| município inteiro | 5.023 | 5.023 dos 5.507 municípios têm uma área só, e nesses a área é o município. Vem da malha municipal de 2000, que é completa. |
| dissolução de setores | 4.057 | áreas cujos setores existem todos na malha. |
| subtração | 167 | município onde falta uma área só: ela é o que sobra depois de tirar as irmãs. Vale apenas quando falta uma — com duas, não há como saber qual pedaço é de qual. |
| dissolução parcial + preenchimento | 89 | áreas com cobertura incompleta (82% dos setores, em média). São dissolvidas do que existe, e o vazio que sobra no município é atribuído à área vizinha com maior fronteira compartilhada. |
| total | 9.336 | todas as áreas de ponderação de 2000 têm polígono. |
As 89 do último grupo são aproximação, e é honesto dizer isso. O pedaço não coberto vai para uma área que fisicamente encosta nele — não é interpolação arbitrária — mas a divisa interna entre essas áreas não é a divisa oficial do IBGE. Elas estão em 38 municípios, concentrados em Pernambuco, Bahia, Rio de Janeiro e São Paulo. O preenchimento redistribui, nesses 38 municípios, 1,0% da área municipal em média. A alternativa era deixar 89 buracos no mapa, indistinguíveis de dado faltando.
Limpeza: 26.148 fiapos e 80.878 buracos
Toda operação de diferença entre polígonos que não encostam exatamente deixa lixo, e a malha de 2000 não encosta exatamente em lugar nenhum. A subtração devolvia, junto com a área de verdade, um filete ao longo de cada divisa interna das áreas irmãs: mediana de 75 pedaços soltos por área, máximo de 1.432. E dissolver setores que não ladrilham deixa vazios dentro do polígono. No mapa os dois viram o mesmo risquinho.
Um passo de limpeza apaga pedaço solto e tapa buraco quando ele é ao mesmo tempo insignificante em proporção (menos de 1% da parte maior) e minúsculo em termos absolutos (menos de 1 km²). As duas condições juntas são necessárias: só a primeira apagaria ilha de verdade numa área grande, só a segunda apagaria ilha pequena numa área pequena. O resultado leva a mediana de pedaços por área de 75 para 1, e o máximo de 1.432 para 67 — a mesma ordem da malha oficial de 2010.
A malha é conferida antes de ser usada: a soma das áreas de ponderação dividida pela área do município dá 1,000 na mediana, com 30 de 5.508 municípios fora da faixa de 0,95 a 1,05. Nenhuma área sai com geometria inválida ou vazia.
E o dado é conferido contra ela, que é um teste diferente: somar a população das áreas de ponderação de um município tem de devolver o município. Devolve em 5.507 de 5.507, com razão 1,0000 do mínimo ao máximo — 169,9 milhões dos dois lados. É o teste que pega junção errada, porque um código casado com a área errada continua produzindo mapa bonito. As 9.336 áreas casaram pelo código inteiro de 13 dígitos, sem precisar do remendo que 2010 exige (lá o código do microdado diverge do da malha em 464 áreas), o que era de esperar: a malha de 2000 foi construída da composição do próprio IBGE, então os dois lados falam o mesmo código.
Rendimento em reais de 2026
Os oito indicadores de rendimento saíam do mapa escritos R$ e nenhum deles estava em reais de hoje: cada censo media dinheiro na moeda da sua época. O mapa de 1991 era o pior caso — chegava a mostrar “R$ 3,28”, porque ali o número nem em moeda estava.
Todos passaram a sair em reais de janeiro de 2026.
| censo | unidade original | fator |
|---|---|---|
| 1980 | cruzeiro de 1980 | 0,260827 |
| 1991 | cruzeiro de setembro de 1991 | 0,022293 |
| 2000 | real de 2000 | 4,591044 |
| 2010 | real de 2010 | 2,365582 |
| 2022 | real de 2022 | 1,146734 |
A fonte é a nota técnica de Corseuil e Foguel, Uma sugestão de deflatores para rendas obtidas a partir de algumas pesquisas domiciliares do IBGE (IPEA/MTE, Mercado de Trabalho n. 19, 2002), cuja Tabela 3 dá deflator e conversor de moeda para os censos de 1960 a 2000, com janeiro de 2002 igual a 1. Ela para ali, e faltam 2010, 2022 e a ponte até 2026 — mas o que ela é, por dentro, é o INPC do IBGE centrado no dia 1 por média geométrica de meses consecutivos, e isso se reconstrói da SIDRA.
A reconstrução bate com a Tabela 1 da nota em todos os meses menos o próprio mês-base, onde difere por um fator constante de 1,005334: a nota é de 2002 e usou o INPC preliminar de janeiro daquele ano, revisado depois. Constante, não crescente — a variação mês a mês é idêntica. Por isso a cadeia fecha em dezembro de 2001, onde as duas séries concordam, e não no mês-base da nota.
Os conversores de moeda foram conferidos por fora, contra o salário
mínimo nominal da época: maio de 1980 devolve Cr$ 4.149,60,
exatamente o valor que o pipeline de 1980 já deduz do microdado pelo teto
da classe 5 da v681, por um caminho inteiramente diferente. E
o salário mínimo deflacionado desenha a curva conhecida: R$ 1.069 em
1970, 1.082 em 1980, 693 em 2000, 1.206 em 2010, 1.390 em 2022.
1991: uma variável condenada por engano
Por muito tempo 1991 não teve renda em dinheiro aqui. A
v3561 (rendimento total) dava média nacional de
1,7 milhão de cruzeiros, e foi descartada como valor
sentinela irrecuperável; no lugar dela entrou o ponto médio das
faixas de salário mínimo da v3562. Estava errado, e o erro
era nosso.
O sentinela do IBGE é sempre “todos os noves” — mas com a largura do campo de cada variável, que muda dentro do mesmo censo:
| variável | sentinela | dígitos | frequência |
|---|---|---|---|
v2012 rendimento domiciliar | 9999999999 | 10 | 2,68% |
v3561 rendimento total da pessoa | 99999999 | 8 | 0,99% |
v0356 ocupação principal | 9999999 | 7 | 1,76% |
Um filtro calibrado na largura do domicílio deixa passar o da pessoa. Não era “código de ignorado no meio dos valores”: era o código de topo de um campo mais estreito. E 0,0099 × 10⁸ dá justamente a ordem do 1,7 milhão que nos fez desistir da variável — a conta fecha.
O ponto médio da faixa superestimava a renda em 12,6%, porque dentro de cada faixa a distribuição é assimétrica à direita e a faixa de topo é aberta. Isso não era invisível: a razão de rendimento entre sexos saía 0,663 em 1991, acima dos 0,661 de 2000, quebrando a única série do site que sobe de forma monótona em cinco censos. Com o valor no lugar da faixa ela vai a 0,632 e a série volta a ser 0,526 → 0,632 → 0,661 → 0,683 → 0,749.
Com a troca, 1991 deixou de precisar do salário mínimo para virar
dinheiro — a maior suposição da deflação desapareceu —
e ganhou sete indicadores que não existiam: rendimento domiciliar per
capita (média e mediana, da v2012 sobre os moradores, com
97,4% de cobertura), rendimento do trabalho, rendimento de todas as
fontes, e “sem rendimento algum”, que só é separável de “não perguntado”
quando existe um zero declarado. A cobertura da v3561 entre
os de 14 anos ou mais é de 98,96%, e o resultado se encaixa sozinho na
série: 40,8% em 1980, 36,8% em 1991, 36,4% em 2000, 27,8% em 2010, 24,8%
em 2022.
O que apareceu depois da correção é a recessão do início dos anos 90, que a superestimação da faixa vinha disfarçando: 1991 é agora um vale em todas as colunas de renda.
Deflacionar é operação de nível, não de forma: as razões de rendimento por sexo e por cor não podem se mexer, porque numerador e denominador levam o mesmo fator. São elas o teste de que só o nível mudou. Em 1991 elas melhoraram: guardar renda como “2,15 salários mínimos”, com duas casas, custava 0,2% de precisão que a divisão amplificava. Medido contra o valor exato do formato longo, o erro médio da razão em 1991 caiu de 0,0018 para 0,00025 — sete vezes menor.
Ficam de fora, de propósito: rendimento em salários mínimos (já é relativo, e mede outra coisa — distância do piso legal, que sobe quando o mínimo perde valor real) e domicílios de baixa renda (percentual abaixo de meio mínimo do próprio censo). 1970 continua sem indicador monetário — mas não pelo motivo que este texto dizia antes.
1970, e a mesma lição outra vez. A
v041 foi dada como inutilizável porque mediana, percentil 90
e percentil 99 são todos 9999. São percentis
incondicionais, e a conclusão não se sustenta: cruzando com a
v047 (ocupação na última semana) no microdado original do
Cesit, o 9999 está em 99,0% de quem não foi perguntado e
em apenas 14,4% dos ocupados. Ele não é “ignorado”, é
“não se aplica” — e restrita ao universo certo a variável descreve uma
renda plausível de 1970. Medir no universo errado fez uma variável boa
parecer perdida, que é a armadilha de universo restrito virada do
avesso.
Ela não entrou ainda porque a medição foi feita em um estado só, e porque 1970 exige converter os arquivos SPSS do Cesit como foi feito com 1980. Fica registrado como dívida, não como impossibilidade.
Escala de cor
Os cortes não são quantis. Quantil dá rampa contínua sem corte legível, e com distribuição assimétrica o mapa parece escala logarítmica. O classificador olha primeiro se a variável é discreta, separa massa pontual (o zero de “sem instrução”, por exemplo), e sobre o núcleo robusto escolhe passos redondos — números que o leitor soma de cabeça. Ponta rala vira classe aberta: “menos de X”, “X ou mais”.
A legenda mostra, ao lado de cada classe, quanta gente cai nela — não quantas unidades. São coisas muito diferentes: metade dos municípios do Brasil soma menos de 10% da população.
A escala pode ser calculada sobre a série inteira, e não só sobre o ano visível. Sem isso a mesma cor quer dizer coisas diferentes em 1991 e em 2022, e a comparação visual entre mapas mente.
Piso de amostra. Unidade com denominador pequeno demais fica fora do conjunto de valores — não recebe cor e, principalmente, não entra no cálculo dos cortes. Deixar entrar faria um punhado de unidades ruidosas dominarem a rampa.
Bordas, e por que o padrão é não ter
Com 5.570 municípios no Brasil inteiro, a linha de divisa ocupa mais pixel que o polígono e o mapa vira uma grade cinza: o que se lê é a malha, não o dado. É o mesmo problema que no ggplot se resolve tirando a borda do cinza fixo. Há três opções:
- sem borda — o padrão. As feições encostam sem costura e as manchas voltam a ser o que se vê.
- tom do preenchimento — cada unidade contornada por uma versão mais escura dela mesma: a divisa volta sem a grade. A primeira versão disto usava a cor exata do preenchimento e era indistinguível de “sem borda” — uma borda da cor do próprio polígono é invisível contra ele. Medido por diferença de pixel, as três opções agora se separam: 12,3%, 19,4% e 18,8% da imagem, no Brasil inteiro.
- de contraste — a linha escura fixa, que só compensa no zoom de município.
O outro padrão de arranque é a escala comparável entre censos. Comparar entre censos é a razão de existir deste mapa; deixar o padrão em “deste censo” fazia a mesma cor querer dizer coisas diferentes em 1991 e em 2022 até alguém descobrir o seletor.
A fonte
Todo o texto está em Atkinson Hyperlegible, do Braille
Institute of America, desenhada para baixa visão: as letras que costumam se
confundir — I l 1, O 0, b d p q —
recebem formas deliberadamente distintas. Os códigos de variável usam a
versão monoespaçada da mesma família, que é onde confundir 0
com O num nome como D0111 custa mais caro. É a
versão variável, e não a estática de dois pesos, porque o site usa pesos
intermediários que o navegador teria de falsificar engrossando o traço —
exatamente o que uma fonte de legibilidade não pode sofrer.
Recorte e figura
Shift+clique recorta uma unidade e desenha só as subdivisões dela: no nível Estado acende os municípios daquele estado, e um segundo shift+clique acende as áreas de ponderação do município — nos censos que as têm, que são 2000 em diante. Esc sobe um nível de cada vez. Trocar de censo mantém o recorte, que é justamente o uso: a mesma unidade em vários anos. Quando a unidade não existe na malha do censo pedido — município criado depois, ou área de ponderação num ano que não tem — o recorte cai e o ano vale assim mesmo.
Isto era um modo, com tela própria: entrar escondia a lista de indicadores, o painel de valores e metade do cabeçalho, mesmo para quem só queria ver os municípios de um estado. Recortar é navegação, não uma tela à parte — e ler um valor dentro do recorte, que o modo impedia, é o que mais se quer fazer ali.
Com o recorte aplicado, dois controles a mais aparecem na barra do mapa. Mostrar escolhe em que subdivisão desenhar, onde há mais de uma. Cortes decide sobre quais unidades os cortes de cor são calculados — as do recorte ou as do país inteiro — e é eixo separado da Escala, que decide sobre quais censos. As quatro combinações fazem sentido; a mais útil numa figura é recorte + série, a mesma unidade ao longo dos censos com a escala apertada nela.
Vários censos lado a lado
O botão PNG não baixa direto: abre a montagem da
figura. Título e fonte aparecem sobre o mapa, editáveis no lugar, e um
painel flutuante traz o canto da legenda, o mapa de fundo e a lista de
censos. Marcando dois ou mais censos, a figura sai como
uma grade — um facet_wrap.
Duas coisas são iguais em todos os painéis, e é o que faz a grade valer alguma coisa:
- O enquadramento. Cada censo tem a extensão da sua própria malha, e um município desmembrado depois muda de retângulo. A grade usa a união dos retângulos dos censos escolhidos e recorta todos os painéis no mesmo lugar em pixel. Deixar cada painel se enquadrar sozinho faria a figura comparar recortes diferentes.
- Os cortes de cor, calculados sobre esses censos juntos, quaisquer que sejam os controles da barra. Usar todos os censos daria classes que nenhum painel alcança; usar só o da tela quebraria a comparação, que é a razão de existir da grade.
Censo em que a unidade não existe entra como painel vazio rotulado, e não é pulado: buraco num facet é informação, e pular desalinharia a grade. A barra de população da legenda é de um censo — o último painel — e a legenda diz qual, porque essa é a única parte dela que não vale para a figura inteira.
Pirâmide etária
Dezenove faixas de cinco anos por sexo, em percentual da população da unidade. Fica num arquivo separado dos indicadores, e não numa coluna deles, porque o padrão de acesso é o oposto: o mapa precisa de todas as unidades para um indicador, a pirâmide precisa de uma unidade no clique.
Cada linha é o código mais 76 caracteres — dois em base64 por valor, em passo de 0,05 ponto percentual. A concatenação quase não economiza espaço (gzip já come as vírgulas); o que economiza é precisão, e aí o limite é do dado: numa área de ponderação com ~1.600 amostrados, o erro padrão de uma faixa de 5% é 0,54 ponto. Guardar 0,005 seria gravar cem vezes mais precisão do que a estimativa tem. O que a concatenação resolve é outra coisa: a linha entra no cache sem conversão nenhuma e só é fatiada no clique.
O que está em quarentena
Indicador que a extração produziu mas que não bateu com o publicado fica fora do mapa até ser corrigido. O dado continua no arquivo; só não é oferecido. A fórmula errada fica visível na página de fórmulas, com a explicação do que se sabe.
- Frequência escolar de 6 a 14 e de 15 a 17 anos, em 1980. 62,7% contra 62,2% em 1970 — praticamente igual, quando entre os dois censos a matrícula no 1º grau foi de ~16 para ~22,6 milhões com a população de 7 a 14 anos crescendo ~20%. 1970 usa uma pergunta direta de sim ou não; 1980 deriva do grau que frequenta, e alguma coisa nessa derivação perde cerca de nove pontos.
Um indicador foi removido de vez, e não posto em quarentena: alfabetização sobre “quem respondeu”. O denominador não é o mesmo universo entre censos — em 2000 a variável vem preenchida até para bebês, todos contados como não alfabetizados, e em 2010 ela é nula abaixo de cinco anos. Isso sozinho produzia um salto de 76,2% para 89,5% que não aconteceu. Alfabetização de 15 anos ou mais cobre os cinco censos e é comparável.
O que este mapa não é
Desenhar cada censo na malha do seu ano é correto. Comparar “o mesmo município” ao longo do tempo não é: eram 3.952 municípios em 1970 contra 5.570 hoje, e os que já existiam mudaram de limite. Série temporal municipal exige Áreas Mínimas Comparáveis, que é outro exercício e não está feito. Enquanto não estiver, o produto é “cada censo no seu recorte”, não “evolução do município X”.
As áreas de ponderação de 2010 e 2022 são incompatíveis entre si: 11.016 contra 14.406 unidades, formatos de código diferentes, zero códigos em comum. Cada uma serve de recorte fino isolado, não de série.
Rendimento em valor absoluto passou a se comparar entre censos, e é a mudança mais recente aqui: os oito indicadores monetários saem em reais de janeiro de 2026. O que continua não se comparando é o universo de cada pergunta — quem “tem rendimento” em 1980 e em 2022 não é definido do mesmo jeito. A série mostra tendência, não diferença de décimo.
1970 não tem cor ou raça — a pergunta não foi feita naquele censo.
Esta página é escrita à mão e descreve decisões. A página de fórmulas é gerada do código que roda: se a fórmula lá estiver errada, o número no mapa está errado do mesmo jeito — é esse o ponto.