Mapeamento de Dados para Monitoramento do PNC
Este painel documenta, por política e por meta, quais dados existem, onde estão, como se conectam e o que já é possível responder para o Ministério da Cultura. Cada aba é um diagnóstico de viabilidade analítica — não um dashboard final.
Atualizado em 30/07/2026 — o que mudou desde a publicação
Este painel foi publicado em 22/06/2026 como diagnóstico de viabilidade, propondo nominalmente os pipelines que ainda não existiam. De lá para cá, duas PRs implementaram parte do que estava proposto — e os nomes reais divergiram da previsão. Esta revisão alinha o painel ao código que está na main:
- Meta 3 implementada (PR #16, 18/07): domínio
cotas_dbtcom 21 models. O que o painel chamava deagg_cotas_anuaisviroudistribuicao_cotas_lpgedistribuicao_cotas_pnab. - Meta 5 implementada (PR #15, 15/07): domínio
agentes_dbtcomprimeiro_acesso_contempladoseprimeiro_acesso_resumo. - Veredito de cota é binário, não ternário:
'alcancada'/'descumprida'emstatus_sobre_com_perfil. A categoria "superada" não foi implementada. - Saída em formato longo: 1 linha por (ano, grupo), não uma coluna por cota. Nomes de coluna corrigidos ao longo das abas.
- bbágil bloqueado: 4 models escritos mas desabilitados — a API do BSC só resolve via VPN do governo.
- Meta 2 e Meta 4 seguem sem models dbt. A Meta 4 é exclusivamente Rouanet, e o SALIC ainda não tem ingestão.
As três políticas mapeadas
PNAB — Política Nacional Aldir Blanc
A União repassa recursos do Fundo Nacional da Cultura (FNC) diretamente a estados, DF e municípios (fundo a fundo), sem convênios. Os entes elaboram Planos de Ação no Transferegov, executam via editais locais e prestam contas por Relatórios de Gestão. Os pagamentos transitam por contas bancárias dedicadas gerenciadas pelo BB Gestão Ágil.
Meta: R$3bi/ano → R$6bi em 10 anos (União + entes)
LPG — Lei Paulo Gustavo
Mecanismo emergencial de repasse fundo a fundo para mitigar os impactos da pandemia no setor cultural. Estrutura análoga à PNAB: entes federados recebem a verba, lançam seleções públicas simplificadas (editais, prêmios, chamamentos) e os agentes culturais se inscrevem como proponentes. O monitoramento ocorre via Relatório Final de Gestão no Transferegov.
Ciclo único · cotas para negros, indígenas, PCD
Lei Rouanet (Pronac)
Mecanismo de renúncia fiscal em que incentivadores (PF/PJ) destinam parte do IR devido para financiar projetos culturais aprovados pelo MinC. Proponentes se cadastram no SALIC, recebem um número de PRONAC e ficam autorizados a captar. Os recursos transitam por Contas Captação no Banco do Brasil. Funciona predominantemente por fluxo contínuo, não por editais.
Metas do PNC mapeadas neste painel
Fontes de dados
Planos de Ação, Planos de Aplicação de Recursos (PAR), Relatórios de Gestão e monitoramento da execução informados pelos entes no Transferegov. Fonte principal para PNAB e LPG.
Lançamentos bancários reais (crédito/débito) das contas específicas da PNAB e LPG. Registra saídas efetivas de caixa com categorização obrigatória de despesas. Usado para aferir o critério de 60% de execução mínima.
Portal do MinC para gestores culturais submeterem o Plano de Aplicação dos Recursos da PNAB. Contém dados de perfil sociodemográfico dos proponentes (raça, etnia, deficiência) via "Planilha de Coleta de Dados".
Sistema de Apoio às Leis de Incentivo à Cultura. Principal base da Lei Rouanet: concentra cadastro de proponentes, projetos (PRONAC), valores autorizados/captados/executados, localização e incentivadores.
Sistema de Informações Contábeis e Fiscais do Setor Público. Necessário para verificar o aporte próprio de estados e municípios à cultura (Meta 2 PNAB — lado "recursos próprios dos entes").
Censo 2022 — Favelas e Comunidades Urbanas. Usado para classificar territórios vulnerabilizados e enriquecer dados de localização de proponentes (cruzamento por CEP → setor censitário ou município + UF).
Como ler os status deste painel
Dados existem, chaves de integração validadas, cálculo viável com as fontes atuais.
Resposta possível com ressalvas: dado existe mas incompleto, ou requer fonte externa ainda não integrada.
Dado não disponível ou requer definição de negócio pelo MinC antes de prosseguir.
Meta 2 — Execução Financeira e Distribuição
Issue 6 · ExploraçãoPNAB · Distribuição dos repasses e execução financeira por nível federativo, ciclo e porte de ente
Contexto e objetivo desta aba
A PNAB (Política Nacional Aldir Blanc) e a LPG (Lei Paulo Gustavo) são duas políticas de fomento direto com estrutura parecida: a União repassa recursos do Fundo Nacional da Cultura para estados, DF e municípios — sem necessidade de convênios —, e esses entes executam os recursos localmente por meio de editais, chamadas públicas e premiações para agentes culturais. A diferença principal é que a LPG foi uma política emergencial e de ciclo único, criada para compensar os prejuízos da pandemia no setor cultural, enquanto a PNAB é uma política permanente, com repasses anuais previstos em lei.
A Meta 2 do PNC é exclusiva da PNAB e quer garantir que pelo menos R$3 bilhões por ano sejam efetivamente gastos com cultura, com aumento gradual até R$6 bilhões em 10 anos (somando recursos federais e aportes próprios dos entes) — sendo 60% desse valor destinado a programas nacionais do Sistema Nacional de Cultura (SNC). A partir de 2025, o recebimento de novos repasses fica condicionado à comprovação de que o ente executou pelo menos 60% do repasse anterior.
Esta aba documenta quais dados existem no sistema para responder a essa meta: quanto foi repassado, quanto foi efetivamente pago (saída real de caixa registrada no BB Gestão Ágil), como esse valor se distribui por estado/município, e se os entes estão contribuindo com recursos próprios além do repasse federal.
transferegov_fundo_a_fundo, identificar as chaves de cruzamento entre elas e apontar o que já é possível calcular, o que está parcialmente disponível e o que ainda depende de fontes externas (como o SICONFI para os aportes próprios dos entes).Checklist de validação
Como se distribui a execução financeira da PNAB por nível federativo (estados, DF, municípios) e por território (UF, região, municípios) em cada ciclo?
Qual o percentual do recurso executado foi destinado a programas nacionais estruturantes do SNC? Bloqueado — aguarda validação do MinC sobre quais categorias contam como "estruturantes".
Qual é o valor total executado anualmente na PNAB somando recursos da União e aporte próprio dos entes? Lado União respondido; recursos próprios dependem do SICONFI (fonte externa).
Blocos de dados — schema transferegov_fundo_a_fundo
Bloco A — Delimitação do Programa
raw_programasid_programacodigo_programa para filtro.dim_programa_pnab ✦id_programaporte_ente: ESTADO_DF / MUNICIPIO_GE_360K / MUNICIPIO_LT_360K.Bloco B — Plano de Ação / Repasse Planejado
raw_planos_acaoid_plano_acao, id_programa, cnpj_ente_recebedorBloco C — Execução Declarada
relatorios_gestaoid_relatorio_gestao, id_plano_acaovalor_executado_relatorio_gestao).Bloco D — Fluxo de Caixa Real (BB Gestão Ágil)
cnpj_ente_solicitante_gestao_financeiracodigo_programa_agil = 165, fixo). Ligação com planos via CNPJ do ente.(tipo_operacao, descricao)ENTRADA_REPASSE, RENDIMENTO_APLICACAO, SAIDA_EFETIVA_PAGAMENTO ou ENCARGO_TARIFA.Bloco E — Classificação SNC (pendente)
categorias_programa_governo_bbgestao_agilcodigoflag_estruturante_snc, validado_em, validado_por ficam NULL até validação com o MinC.Fluxo de cruzamento
│
└──(id_programa)──▶ raw_planos_acao ──(id_plano_acao)──▶ relatorios_gestao
│
└──(CNPJ do ente)──▶ raw_gestao_financeira_lancamentos ──▶ dim_tipo_operacao_financeira
Tratamento e higienização
Datas corrompidas: ~0,09% dos planos de ação (5 de 5.484) têm anos inválidos (ex: 0230). Tratado com extração defensiva de ano (LEFT(coluna, 4)) e bucket ANO_INVALIDO.
Bug de conversão numérica: campos monetários de raw_planos_acao já estão em formato decimal simples — aplicar lógica de formato BR (REPLACE('.','') + REPLACE(',','.')) infla os valores em 100×. Cast correto: direto para numeric.
Código de programa fixo no barramento (165): não serve para segmentar por porte de ente. Segmentação correta via CNPJ, cruzando com raw_planos_acao.
Recursos próprios zerados: valor_recursos_proprios_plano_acao = 0 em 100% dos 5.484 planos — ausência real de preenchimento pelos entes, não erro de processamento.
Veredicto
✅ Pergunta 1 — Distribuição federativa por ciclo
🔴 Pergunta 2 — % destinado a programas estruturantes SNC
flag_estruturante_snc), mas depende de validação do MinC sobre quais categorias contam.◑ Pergunta 3 — Total anual União + aporte próprio
O que estamos respondendo
PNAB · Meta 2 — Execução Financeira e Distribuição
Como se distribui a execução financeira da PNAB por nível federativo (estados, DF, municípios) e por território (UF, região, municípios) em cada ciclo?
raw_planos_acao × raw_gestao_financeira_lancamentos
Cruzamento por CNPJ do ente + dim_programa_pnab (porte)
Validado contra duas fontes independentes: plano de ação e fluxo de caixa real (BB Gestão Ágil).
Qual o percentual do recurso executado que foi destinado a programas nacionais estruturantes do SNC?
categorias_programa_governo_bbgestao_agil
+ flag_estruturante_snc (a preencher)
Estrutura de dados pronta. Bloqueado por definição de negócio: o MinC precisa validar quais categorias contam como "estruturantes do SNC" (Plano Nacional de Cultura).
Qual é o valor total executado anualmente na PNAB somando recursos da União e aporte próprio dos entes? O aporte local está evoluindo rumo aos R$6 bilhões?
raw_gestao_financeira_lancamentos (lado União)
SICONFI — fonte externa (lado entes)
Lado União respondido: repasse concentrado em 2023 (~R$2,9bi); caixa praticamente esgotado em 2026. Aporte próprio dos entes depende do SICONFI, fora do escopo atual.
✦ tabela criada nesta análise (não existe no schema original)
Meta 3 — Ações Afirmativas
Issue 1 · Diagnóstico de viabilidadeLPG / PNAB · Raça · PCD · Territórios vulnerabilizados
Contexto e objetivo desta aba
A LPG (Lei Paulo Gustavo) e a PNAB (Política Nacional Aldir Blanc) são políticas de fomento direto em que a União repassa recursos para estados, DF e municípios, que os distribuem localmente via editais para agentes culturais — pessoas físicas, coletivos e organizações. No momento da inscrição nesses editais, os agentes preenchem formulários autodeclaratórios informando raça/cor, se têm deficiência e onde moram.
A Meta 3 do PNC determina que uma parcela mínima dos recursos efetivamente pagos deve chegar a grupos historicamente sub-representados: ≥25% para pessoas negras, ≥10% para indígenas, ≥5% para pessoas com deficiência (PCD) e ≥20% para agentes de territórios vulnerabilizados (periferias, zonas rurais, territórios tradicionais). Essas cotas se aplicam tanto à LPG quanto à PNAB.
O desafio central desta meta está no cruzamento de dados: as informações de perfil (raça, PCD, localização) ficam nas tabelas de inscrição, enquanto os valores pagos ficam nas tabelas de contemplados. Para saber quanto do dinheiro foi para pessoas negras, por exemplo, é preciso ligar cada pagamento ao perfil de quem o recebeu — e a chave dessa ligação é o CPF ou CNPJ do beneficiário.
Checklist de validação
Do total de recursos efetivamente pagos anualmente, qual o percentual destinado a agentes culturais de territórios vulnerabilizados, pessoas negras, povos indígenas e pessoas com deficiência?
Os percentuais mínimos previstos nas cotas e reservas de recursos (25% negras · 10% indígenas · 5% PCD · 20% territórios vulnerabilizados) estão sendo alcançados, superados ou descumpridos na prática?
Veredicto por política
Lei Paulo Gustavo
Responde os três grupos (negras/indígenas via coluna de raça, PCD) + território (cidade/cep → fcu_setores_2022). A ponte CPF/CNPJ entre perfil e contemplados funciona.
Política Nacional Aldir Blanc
PCD e território disponíveis. Raça/etnia ainda não concludível: tabelas de contemplados trazem CPF anonimizado, quebrando a ponte de demografia por valor. Resolver o elo é fase 2.
Fluxo de cruzamento
Bloco A — Perfil / Inscritos (autodeclaração)
LPG — Pessoa Física
LPG — Pessoa Jurídica
LPG — Coletivos
PNAB — Pessoas
PNAB — Organizações
Bloco B — Contemplados (valor pago)
Tabelas de contemplados (LPG)
Tabelas de contemplados (PNAB)
Bloco C — Editais / Programas
lpg_editais e equivalentes
Mapeamento de colunas-chave · variações de grafia
Normalizar com regexp_replace removendo pontuação antes de qualquer join.
Indígena é um valor dentro da coluna de raça, não coluna separada.
Tratar NULL e 'nan' como ausência — manter apenas respostas válidas.
Cruzar com fcu_setores_2022 (IBGE Censo 2022) para classificar território vulnerabilizado.
Formatos mistos: BR (1.500,00), US (14084.18), strings de fórmula. Requer parsing dedicado.
Junção Contemplados ↔ Editais. Atenção a variações de grafia do nome entre tabelas.
Tratamento e higienização (base desta issue)
Limpeza de caracteres — normalização de strings (acentos, caixa, espaços).
Unificação de grafias — mapear variações do mesmo conceito para um nome canônico.
NULL / 'nan' → ausência — manter apenas respostas válidas; não imputar.
Pré-requisito issue 2: normalização consistente de valores de autodeclaração; reconciliação de cabeçalhos não parseados (posição canônica da coluna CPF/CNPJ); parsing do valor pago em formatos mistos; padronização de CPF/CNPJ com regexp_replace antes dos joins.
LPG · PNAB · Meta 3 — Ações Afirmativas
Do total pago anualmente, qual % foi para pessoas negras (≥25%), indígenas (≥10%), PCD (≥5%) e territórios vulnerabilizados (≥20%)?
lpg_dados_pessoa_fisica/pj/coletivos × lpg_contemplados
Chave: CPF/CNPJ normalizado
Enriquecimento territorial via fcu_setores_2022 (IBGE Censo 2022). Nível atual: município (superestima). CEP → setor censitário na fase 2.
As cotas mínimas (25% negras, 10% indígenas, 5% PCD, 20% territórios) estão sendo alcançadas, superadas ou descumpridas por ano?
distribuicao_cotas_lpg ← fct_pagamentos_elegiveis
status_sobre_com_perfil por (ano, grupo)
Veredito binário: 'alcancada' / 'descumprida' — o painel previa uma terceira categoria "superada", que não foi implementada.
Do total pago anualmente pela PNAB, qual % foi para pessoas negras, indígenas, PCD e territórios vulnerabilizados?
pnab_pessoas / pnab_organizacoes × raw_pnab_lista_contemplados
Chave: CNPJ (PJ casável) · CPF PF anonimizado (não casável)
PJ da PNAB já é respondível. PF fica fora do numerador de raça porque o CPF vem anonimizado — resolve na fase 2 com acesso ao dado completo.
Como os dados se conectam — visão de negócio
Bronze → Silver → GoldQuem pagamos? Quem é essa pessoa? Ela está numa área vulnerável? A cota foi cumprida?
Quem se inscreveu? (Perfil)
Quem foi pago e quanto? (Contemplados)
Qual edital e de que ano? (Editais)
O endereço é território vulnerável? (IBGE)
Três junções resolvem a pergunta de negócio. Cada uma tem uma chave de integração e um risco:
| Junção | Chave de integração | Por que fazer | Risco |
|---|---|---|---|
| Contemplados ↔ Perfil | identificador_unico (CPF/CNPJ normalizado) | Trazer raça, PCD e localização de quem foi pago. Sem isso, não temos como saber se o pagamento conta para uma cota. | ⚠ CPF PNAB anonimizado — PF da PNAB fica sem perfil (fase 2) |
| Contemplados ↔ Editais | nome_edital | Extrair o ano de referência do pagamento. Sem ano não é possível agregar por ciclo e medir cumprimento anual das cotas. | ⚠ Variações de grafia do nome entre tabelas exigem normalização |
| Perfil ↔ IBGE | cidade + uf ou cep → setor | Classificar se o beneficiário mora em território vulnerabilizado (cota de 20%). Dado de localização vem do perfil, classificação vem do Censo. | ⚠ Nível município superestima — cruzamento por setor censitário bloqueado até crosswalk CEP |
perfil_agentes_normalizado
flag_negraflag_indigenaflag_pcdflag_nao_declaradaidentificador_unico: quando o mesmo CPF/CNPJ aparece em mais de uma tabela de perfil, mantém o registro com menos NULLs.contemplados_unif
valor_pago_numano_finalchave_anonimizadaorigemterritorio_municipio
flag_territorio_vulneravelnivel_matchnm_mun + nm_uf da tabela IBGE.fct_pagamentos_elegiveis
identificador_unico · valor_pago_num · ano_finalflag_negra · flag_indigena · flag_pcdidentificador_unicoflag_territorio_vulneraveltem_perfilcobertura_pagamentos
cobertura_valor_pctcobertura_pessoas_pctcobertura_temporal_pctqtd_pagamentos · qtd_pessoas · valor_total'sem_ano' para leitura direta.cobertura_valor_pct for baixo, os percentuais de cota não são confiáveis.distribuicao_cotas_lpg · distribuicao_cotas_pnab
grupometa_minima_pctpct_sobre_total · pct_sobre_com_perfilstatus_sobre_com_perfil'alcancada' ou 'descumprida' — veredito binário. Não há categoria "superada"valor_grupo · valor_total_ano · qtd_agentes_grupodistribuicao_cotas(programa, incluir_territorio). Este é o indicador final da Meta 3.LPG · PNAB · Meta 3 — Pipeline dbt: o que cada camada entrega
Quem se inscreveu, com qual perfil, e de onde?
stg_agentes_pf · stg_agentes_pj · stg_agentes_coletivos
stg_agentes_pnab_pf · stg_agentes_pnab_pj
Normaliza CPF/CNPJ, raça, PCD e localização. Mantém uma linha por fonte, sem lógica de negócio.
Quem foi pago, quanto, e em qual edital?
stg_contemplados_lpg · stg_contemplados_pnab
stg_editais (para extrair o ano)
Normaliza formatos de valor mistos (BR/US/fórmula). Chave de junção com perfil: identificador_unico (CPF/CNPJ).
Qual é o perfil demográfico de quem foi pago? O endereço é território vulnerável?
perfil_agentes_normalizado (flags booleanas)
contemplados_unif (valor + ano)
territorio_municipio (crosswalk IBGE)
3 junções: Contemplados ↔ Perfil (identificador_unico), Contemplados ↔ Editais (nome_edital), Perfil ↔ IBGE (chave_municipio_uf). O crosswalk vem de territorio_fcu_setores (33.273 setores do Censo 2022) colapsado a município.
A cota foi cumprida? Qual a qualidade dos dados para afirmar isso?
fct_pagamentos_elegiveis → cobertura_pagamentos → distribuicao_cotas_lpg / _pnab
status_sobre_com_perfil por (ano, grupo)
cobertura_pagamentos deve ser lida primeiro: se cobertura_valor_pct for baixo, os percentuais de cota não são confiáveis.
Meta 5 — Primeiro Acesso (Novos Entrantes)
Issue 2 · Extração de indicadoresLPG · Percentual de proponentes contemplados sem registro anterior de fomento
Contexto e objetivo desta aba
A LPG (Lei Paulo Gustavo) e a PNAB (Política Nacional Aldir Blanc) distribuem recursos para agentes culturais por meio de editais locais conduzidos pelos estados e municípios. Em cada edital, os agentes se inscrevem e, se selecionados, recebem o pagamento. A Meta 5 do PNC quer saber: esses editais estão chegando a pessoas novas ou sempre aos mesmos?
O indicador é o percentual de proponentes "de primeira vez" — agentes culturais contemplados em um ciclo que nunca haviam recebido recursos de fomento público antes. Isso mede se a política está ampliando o acesso à cultura ou apenas redistribuindo recursos dentro de um grupo já estabelecido.
Para calcular isso é simples em teoria: verificar, para cada CPF/CNPJ contemplado num ciclo, se esse mesmo documento aparece em ciclos anteriores. Na prática, requer uma série histórica completa e uma definição clara do que conta como "primeiro acesso" — só dentro da LPG, só dentro da PNAB, ou em qualquer mecanismo federal (PNAB, LPG, Rouanet, FSA)?
Checklist de validação
Qual o percentual dos agentes culturais (proponentes contemplados) que acessaram recursos da política em cada ciclo e que não possuem registro anterior de recebimento de fomento?
Resultado obtido
| # | Já acessou fomento antes? | Total de Proponentes Únicos | Percentual (%) | Distribuição |
|---|---|---|---|---|
| 1 | Sim | 4.187 | 43,9% | |
| 2 | Não ← público-alvo Meta 5 | 3.730 | 39,11% | |
| 3 | Não sabe / Não informou | 1.621 | 17% |
Origem dos dados
Tabelas unificadas (LPG)
schema: transferegov_fundo_a_fundoFluxo de cruzamento
Mapeamento de colunas-chave
Nome truncado no banco — corte da string na palavra "anteriormente". Usar como está na extração bruta.
Cada chave usada conforme o tipo de proponente para evitar duplicidade na contagem.
Tratamento e higienização aplicados
Remoção de nulos — NULL (SQL) e nan (Pandas) excluídos do cálculo; mantidos apenas formulários com respostas válidas.
Limpeza de caracteres especiais — remoção de pontuações indesejadas (ex: ponto e vírgula ; no final das respostas).
Padronização de categorias via CASE WHEN — 3 grupos canônicos:
Sim agrupa: "Sim", "sim"
Não (público-alvo Meta 5) — agrupa: "Não", "nao", "nâo"
Não sabe/Não informou agrupa: "Não sei informar", "Nao informado", "nao_declarar", etc.
LPG · Meta 5 — Primeiro Acesso (Novos Entrantes)
Do total de proponentes contemplados anualmente pela LPG, qual o percentual daqueles que nunca haviam sido contemplados anteriormente em editais da própria LPG?
lpg_contemplados (CPF/CNPJ únicos por ciclo)
Chave: CPF/CNPJ — cruzamento histórico entre ciclos
Resultado atual: 39,11% de novos entrantes (3.730 proponentes únicos sem histórico anterior de fomento público à cultura).
Qual o percentual daqueles que nunca acessaram fomento federal em outros mecanismos (Rouanet, PNAB, FSA)?
perfil_acesso_fomento.sequencia_fomento
← identificadores_agentes (UNION de LPG + PNAB por CPF/CNPJ normalizado)
A perna PNAB já está implementada. identificadores_agentes unifica as 5 fontes de perfil (3 LPG + 2 PNAB) na mesma chave identificador_unico, e perfil_acesso_fomento aplica ROW_NUMBER() OVER (PARTITION BY identificador_unico) — então sequencia_fomento > 1 já identifica quem aparece nos dois programas. Rouanet e FSA seguem impossíveis: nenhuma ingestão implementada (o SALIC não tem model nem DAG; o FSA não está em sources.yml).
sequencia_fomento como resposta:
- A ordenação é alfabética, não cronológica. O
ORDER BY programa_fomento ASCcoloca'LPG'antes de'PNAB', então quem está nos dois programas sempre recebesequencia_fomento = 1na linha LPG. A coluna mede co-presença nos dois cadastros, não qual veio primeiro. Para ordem temporal seria preciso datar a inscrição. - A base são fichas de cadastro, não contemplação. Os models partem de
lpg_dados_pessoa_fisicaepnab_pessoas— quem se inscreveu. Estar cadastrado não é o mesmo que ter acessado fomento (recebido recurso). Para a pergunta no sentido estrito, falta juntar com os contemplados. - CPF anonimizado na PNAB PF não casa com o cadastro LPG, então parte dos cruzamentos é invisível — o mesmo teto de dado que limita a Meta 3.
Meta 3 — Ações Afirmativas · Lei Rouanet
SALIC · Diversidade de proponentes e profissionaisRouanet · % de recursos captados/pagos para negros, indígenas, PCD e territórios vulnerabilizados
Contexto e objetivo desta aba
A Lei Rouanet é um mecanismo de renúncia fiscal: empresas e pessoas físicas podem direcionar parte do imposto de renda que pagariam ao governo para financiar projetos culturais aprovados pelo MinC. Diferente da PNAB e da LPG, o dinheiro não passa pelo governo — vai diretamente dos incentivadores para contas bancárias dos proponentes. O sistema de registro é o SALIC.
A Meta 3 aqui tem uma diferença importante em relação à PNAB/LPG: o foco prioritário são os profissionais efetivamente contratados pelos projetos (prestadores de serviço na fase de prestação de contas), não apenas os proponentes. Isso porque o proponente da Rouanet é frequentemente uma produtora ou organização que age como intermediária — quem materializa a ação cultural na prática são os artistas e técnicos contratados.
Checklist de validação
Prestação de contas: Qual o percentual de recursos captados que foi efetivamente pago a profissionais (contratados) de grupos minoritários — negros, indígenas, PCD e territórios vulnerabilizados?
Execução: Qual o percentual de recursos captados anualmente via Lei Rouanet por proponentes autodeclarados negros, indígenas, PCD e de territórios vulnerabilizados?
Secundária: Os percentuais mínimos (25% negras, 10% indígenas, 5% PCD, x% territórios) estão sendo alcançados, superados ou descumpridos?
Diversidade dos profissionais contratados
O foco são os profissionais efetivamente contratados (prestadores de serviço), não os proponentes. O proponente é frequentemente um intermediário; quem materializa a ação cultural é o profissional na ponta. Propostas em captação são desconsideradas.
Diversidade dos proponentes autodeclarados
Proponentes em execução (não apenas em captação) com autodeclaração de raça, etnia, PCD e localização. Verifica se os recursos captados chegam a grupos sub-representados como proponentes.
Blocos de dados — SALIC (P1 — Prestação de contas)
Projetos
idPRONACSituacaoPlanilhaAprovacao
idPRONACidPlanilhaAprovacaoGComprovPagFisica
idPlanilhaAprovacaotpDocumentovlComprovacaoGComprovantesPagamento
idComprovacaoidComprovantedsPagamentoAgentes
idAgenteAgenteEnderecoNacional
idAgenteCidadetbAgenteFisico
idAgentedtCelRacaefNecessidadeEspecialbase_territorio_vulneravel
cod_municipio_ibgeflag_vulneravelSituacao (referência)
CodigoDescricaoSdEncaminhamentoPrestContas
idPronacdsSituacaoEmPrestContasFluxo de cruzamento — P1 (Prestação de contas)
│
└──(idPRONAC)──▶ PlanilhaAprovacao ──(idPlanilhaAprovacao)──▶ GComprovPagFisica
│
└──(idComprovacao)──▶ GComprovantesPagamento ──(idAgente)──▶ Agentes
│
├──(idAgente)──▶ tbAgenteFisico ── dtCelRaca · efNecessidadeEspecial
└──(idAgente)──▶ EnderecoNacional ── Cidade ──▶ base_territorio_vulneravel
Blocos de dados — SALIC (P2 — Execução, proponentes autodeclarados)
tbApIncentivos
idPronacvlCaptadoadIncentivoProjetos
idPRONACidProjetoSituacaoPreProjeto
idPreProjetoidProjetoidAgenteAgentes + tbAgenteFisico
idAgentedtCelRacaefNecessidadeEspecialPerfil / CaracteristicasVerificacao / dsVerificamEnderecoNacional + Território
Cidadecod_municipio_ibgeTipoPessoaFluxo de cruzamento — P2 (Execução, proponentes)
│
└──(idProjeto)──▶ PreProjeto ──(idAgente)──▶ Agentes
│
├──(idAgente)──▶ tbAgenteFisico ── dtCelRaca · efNecessidadeEspecial
└──(idAgente)──▶ EnderecoNacional ── Cidade ──▶ base_territorio_vulneravel
Rouanet · Meta 3 — O que estamos respondendo
Qual % dos recursos captados foi efetivamente pago a profissionais de grupos minoritários (negros, indígenas, PCD, territórios vulnerabilizados)?
GComprovPagFisica × GComprovantesPagamento × Agentes × tbAgenteFisico
Chave: idAgente (profissional contratado)
Depende de: (1) o SALIC conter autodeclaração de raça/PCD para prestadores de serviço; (2) definição de "território vulnerabilizado" — não está nos normativos da Rouanet.
Qual % dos recursos captados anualmente é de proponentes autodeclarados negros, indígenas, PCD e de territórios vulnerabilizados?
tbApIncentivos × Projetos × PreProjeto × Agentes × tbAgenteFisico
Chave: idAgente (proponente)
Depende de: (1) autodeclaração disponível no SALIC para proponentes; (2) variável de uso de ação afirmativa (cota/bônus/edital específico) disponível.
As cotas mínimas (25% negras, 10% indígenas, 5% PCD, x% territórios) estão sendo alcançadas?
agg_cotas_rouanet ✦ ← fct_captacao_elegiveis ✦
Os percentuais de 25%/10%/5% não estão fixados nos normativos da Rouanet — o Decreto delega a atos ministeriais específicos. "x%" de territórios também indefinido.
✦ model proposto nesta análise — não existe no projeto dbt. O domínio Rouanet/SALIC ainda não tem nenhum model nem DAG de ingestão implementada.
Meta 4 — Desconcentração Territorial · Lei Rouanet
SALIC · Execução por territórioRouanet · % de recursos executados fora das capitais e nas regiões Norte, Nordeste e Centro-Oeste
Contexto e objetivo desta aba
Historicamente, a Lei Rouanet concentra seus recursos em grandes centros urbanos — especialmente São Paulo e Rio de Janeiro. A Meta 4 do PNC quer reverter isso: garantir que uma parcela crescente dos recursos de renúncia fiscal seja executada fora das capitais e nas regiões Norte, Nordeste e Centro-Oeste, historicamente sub-financiadas.
O dado-chave aqui é o local de execução do projeto, não o endereço do proponente. Um projeto pode ter sede em São Paulo mas ser executado no interior do Pará — e é o local de execução que importa para a meta. O SALIC registra isso nas tabelas Abrangencia e tbAplComprovacoes, que precisam ser cruzadas com a hierarquia geográfica do IBGE (Municipios → UF → Região) para classificar capital vs. interior e identificar a macrorregião.
Checklist de validação
Prioritária: Qual o percentual dos recursos captados via Lei Rouanet (Pronac) é executado, anualmente, em projetos realizados fora das capitais?
Do total de recursos executados anualmente, qual percentual foi executado nas regiões Norte, Nordeste e Centro-Oeste?
Complementar: Qual o valor total de recursos captados por projetos executados em periferias ou territórios vulnerabilizados?
Recursos saindo das capitais
Evidenciar o fluxo de recursos das capitais para o interior é o indicador central. Valor executado por município cruzado com tabela de capitais e hierarquia IBGE: Abrangencia → Municipios → UF → Regiao.
Periferias e territórios vulnerabilizados
Requer base externa de classificação territorial (flag_vulneravel / flag_periferia). A Rouanet define "Territórios Criativos", não "vulnerabilizados". Projetos itinerantes (asAbrangencia) complicam o rateio.
P1 — Percentual executado fora das capitais
Grão: pagamento em município não-capital · 1 pago total · dimensão IBGE agora via Agentes.Municipios
Projetos
idPRONACidProjetotbAplComprovacoes
idPronacvlPagamentoaaAnoComprovacaosgUFnmMunicipio#capitais
sgUFnmMunicipioAbrangencia
idProjetoidMunicipioBGEMunicipios
idMunicipioBGEidUFIBGEUF
idUFRegiaoPopulacaoMunicipio
idMunicipioPopulacaoFluxo de cruzamento — P1 (fora das capitais)
│
└──(sgUF + nmMunicipio)──▶ LEFT JOIN #capitais
NULL = fora da capital ✓
Projetos ──(idProjeto)──▶ Abrangencia ──(idMunicipioBGE)──▶ Municipios ──(idUFIBGE)──▶ UF (Regiao)
└──(idMunicipioBGE)──▶ PopulacaoMunicipio
P2 — Percentual executado no Norte, Nordeste e Centro-Oeste
Grão: pagamento em N/NE/CO · 1 pago total · região por dsRegiao ou cadeia IBGE Municipios → UF.Regiao
tbAplComprovacoes (com dsRegiao)
idPronacvlPagamentodsRegiaosgUFaaAnoComprovacaoAbrangencia → Municipios → UF
Abrangencia.idMunicipioBGEMunicipios.idUFIBGEUF.RegiaoP3 — Captado por projetos executados em periferias / territórios vulneráveis
Grão: captado dos projetos executados em território vulnerável · classificação externa; execução a nível município
tbApIncentivos
idPronacvlCaptadoasIncentivoProjetos → Abrangencia
Projetos.idProjetoAbrangencia.idMunicipioBGEAbrangencia.asAbrangenciaMunicipios → PopulacaoMunicipio
idMunicipioBGEidUFIBGEPopulacaoMunicipio.Populacaobase_territorio_vulnerave (externa)
cod_municipio_ibgeflag_vulneravelflag_periferiaFluxo de cruzamento — P3 (periferias)
│
├──(idMunicipioBGE)──▶ PopulacaoMunicipio
└──(cod_municipio_ibge)──▶ base_territorio_vulnerave ── flag_vulneravel · flag_periferia
Rouanet · Meta 4 — O que estamos respondendo
Qual % dos recursos captados via Rouanet é executado anualmente fora das capitais?
tbAplComprovacoes × #capitais (LEFT JOIN sgUF + nmMunicipio)
NULL no JOIN = fora da capital
Depende de verificar se SALIC registra capital vs. interior diretamente em nmMunicipio ou se requer normalização de nomes.
Qual % do total executado foi nas regiões Norte, Nordeste e Centro-Oeste?
tbAplComprovacoes.dsRegiao (atalho)
ou Abrangencia → Municipios → UF.Regiao (cadeia IBGE)
Centro-Oeste é prioritário nos normativos mas não consta explicitamente na meta — reportar junto para completude.
Qual o valor total captado por projetos em periferias ou territórios vulnerabilizados?
Abrangencia.idMunicipioBGE → base_territorio_vulnerave
Chave: cod_municipio_ibge · flag_vulneravel · flag_periferia
Rouanet define "Territórios Criativos", não "vulnerabilizados". Projetos com asAbrangencia nacional complicam o rateio. Tratar como complementar.
Meta 5 — Primeiro Acesso · Lei Rouanet
SALIC · Novos proponentes no PronacRouanet · % de proponentes sem histórico prévio de aprovação ou captação no Pronac
Contexto e objetivo desta aba
Assim como na PNAB/LPG, a Meta 5 para a Rouanet quer saber se a política está abrindo espaço para novos agentes culturais ou se os mesmos proponentes de sempre captam recursos ano após ano. O indicador é o percentual de proponentes que, no ano de referência, nunca haviam registrado um projeto no Pronac antes.
Na Rouanet, isso tem uma particularidade: a lei funciona por fluxo contínuo (o proponente apresenta o projeto quando quiser, sem aguardar um edital), o que torna a definição de "ciclo" menos óbvia. Além disso, a própria normativa (IN MinC nº 29/2026) define "série histórica de captação" como os últimos 3 exercícios — o que levanta a dúvida: um proponente que captou há 5 anos e parou, volta a ser "novo entrante" hoje?
Checklist de validação
Prioritária: Qual o percentual de proponentes que, no ano de referência, tiveram projetos aprovados ou captaram recursos pela Lei Rouanet e não possuíam nenhum projeto registrado previamente no Pronac?
Depende de ingestão: Qual o percentual daqueles que nunca acessaram fomento federal em outros mecanismos (LPG, PNAB, FSA)? O lado Transferegov deste cruzamento já existe (identificadores_agentes, LPG + PNAB unificados por CPF/CNPJ). Falta o lado SALIC.
Blocos de dados — SALIC (Meta 5)
Projetos
idPRONACidAgenteSituacaoAnoProjetoAgentes (histórico)
idAgenteCPF / CNPJtbApIncentivos
idPronacvlCaptadoFluxo de cruzamento — Meta 5
│
└──(idAgente)──▶ Agentes ──(CPF/CNPJ)──▶ histórico multi-política [cenário avançado]
│
└──(idAgente)──▶ Projetos históricos (AnoProjeto < ano_ref)
IS NULL → primeiro acesso no Pronac ✓
Projetos ──(idPRONAC)──▶ tbApIncentivos ── vlCaptado (confirma captação efetiva)
Rouanet · Meta 5 — O que estamos respondendo
Qual % dos proponentes do ano de referência não possuía nenhum projeto registrado anteriormente no Pronac?
Projetos × Agentes (histórico de AnoProjeto)
Chave: idAgente — ausência de projetos em anos anteriores
A Rouanet opera principalmente por fluxo contínuo (não editais). Requer definição de "primeiro acesso": só Pronac ou todo o histórico federal? Atenção ao re-entrante (>3 anos sem captar).
Qual % nunca acessou fomento federal em LPG, PNAB ou FSA?
SALIC (ausente) × identificadores_agentes (pronto)
Cruzamento: CPF/CNPJ (Agentes) entre bases
Metade do cruzamento já está construída. identificadores_agentes unifica LPG + PNAB na chave identificador_unico (CPF/CNPJ normalizado) — é exatamente a contraparte que este indicador precisa. O que falta é o lado Rouanet: o repositório não tem nenhuma referência a SALIC, PRONAC ou FSA — zero models, zero DAGs, e sources.yml declara apenas dois schemas (transferegov_fundo_a_fundo e bsc_pnab). Não é uma questão de prioridade: sem ingestão, o indicador é inexequível. Definição pendente em paralelo: a IN MinC nº 29/2026 fixa "série histórica" em 3 exercícios — precisa decidir se o escopo temporal segue isso ou o histórico completo.
Visão das Metas
Síntese comparativa · PNC 2030Para cada meta do PNC, o que o objetivo exige, o que cada política entrega e onde estão os bloqueios.
Como ler esta tela
Cada meta tem um objetivo normativo (o que o PNC exige até 2030) e um indicador de acompanhamento (como medimos o avanço). Abaixo do objetivo, cada política é avaliada contra o que está de fato no código da main — não contra o que foi planejado.
Onde cada meta está, por política
Histórico
Abr–Jul 2026 · 5 PRsO que foi construído, em que ordem, e quanto cada entrega avançou nas metas do PNC.
Como ler esta tela
Cada entrada é um Pull Request efetivamente mergeado na main, descrito a partir do próprio corpo do PR e dos commits. As etiquetas ao pé de cada entrada dizem qual meta do PNC aquilo destravou — e o que continuou parado. O repositório foi criado a partir de uma base GovHub em abril de 2026; o histórico anterior a isso pertence a outro projeto (emendas parlamentares) e não é contado aqui.
Onde cada meta está hoje
raw_planos_acao, raw_gestao_financeira_lancamentos), mas nenhum domínio dbt construído. A validação contra caixa real depende do bbágil.cotas_dbt completo para LPG (4 cotas) e PNAB (3 cotas). Cobertura temporal 61,6%. Único domínio com veredito de cota funcionando.agentes_dbt entrega primeiro_acesso_resumo por programa. Restringe-se a LPG/PNAB — cruzamento federal (SALIC, FSA) não iniciado.territorio_municipio): é lacuna de escopo, não de dado.Linha do tempo
minc_api_programas_dag→raw_programas: programas-alvo (PNAB 46/47 · LPG 60/61/62)minc_api_planos_acao_dag→raw_planos_acao: itera sobre os IDs dos programasminc_api_relatorios_gestao_dag→relatorios_gestao: filtra apenastipo_relatorio_gestao == "FINAL"minc_api_anexos_relatorios_dag→anexos_relatorios: metadata dos PDFs, preservando a FKid_relatorio_gestao- Fail-fast: cada DAG valida no banco se a dependência upstream existe antes de rodar, evitando queries vazias
- Arquitetura event-driven: cron substituído por
TriggerDagRunOperatorem cascata — elimina race conditions com a API do governo
- Fluxo contínuo: API → Download → Extração, encadeado com
TriggerRule.ALL_DONE— a etapa seguinte roda mesmo se a anterior falhar parcialmente - Isolamento por arquivo: Dynamic Task Mapping com
max_active_tis_per_dag=3(evita HTTP 429), lotes de 50 arquivos etry-exceptindividual — um anexo corrompido não mata a task extracao_planilhas.py: extrator unificado PNAB (roteamento aba → tabela) e LPG (3 templates: Editais, Contemplados, Dados Básicos)- Proteção contra OOM: rejeição de
.ods, engine calamine prioritária e timeoutSIGALRMde 120s por arquivo — elimina as causas de OOM Kill nos workers - Schema evolution:
_evolve_schema()adiciona colunas novas viaALTER TABLE; chaves em lowercase resolvemUndefinedColumnpor case-folding do Postgres
640270aaltera a estrutura de pastas do projeto9e4fed2adapta as DAGs para o bump do Airflow 2.8.1 → 3.2.2d8cdcc6atualiza o CI/CD para a nova estrutura
gh-pages. Seis commits em ~48 minutos, incluindo o redesenho da Visão das Metas com objetivo normativo e comparativo por política.- Mapeamento por meta e por política: o que existe, onde está, como se conecta
- Propôs nominalmente o pipeline dbt da Meta 3 — antes de ele existir no repositório
- Marcou com
✦as tabelas propostas que não existiam no schema original
agentes_dbt e extração bancáriaa77d1d0(01/07) cria o domínioagentes_dbt— 4 golds:perfil_agentes_completo,perfil_acesso_fomento,primeiro_acesso_contemplados,primeiro_acesso_resumo2112b07(08/07) implementa a extração de dados bancários do Transferegov3df7716(09/07) corrige autenticação SCA, rotas do BB Ágil e bugs de consolidação dofato_bbagil- Macros de data quality:
row_count_match,verificacao_tipagem - Efeito colateral: deixou
sources.ymlnamaincom marcadores de conflito não resolvidos (<<<<<<</=======/>>>>>>>) — corrigido depois pela PR #16
cotas_dbt — auditoria das cotas de ações afirmativascotas. É o primeiro domínio que produz um veredito de meta do PNC.- Grão payment-first:
fct_pagamentos_elegiveistem 1 linha por pagamento — todo pagamento é preservado, mesmo sem perfil ou sem ano, para o denominador da cota ser fiel e os órfãos ficarem visíveis - Cotas LPG completas: negra 25% · indígena 10% · PCD 5% · território vulnerabilizado 20%, em
distribuicao_cotas_lpg - Cotas PNAB: 3 grupos em
distribuicao_cotas_pnab. Golds separadas por programa — LPG e PNAB não se misturam, via a macrodistribuicao_cotas(programa, incluir_territorio) - Cobertura de ano: 56,2% → 61,6% com a 3ª camada de datação por nome de arquivo (
edital_ano_por_arquivo) — +28.950 pagamentos datados - Território: crosswalk IBGE de setores periféricos ingerido (
territorio_fcu_setores, 33.273 setores), colapsado a município emterritorio_municipio - Limpeza: subtotais ("TOTAL DE RECURSOS") e instruções de template filtrados em
contemplados_unifpara não vazarem ao fato - Corrigiu incidentalmente o
sources.ymlquebrado pela PR #15
Bloqueios abertos
| Bloqueio | Metas afetadas | Natureza | O que destrava |
|---|---|---|---|
| bbágil indisponível 4 models escritos e enabled=false: stg_bbagil, bbagil_ente_ano, fct_pagamentos_bbagil, comparativo_recebido_vs_pago |
Meta 2 · Meta 3 | Acesso — a API do BSC (bsc.cultura.gov.br) só resolve via VPN do governo |
Rodar a extração em ambiente autorizado (ou obter dump) para gerar bsc_pnab.fato_bbagil, depois virar enabled=true nos 4 models e reativar no gold/schema.yml |
| Denominador PNAB incorreto as cotas usam listas de contemplados (~R$2,7bi) |
Meta 3 | Semântica de dado — as listas medem repasse a entes federados, não pagamento a pessoas. Para cota, o correto é o pago (~R$447mi) | Depende do bbágil. Trocar a base do fato PNAB de valor-recebido para valor-pago |
| Rouanet / SALIC sem ingestão nenhum model, nenhuma DAG |
Meta 3 · Meta 4 · Meta 5 | Escopo — o domínio existe apenas como diagnóstico neste painel | Implementar a ingestão do SALIC. A Meta 4 é exclusivamente Rouanet, então hoje está integralmente parada |
| Cobertura de perfil nem todo contemplado preencheu ficha de raça/PCD |
Meta 3 | Teto de dado — não é bug, é ausência na origem | Backfill de fichas PNAB. Ler cobertura_pagamentos antes de qualquer conclusão de cota |
| Casamento territorial por nome ~47,5% dos com-perfil casam hoje |
Meta 3 (cota de 20%) | Qualidade — grafias divergentes de município subestimam a cota | Refinar o casamento; o IBGE do município viria do bbágil (ente_bbagil = id_plano_acao → raw_planos_acao.codigo_ibge) |
| Cobertura temporal em 61,6% 38,4% do valor sem ano identificado |
Meta 3 | Derivação — ano vem de 3 camadas (nome do edital, anexo, nome do arquivo) | Datação via Querido Diário (ano + IBGE por diário oficial) — planejada e documentada |
| CPF anonimizado na PNAB PF | Meta 3 | Acesso — CPF mascarado entra como NULL e vira órfão no denominador | Acesso ao dado completo. PJ (CNPJ) já casa normalmente |
Uma ressalva sobre os vereditos "✓ Respondido"
O veredito de cota (status_sobre_com_perfil) é binário — 'alcancada' ou 'descumprida' — e é calculado sobre pct_sobre_com_perfil, ou seja, sobre a fatia de pagamentos cujo perfil é conhecido. Isso é coerente com o desenho do pipeline, que expõe a cobertura antes das cotas. Mas não é a mesma coisa que o indicador normativo do PNC, que fala do percentual sobre o valor total pago. Com cobertura de perfil abaixo de 100%, os dois números divergem — e a diferença é maior quanto menor a cobertura.