Skip to content

feat(emendas): adiciona dotação inicial e atualizada e orçamento x execução (MIR) - #18

Merged
luanaa2005 merged 4 commits into
mainfrom
feat/emendas-dotacao
Aug 10, 2026
Merged

feat(emendas): adiciona dotação inicial e atualizada e orçamento x execução (MIR)#18
luanaa2005 merged 4 commits into
mainfrom
feat/emendas-dotacao

Conversation

@TiagoSBittencourt

@TiagoSBittencourt TiagoSBittencourt commented Aug 10, 2026

Copy link
Copy Markdown
Member

Descrição

Atualiza a ingestão de emendas parlamentares do MIR (relatório do Tesouro Gerencial recebido por e-mail) para incluir duas novas colunas de valor — dotação inicial e dotação atualizada (itens 9 e 13 do relatório) — e propaga essas colunas pelas tabelas dependentes nas camadas bronze, silver e gold.

O relatório passou a trazer dois grãos na mesma tabela:

  • Empenho — cada linha é uma movimentação contábil de uma NE (ne_ccor real).
  • Dotação — orçamento no grão da classificação orçamentária (programa/ação/localizador/natureza/modalidade/fonte/ptres), sem empenho associado (ne_ccor = '-9').

Principais mudanças:

  • Ingestão (ne_tesouro_emendas_mir_ingest_dag.py): mapeia os itens 9/13 para dotacao_inicial/dotacao_atualizada, amplia a UNIQUE_KEY com a classificação orçamentária (para as linhas de dotação não colidirem), mantém os dois grãos no filtro (o filtro por ano descartava toda a dotação) e recria a tabela quando a PRIMARY KEY antiga (4 colunas) não corresponde à nova chave composta.
  • Bronze: tg_emendas passa a conter só o grão de empenho (ne_ccor <> '-9'); novo modelo tg_emendas_dotacao expõe o grão de dotação.
  • Silver: emendas_partidos, instrumentos_emendas e emendas_convenio (siconv) passam a carregar a dotação como referência; novo modelo emendas_orcamento_execucao junta orçamento × execução no mesmo grão da classificação (agregando a execução antes do join para evitar dupla contagem).
  • Gold: novo resumo_emendas_orcamento_execucao agrega orçamento × execução por parlamentar, com indicadores (saldo a empenhar, % empenhado, % pago).

⚠️ A dotação é definida no grão da classificação e se repete entre os empenhos daquela classificação. Em emendas_partidos/instrumentos_emendas/emendas_convenio ela é referência e não deve ser somada por empenho. Para totais corretos use emendas_orcamento_execucao / resumo_emendas_orcamento_execucao.

Tipo de mudança

  • Nova funcionalidade / pipeline
  • Correção de bug ou inconsistência de dados
  • Refatoração de modelo DBT
  • Documentação
  • Infraestrutura / CI
  • Outro: ___

Issues relacionadas

Closes #464

Domínio de revisão

  • GCES / OSS
  • IPEA
  • MIR
  • MCid
  • MinC
  • OSS
  • Múltiplos domínios: ___

Como testar / validar

cd airflow_lappis/dags/dbt/mir
dbt build --select \
  tg_emendas tg_emendas_dotacao \
  emendas_partidos instrumentos_emendas emendas_orcamento_execucao \
  emendas_convenio resumo_emendas_orcamento_execucao

Evidências

Checklist

  • Título do PR segue Conventional Commits
  • Issue relacionada foi referenciada (nenhuma issue aberta)
  • Testes DBT adicionados/atualizados (verificacao_tipagem para as novas colunas e modelos)
  • Documentação atualizada (schema.yml de bronze, silver e gold)
  • Sem dados sensíveis ou credenciais no código
  • Branch baseada em origin/main
  • Testes/lint executados — o hook make format falha por dívida de lint (ruff/E501) pré-existente no repositório, alheia a este PR; os arquivos deste PR foram formatados com black.

Os itens 9 e 13 do relatório do Tesouro Gerencial passam a ser mapeados
como dotacao_inicial e dotacao_atualizada. O relatório traz dois grãos na
mesma tabela: empenho (ne_ccor real) e dotação (ne_ccor = '-9', no grão da
classificação orçamentária).

- Amplia a UNIQUE_KEY com a classificação (ptres, natureza_despesa,
  modalidade_aplicacao, localizador_gasto, fonte_recursos_detalhada) para
  identificar as linhas de dotação sem colisão.
- Ajusta o filtro para manter os dois grãos; o filtro por ano descartava
  todas as linhas de dotação.
- Adiciona reset_table_if_pk_mismatch para recriar a tabela quando a PRIMARY
  KEY antiga (4 colunas) não corresponde à nova chave composta.
- Deduplica o lote pela UNIQUE_KEY antes do INSERT, protegendo o ON CONFLICT.
- tg_emendas passa a filtrar ne_ccor <> '-9' (grão de empenho).
- tg_emendas_dotacao (novo) expõe as linhas de dotação (itens 9/13,
  ne_ccor = '-9') no grão da classificação orçamentária, com dotacao_inicial
  e dotacao_atualizada tratadas por parse_financial_value.
- Documenta o novo modelo e seus testes de tipagem no schema.yml.
…das emendas

- emendas_partidos: anexa dotacao_inicial/atualizada por classificação como
  referência (o mesmo valor se repete entre empenhos — não deve ser somado).
- instrumentos_emendas e emendas_convenio: propagam as duas colunas de dotação.
- emendas_orcamento_execucao (novo): junta orçamento (dotado) e execução
  (empenhado/liquidado/pago) no mesmo grão da classificação, agregando a
  execução antes do join para evitar dupla contagem.
- Atualiza os schema.yml (emendas e siconv) com as colunas e testes de tipagem.
…entar

resumo_emendas_orcamento_execucao agrega a silver emendas_orcamento_execucao
por autor da emenda. Como dotação e execução já chegam no mesmo grão, as somas
por parlamentar não têm dupla contagem. Inclui indicadores (saldo a empenhar,
% empenhado, % pago) e documentação com testes de tipagem.

@luanaa2005 luanaa2005 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Muito bom Tiago, parabéns 🤖

@luanaa2005
luanaa2005 merged commit 06fc578 into main Aug 10, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: adicionar colunas de dotação inicial e dotação atualizada na ingestão de emendas parlamentares (TG)

2 participants