# Join Key Reference This file documents the most important columns for joining tables across datasets. Generated by `schema_compiler.py` from `schemas.json`. ## Geographic Keys ### `cep` — 14 tables Brazilian postal code (CEP). br_bd_diretorios_brasil.cep has the reference mapping. **Sample tables (10 of 14):** `br_bd_diretorios_brasil.cep`, `br_bd_diretorios_brasil.empresa`, `br_cvm_administradores_carteira.pessoa_juridica`, `br_ibge_censo_2022.cadastro_enderecos`, `br_inep_censo_educacao_superior.ies`, `br_me_cnpj.estabelecimentos`, `br_me_rais.microdados_estabelecimentos`, `br_mg_belohorizonte_smfa_iptu.iptu`, `br_ms_cnes.estabelecimento`, `br_rf_cafir.imoveis_rurais` ### `id_distrito` — 11 tables IBGE district code. **Sample tables (10 of 11):** `br_bd_diretorios_brasil.distrito_1991`, `br_bd_diretorios_brasil.distrito_2000`, `br_bd_diretorios_brasil.distrito_2010`, `br_bd_diretorios_brasil.setor_censitario_2010`, `br_bd_diretorios_brasil.setor_censitario_2022`, `br_geobr_mapas.limite_vizinhanca`, `br_geobr_mapas.setor_censitario_2010`, `br_ibge_censo_2022.cadastro_enderecos`, `br_ibge_censo_demografico.microdados_domicilio_1980`, `br_ibge_censo_demografico.microdados_domicilio_2000` ### `id_mesorregiao` — 7 tables IBGE mesoregion code. **Sample tables (7 of 7):** `br_bd_diretorios_brasil.municipio`, `br_bd_diretorios_brasil.setor_censitario_2022`, `br_geobr_mapas.mesorregiao`, `br_ibge_censo_demografico.microdados_domicilio_2000`, `br_ibge_censo_demografico.microdados_domicilio_2010`, `br_ibge_censo_demografico.microdados_pessoa_2000`, `br_ibge_censo_demografico.microdados_pessoa_2010` ### `id_microrregiao` — 7 tables IBGE microregion code. **Sample tables (7 of 7):** `br_bd_diretorios_brasil.municipio`, `br_bd_diretorios_brasil.setor_censitario_2022`, `br_geobr_mapas.microrregiao`, `br_ibge_censo_demografico.microdados_domicilio_2000`, `br_ibge_censo_demografico.microdados_domicilio_2010`, `br_ibge_censo_demografico.microdados_pessoa_2000`, `br_ibge_censo_demografico.microdados_pessoa_2010` ### `id_municipio` — 195 tables 7-digit IBGE municipality code stored as VARCHAR. Present in 195+ tables. br_bd_diretorios_brasil.municipio is the canonical reference table. **Sample tables (10 of 195):** `br_anatel_banda_larga_fixa.densidade_municipio`, `br_anatel_banda_larga_fixa.microdados`, `br_anatel_indice_brasileiro_conectividade.municipio`, `br_anp_precos_combustiveis.microdados`, `br_ans_beneficiario.informacao_consolidada`, `br_bcb_estban.agencia`, `br_bcb_estban.municipio`, `br_bcb_sicor.recurso_publico_complemento_operacao`, `br_bd_diretorios_brasil.cep`, `br_bd_diretorios_brasil.distrito_1991` **Example JOIN:** ```sql SELECT m.nome AS municipio, m.sigla_uf, t.densidade FROM br_anatel_banda_larga_fixa.densidade_municipio t JOIN br_bd_diretorios_brasil.municipio m ON t.id_municipio = m.id_municipio WHERE t.ano = 2022 ORDER BY t.densidade DESC LIMIT 20 ``` ### `id_municipio_tse` — 23 tables TSE (Electoral Court) municipality code — used in electoral datasets. **Sample tables (10 of 23):** `br_bd_diretorios_brasil.municipio`, `br_tse_eleicoes.candidatos`, `br_tse_eleicoes.despesas_candidato`, `br_tse_eleicoes.detalhes_votacao_municipio`, `br_tse_eleicoes.detalhes_votacao_municipio_zona`, `br_tse_eleicoes.detalhes_votacao_secao`, `br_tse_eleicoes.partidos`, `br_tse_eleicoes.perfil_eleitorado_local_votacao`, `br_tse_eleicoes.perfil_eleitorado_municipio_zona`, `br_tse_eleicoes.perfil_eleitorado_secao` ### `id_regiao` — 13 tables IBGE macro-region code (1–5). **Sample tables (10 of 13):** `br_bd_diretorios_brasil.setor_censitario_2022`, `br_geobr_mapas.regiao`, `br_geobr_mapas.sede_municipal`, `br_ibge_censo_demografico.microdados_domicilio_2000`, `br_ibge_censo_demografico.microdados_domicilio_2010`, `br_ibge_censo_demografico.microdados_pessoa_2010`, `br_ibge_pnad.microdados_compatibilizados_domicilio`, `br_ibge_pnad.microdados_compatibilizados_pessoa`, `br_inep_saeb.aluno_ef_2ano`, `br_inep_saeb.aluno_ef_5ano` ### `id_setor_censitario` — 27 tables 15-digit IBGE census tract code. **Sample tables (10 of 27):** `br_bd_diretorios_brasil.setor_censitario_2010`, `br_bd_diretorios_brasil.setor_censitario_2022`, `br_geobr_mapas.setor_censitario_2010`, `br_ibge_censo_2022.cadastro_enderecos`, `br_ibge_censo_2022.setor_censitario`, `br_ibge_censo_demografico.setor_censitario_alfabetizacao_homens_mulheres_2010`, `br_ibge_censo_demografico.setor_censitario_alfabetizacao_total_2010`, `br_ibge_censo_demografico.setor_censitario_basico_2010`, `br_ibge_censo_demografico.setor_censitario_domicilio_caracteristicas_gerais_2010`, `br_ibge_censo_demografico.setor_censitario_domicilio_moradores_2010` ### `id_subdistrito` — 7 tables IBGE subdistrict code. **Sample tables (7 of 7):** `br_bd_diretorios_brasil.setor_censitario_2010`, `br_bd_diretorios_brasil.setor_censitario_2022`, `br_geobr_mapas.limite_vizinhanca`, `br_geobr_mapas.setor_censitario_2010`, `br_ibge_censo_2022.cadastro_enderecos`, `br_ibge_censo_demografico.microdados_domicilio_2000`, `br_ibge_censo_demografico.microdados_pessoa_2000` ### `id_uf` — 22 tables 2-digit IBGE UF code (e.g. "35" = São Paulo). **Sample tables (10 of 22):** `br_bd_diretorios_brasil.municipio`, `br_bd_diretorios_brasil.setor_censitario_2022`, `br_bd_diretorios_brasil.uf`, `br_geobr_mapas.limite_vizinhanca`, `br_geobr_mapas.mesorregiao`, `br_geobr_mapas.microrregiao`, `br_geobr_mapas.regiao_imediata`, `br_geobr_mapas.regiao_intermediaria`, `br_geobr_mapas.saude`, `br_geobr_mapas.sede_municipal` ### `nome_municipio` — 8 tables Municipality name as string. Prefer id_municipio for joins to avoid encoding issues. **Sample tables (8 of 8):** `br_bd_diretorios_brasil.cep`, `br_bd_diretorios_brasil.setor_censitario_2010`, `br_bd_diretorios_brasil.setor_censitario_2022`, `br_geobr_mapas.limite_vizinhanca`, `br_geobr_mapas.sede_municipal`, `br_geobr_mapas.setor_censitario_2010`, `br_geobr_mapas.terra_indigena`, `br_poder360_pesquisas.microdados` ### `sigla_uf` — 245 tables 2-letter state abbreviation (e.g. "SP", "RJ"). Present in 245+ tables. **Sample tables (10 of 245):** `br_anatel_banda_larga_fixa.densidade_municipio`, `br_anatel_banda_larga_fixa.densidade_uf`, `br_anatel_banda_larga_fixa.microdados`, `br_anatel_indice_brasileiro_conectividade.municipio`, `br_anp_precos_combustiveis.microdados`, `br_ans_beneficiario.informacao_consolidada`, `br_bcb_estban.agencia`, `br_bcb_estban.municipio`, `br_bcb_sicor.operacao`, `br_bd_diretorios_brasil.cep` **Example JOIN:** ```sql SELECT u.nome AS estado, COUNT(*) AS obitos FROM br_ms_sim.microdados s JOIN br_bd_diretorios_brasil.uf u ON s.sigla_uf = u.sigla_uf WHERE s.ano = 2020 GROUP BY 1 ORDER BY 2 DESC ``` ## Temporal Keys ### `ano` — 261 tables Year as INT. Present in 261+ tables. Always filter by ano when possible. **Sample tables (10 of 261):** `br_anatel_banda_larga_fixa.densidade_brasil`, `br_anatel_banda_larga_fixa.densidade_municipio`, `br_anatel_banda_larga_fixa.densidade_uf`, `br_anatel_banda_larga_fixa.microdados`, `br_anatel_indice_brasileiro_conectividade.municipio`, `br_anp_precos_combustiveis.microdados`, `br_ans_beneficiario.informacao_consolidada`, `br_bcb_estban.agencia`, `br_bcb_estban.municipio`, `br_bcb_sicor.liberacao` **Example JOIN:** ```sql SELECT a.ano, a.id_municipio, a.densidade AS banda_larga, b.ideb FROM br_anatel_banda_larga_fixa.densidade_municipio a JOIN br_inep_ideb.municipio b ON a.id_municipio = b.id_municipio AND a.ano = b.ano WHERE a.ano BETWEEN 2015 AND 2021 ``` ### `data` — 19 tables Full DATE column. Used in microdata tables for event-level records. **Sample tables (10 of 19):** `br_camara_dados_abertos.deputado_profissao`, `br_camara_dados_abertos.proposicao_microdados`, `br_camara_dados_abertos.votacao`, `br_camara_dados_abertos.votacao_objeto`, `br_camara_dados_abertos.votacao_parlamentar`, `br_camara_dados_abertos.votacao_proposicao`, `br_inmet_bdmep.microdados`, `br_me_cnpj.empresas`, `br_me_cnpj.estabelecimentos`, `br_me_cnpj.socios` ### `mes` — 94 tables Month as INT (1–12). Present in 94+ tables. Use together with ano. **Sample tables (10 of 94):** `br_anatel_banda_larga_fixa.densidade_brasil`, `br_anatel_banda_larga_fixa.densidade_municipio`, `br_anatel_banda_larga_fixa.densidade_uf`, `br_anatel_banda_larga_fixa.microdados`, `br_ans_beneficiario.informacao_consolidada`, `br_bcb_estban.agencia`, `br_bcb_estban.municipio`, `br_bcb_sicor.liberacao`, `br_bcb_sicor.saldo`, `br_cgu_beneficios_cidadao.auxilio_emergencial` ### `semestre` — 1 tables Semester (1–2). Used in PNAD Contínua and similar surveys. **Sample tables (1 of 1):** `br_mec_sisu.microdados` ### `trimestre` — 3 tables Quarter (1–4). Used in quarterly economic datasets. **Sample tables (3 of 3):** `br_ibge_pnadc.educacao`, `br_ibge_pnadc.microdados`, `br_ibge_pnadc.rendimentos_outras_fontes` ### `year` — 21 tables Year (English name) — used in international/world datasets. **Sample tables (10 of 21):** `br_trase_supply_chain.beef`, `br_trase_supply_chain.soy_beans`, `br_trase_supply_chain.soy_beans_crushing_facilities`, `br_trase_supply_chain.soy_beans_refining_facilities`, `us_harvard_ned.parliamentary_elections`, `us_harvard_ned.presidential_elections`, `world_iea_timss.home_context_grade_4`, `world_iea_timss.school_context_grade_4`, `world_iea_timss.school_context_grade_8`, `world_iea_timss.student_achievement_grade_4` ## Business Identity Keys ### `cbo_2002` — 6 tables Brazilian Occupation Classification 2002 code. Joins labor market datasets. **Sample tables (6 of 6):** `br_bd_diretorios_brasil.cbo_2002`, `br_me_caged.microdados_movimentacao`, `br_me_caged.microdados_movimentacao_excluida`, `br_me_caged.microdados_movimentacao_fora_prazo`, `br_me_rais.microdados_vinculos`, `br_ms_cnes.profissional` ### `cnae_2_subclasse` — 6 tables CNAE 2.0 economic activity subclass code. 7-digit, joins RAIS, CAGED, CNPJ data. **Sample tables (6 of 6):** `br_me_caged.microdados_movimentacao`, `br_me_caged.microdados_movimentacao_excluida`, `br_me_caged.microdados_movimentacao_fora_prazo`, `br_me_rais.microdados_estabelecimentos`, `br_me_rais.microdados_vinculos`, `br_rf_cno.cnaes` ### `cnpj` — 8 tables 14-digit Brazilian company tax ID. **Sample tables (8 of 8):** `br_anatel_banda_larga_fixa.microdados`, `br_ans_beneficiario.informacao_consolidada`, `br_bcb_sicor.recurso_publico_mutuario`, `br_bd_diretorios_brasil.empresa`, `br_cvm_administradores_carteira.pessoa_juridica`, `br_cvm_administradores_carteira.responsavel`, `br_me_cnpj.estabelecimentos`, `br_trase_supply_chain.soy_beans_crushing_facilities` **Example JOIN:** ```sql SELECT e.razao_social, SUM(t.acessos) AS total_acessos FROM br_anatel_banda_larga_fixa.microdados t JOIN br_bd_diretorios_brasil.empresa e ON t.cnpj = e.cnpj WHERE t.ano = 2023 GROUP BY 1 ORDER BY 2 DESC LIMIT 10 ``` ### `cnpj_basico` — 10 tables First 8 digits of CNPJ (company base code, without branch). **Sample tables (10 of 10):** `br_bcb_estban.agencia`, `br_bcb_estban.municipio`, `br_bcb_sicor.recurso_publico_cooperado`, `br_bcb_sicor.recurso_publico_mutuario`, `br_bcb_sicor.recurso_publico_propriedade`, `br_bd_diretorios_brasil.empresa`, `br_me_cnpj.empresas`, `br_me_cnpj.estabelecimentos`, `br_me_cnpj.simples`, `br_me_cnpj.socios` ### `cpf` — 14 tables 11-digit Brazilian individual tax ID (CPF). Often masked in public datasets. **Sample tables (10 of 14):** `br_bcb_sicor.recurso_publico_cooperado`, `br_bcb_sicor.recurso_publico_mutuario`, `br_bcb_sicor.recurso_publico_propriedade`, `br_camara_dados_abertos.despesa`, `br_cgu_servidores_executivo_federal.afastamentos`, `br_cgu_servidores_executivo_federal.cadastro_aposentados`, `br_cgu_servidores_executivo_federal.cadastro_pensionistas`, `br_cgu_servidores_executivo_federal.cadastro_reserva_reforma_militares`, `br_cgu_servidores_executivo_federal.cadastro_servidores`, `br_cgu_servidores_executivo_federal.observacoes` ### `id_escola` — 14 tables INEP school code. Joins censo_escolar and ENEM escola tables. **Sample tables (10 of 14):** `br_bd_diretorios_brasil.escola`, `br_geobr_mapas.escola`, `br_inep_avaliacao_alfabetizacao.alunos`, `br_inep_censo_escolar.escola`, `br_inep_censo_escolar.turma`, `br_inep_ideb.escola`, `br_inep_indicador_nivel_socioeconomico.escola`, `br_inep_indicadores_educacionais.escola`, `br_inep_saeb.aluno_ef_2ano`, `br_inep_saeb.aluno_ef_5ano` ### `id_estabelecimento_cnes` — 18 tables CNES health establishment code. Joins SUS health datasets. **Sample tables (10 of 18):** `br_ms_cnes.dados_complementares`, `br_ms_cnes.equipamento`, `br_ms_cnes.equipe`, `br_ms_cnes.estabelecimento`, `br_ms_cnes.estabelecimento_ensino`, `br_ms_cnes.estabelecimento_filantropico`, `br_ms_cnes.gestao_metas`, `br_ms_cnes.habilitacao`, `br_ms_cnes.incentivos`, `br_ms_cnes.leito` ### `id_inscricao` — 27 tables ENEM registration/enrollment ID. Joins ENEM tables across years. **Sample tables (10 of 27):** `br_inep_enem.microdados`, `br_inep_enem.questionario_socioeconomico_1998`, `br_inep_enem.questionario_socioeconomico_1999`, `br_inep_enem.questionario_socioeconomico_2000`, `br_inep_enem.questionario_socioeconomico_2001`, `br_inep_enem.questionario_socioeconomico_2002`, `br_inep_enem.questionario_socioeconomico_2003`, `br_inep_enem.questionario_socioeconomico_2004`, `br_inep_enem.questionario_socioeconomico_2005`, `br_inep_enem.questionario_socioeconomico_2006` **Example JOIN:** ```sql -- id_inscricao joins ENEM microdata across years SELECT a.ano, a.nota_matematica, b.nota_matematica AS nota_ano_anterior FROM br_inep_enem.microdados a JOIN br_inep_enem.microdados b ON a.id_inscricao = b.id_inscricao AND b.ano = a.ano - 1 WHERE a.ano = 2023 ``` ### `id_orgao` — 14 tables Federal government organ code. Used in CGU budget/contract datasets. **Sample tables (10 of 14):** `br_camara_dados_abertos.evento_orgao`, `br_camara_dados_abertos.legislatura_mesa`, `br_camara_dados_abertos.licitacao_pedido`, `br_camara_dados_abertos.orgao`, `br_camara_dados_abertos.orgao_deputado`, `br_camara_dados_abertos.votacao`, `br_cgu_licitacao_contrato.contrato_apostilamento`, `br_cgu_licitacao_contrato.contrato_compra`, `br_cgu_licitacao_contrato.contrato_item`, `br_cgu_licitacao_contrato.contrato_termo_aditivo` ### `id_unidade_gestora` — 13 tables Federal budget management unit code. **Sample tables (10 of 13):** `br_cgu_licitacao_contrato.contrato_apostilamento`, `br_cgu_licitacao_contrato.contrato_compra`, `br_cgu_licitacao_contrato.licitacao`, `br_cgu_licitacao_contrato.licitacao_empenho`, `br_cgu_licitacao_contrato.licitacao_item`, `br_cgu_licitacao_contrato.licitacao_participante`, `world_wb_mides.empenho`, `world_wb_mides.licitacao`, `world_wb_mides.licitacao_item`, `world_wb_mides.licitacao_participante`