Skip to content

DFP — Mutações do patrimônio líquido consolidado

Stable ID: cvm.cia_aberta.cia_aberta_dfp/dmpl_con

Contexto semântico

Nome: DFP — Mutações do patrimônio líquido consolidado

O que contém: Movimentações das contas de patrimônio líquido do grupo, incluindo a dimensão de coluna patrimonial do formulário.

Por que consultar: Use para investigar alterações no patrimônio líquido, lucros, dividendos, reservas e outros movimentos do grupo.

Escopo e limitações: A coluna patrimonial (coluna_df) é parte da identidade; não remova essa dimensão ao agregar.

Aliases e nomes oficiais: DMPL_CON, dmpl_con, Mutações do PL consolidado

Evidências:

  • catalogo/cvm.yml — cia_aberta_dfp/dmpl_con
  • docs/catalog/deep_docs.yml — dmpl_con
  • https://dados.cvm.gov.br/dataset/cia_aberta-doc-dfp

Comece aqui: guia de acesso aos dados

Readiness (label, not a promise): declared:tolerada_com_residuo · materialized:none · queryable:unknown

Declared (catalog YAML)

field value
dataset cia_aberta_dfp
parte unica layout zip_multi_tabela
parte unica vigencia ate=(unknown — not declared anywhere), de=(unknown — not declared anywhere)
chave (parte unica) cnpj_cia, dt_refer, versao, cd_conta, ds_conta, ordem_exerc, coluna_df
chave_status (parte unica, declared) tolerada_com_residuo
max_linhas_excedentes (parte unica) 7000
max_grupos_residuais (parte unica) 80
politica_dedup_silver (parte unica) keep_first
source URL (parte unica) https://dados.cvm.gov.br/dados/CIA_ABERTA/DOC/DFP/DADOS/dfp_cia_aberta_{aaaa}.zip

Operator notes (verbatim from the catalog comments)

parte unica

# TOLERADA_COM_RESIDUO (re-medido 2026-09-08, zips atuais 2022/2023
# no servidor): 2022 = 3.200 excess (2.728 grupos, 100% exatos);
# 2023 = 6.176 (5.133 exatos + 67 residuais VL_CONTA). Status saiu
# de tolerada: 2023 tem residuo. Caps 7.000/80.
# TOLERADA (medido 2024/2025 com +ds_conta): 2024 = 1.032 excess,
# excess_excl_null_keys=1.032 (100% byte-idênticos); 2025 = 1.424 excess,
# excess_excl_null_keys=1.424 (100% byte-idênticos). ds_conta resolve
# divergências de rótulo — validado: 100% dos grupos com rótulo divergente
# têm ST_CONTA_FIXA='N' (conta definida pela empresa, não do plano padrão
# CVM). Cap 2.000 = ~1,4x o maximo medido.

Observed runs (from meta/runs manifests)

Last good run:

field value
timestamp 20260820T030134
outcome written
exit_code 0
rows_written 1174173
source_sha256
manifest_path C:\Users\plini\Repos\ciano-lake\data\meta\runs\cia_aberta_dfp\20260820T030134.json
competencia (scoped) (unscoped — not period-specific proof)

Latest failed attempt (kept distinct from the last good run):

field value
timestamp 20260818T141221
outcome error
exit_code 1
error bpa_con: Quality check failed: [PASS] row_count: 59,262 rows (validates > 0)
[PASS] null_rate_cnpj_cia: cnpj_cia: 0/59,262 null/empty (0.00%)
[PASS] null_rate_dt_refer: dt_refer: 0/59,262 null/empty (0.00%)
[PASS] null_rate_versao: versao: 0/59,262 null/empty (0.00%)
[PASS] null_rate_cd_conta: cd_conta: 0/59,262 null/empty (0.00%)
[PASS] null_rate_ordem_exerc: ordem_exerc: 0/59,262 null/empty (0.00%)
[FAIL] uniqueness: 446 duplicate rows on key [cnpj_cia, dt_refer, versao, cd_conta, ordem_exerc] (59,262 total, 58,816 distinct); bpa_ind: Quality check failed: [PASS] row_count: 88,897 rows (validates > 0)
[PASS] null_rate_cnpj_cia: cnpj_cia: 0/88,897 null/empty (0.00%)
[PASS] null_rate_dt_refer: dt_refer: 0/88,897 null/empty (0.00%)
[PASS] null_rate_versao: versao: 0/88,897 null/empty (0.00%)
[PASS] null_rate_cd_conta: cd_conta: 0/88,897 null/empty (0.00%)
[PASS] null_rate_ordem_exerc: ordem_exerc: 0/88,897 null/empty (0.00%)
[FAIL] uniqueness: 440 duplicate rows on key [cnpj_cia, dt_refer, versao, cd_conta, ordem_exerc] (88,897 total, 88,457 distinct); bpp_con: Quality check failed: [PASS] row_count: 101,380 rows (validates > 0)
[PASS] null_rate_cnpj_cia: cnpj_cia: 0/101,380 null/empty (0.00%)
[PASS] null_rate_dt_refer: dt_refer: 0/101,380 null/empty (0.00%)
[PASS] null_rate_versao: versao: 0/101,380 null/empty (0.00%)
[PASS] null_rate_cd_conta: cd_conta: 0/101,380 null/empty (0.00%)
[PASS] null_rate_ordem_exerc: ordem_exerc: 0/101,380 null/empty (0.00%)
[FAIL] uniqueness: 736 duplicate rows on key [cnpj_cia, dt_refer, versao, cd_conta, ordem_exerc] (101,380 total, 100,644 distinct); bpp_ind: Quality check failed: [PASS] row_count: 150,064 rows (validates > 0)
[PASS] null_rate_cnpj_cia: cnpj_cia: 0/150,064 null/empty (0.00%)
[PASS] null_rate_dt_refer: dt_refer: 0/150,064 null/empty (0.00%)
[PASS] null_rate_versao: versao: 0/150,064 null/empty (0.00%)
[PASS] null_rate_cd_conta: cd_conta: 0/150,064 null/empty (0.00%)
[PASS] null_rate_ordem_exerc: ordem_exerc: 0/150,064 null/empty (0.00%)
[FAIL] uniqueness: 736 duplicate rows on key [cnpj_cia, dt_refer, versao, cd_conta, ordem_exerc] (150,064 total, 149,328 distinct); dfc_mi_con: Quality check failed: [PASS] row_count: 48,500 rows (validates > 0)
[PASS] null_rate_cnpj_cia: cnpj_cia: 0/48,500 null/empty (0.00%)
[PASS] null_rate_dt_refer: dt_refer: 0/48,500 null/empty (0.00%)
[PASS] null_rate_versao: versao: 0/48,500 null/empty (0.00%)
[PASS] null_rate_cd_conta: cd_conta: 0/48,500 null/empty (0.00%)
[PASS] null_rate_ordem_exerc: ordem_exerc: 0/48,500 null/empty (0.00%)
[FAIL] uniqueness: 320 duplicate rows on key [cnpj_cia, dt_refer, versao, cd_conta, ordem_exerc] (48,500 total, 48,180 distinct); dfc_mi_ind: Quality check failed: [PASS] row_count: 65,449 rows (validates > 0)
[PASS] null_rate_cnpj_cia: cnpj_cia: 0/65,449 null/empty (0.00%)
[PASS] null_rate_dt_refer: dt_refer: 0/65,449 null/empty (0.00%)
[PASS] null_rate_versao: versao: 0/65,449 null/empty (0.00%)
[PASS] null_rate_cd_conta: cd_conta: 0/65,449 null/empty (0.00%)
[PASS] null_rate_ordem_exerc: ordem_exerc: 0/65,449 null/empty (0.00%)
[FAIL] uniqueness: 332 duplicate rows on key [cnpj_cia, dt_refer, versao, cd_conta, ordem_exerc] (65,449 total, 65,117 distinct); dmpl_con: Quality check failed: [PASS] row_count: 225,735 rows (validates > 0)
[PASS] null_rate_cnpj_cia: cnpj_cia: 0/225,735 null/empty (0.00%)
[PASS] null_rate_dt_refer: dt_refer: 0/225,735 null/empty (0.00%)
[PASS] null_rate_versao: versao: 0/225,735 null/empty (0.00%)
[PASS] null_rate_cd_conta: cd_conta: 0/225,735 null/empty (0.00%)
[PASS] null_rate_ordem_exerc: ordem_exerc: 0/225,735 null/empty (0.00%)
[FAIL] uniqueness: 197,764 duplicate rows on key [cnpj_cia, dt_refer, versao, cd_conta, ordem_exerc] (225,735 total, 27,971 distinct); dmpl_ind: Quality check failed: [PASS] row_count: 246,495 rows (validates > 0)
[PASS] null_rate_cnpj_cia: cnpj_cia: 0/246,495 null/empty (0.00%)
[PASS] null_rate_dt_refer: dt_refer: 0/246,495 null/empty (0.00%)
[PASS] null_rate_versao: versao: 0/246,495 null/empty (0.00%)
[PASS] null_rate_cd_conta: cd_conta: 0/246,495 null/empty (0.00%)
[PASS] null_rate_ordem_exerc: ordem_exerc: 0/246,495 null/empty (0.00%)
[FAIL] uniqueness: 205,806 duplicate rows on key [cnpj_cia, dt_refer, versao, cd_conta, ordem_exerc] (246,495 total, 40,689 distinct); dra_con: Quality check failed: [PASS] row_count: 6,520 rows (validates > 0)
[PASS] null_rate_cnpj_cia: cnpj_cia: 0/6,520 null/empty (0.00%)
[PASS] null_rate_dt_refer: dt_refer: 0/6,520 null/empty (0.00%)
[PASS] null_rate_versao: versao: 0/6,520 null/empty (0.00%)
[PASS] null_rate_cd_conta: cd_conta: 0/6,520 null/empty (0.00%)
[PASS] null_rate_ordem_exerc: ordem_exerc: 0/6,520 null/empty (0.00%)
[FAIL] uniqueness: 30 duplicate rows on key [cnpj_cia, dt_refer, versao, cd_conta, ordem_exerc] (6,520 total, 6,490 distinct); dra_ind: Quality check failed: [PASS] row_count: 6,702 rows (validates > 0)
[PASS] null_rate_cnpj_cia: cnpj_cia: 0/6,702 null/empty (0.00%)
[PASS] null_rate_dt_refer: dt_refer: 0/6,702 null/empty (0.00%)
[PASS] null_rate_versao: versao: 0/6,702 null/empty (0.00%)
[PASS] null_rate_cd_conta: cd_conta: 0/6,702 null/empty (0.00%)
[PASS] null_rate_ordem_exerc: ordem_exerc: 0/6,702 null/empty (0.00%)
[FAIL] uniqueness: 18 duplicate rows on key [cnpj_cia, dt_refer, versao, cd_conta, ordem_exerc] (6,702 total, 6,684 distinct); dre_con: Quality check failed: [PASS] row_count: 30,786 rows (validates > 0)
[PASS] null_rate_cnpj_cia: cnpj_cia: 0/30,786 null/empty (0.00%)
[PASS] null_rate_dt_refer: dt_refer: 0/30,786 null/empty (0.00%)
[PASS] null_rate_versao: versao: 0/30,786 null/empty (0.00%)
[PASS] null_rate_cd_conta: cd_conta: 0/30,786 null/empty (0.00%)
[PASS] null_rate_ordem_exerc: ordem_exerc: 0/30,786 null/empty (0.00%)
[FAIL] uniqueness: 210 duplicate rows on key [cnpj_cia, dt_refer, versao, cd_conta, ordem_exerc] (30,786 total, 30,576 distinct); dre_ind: Quality check failed: [PASS] row_count: 43,367 rows (validates > 0)
[PASS] null_rate_cnpj_cia: cnpj_cia: 0/43,367 null/empty (0.00%)
[PASS] null_rate_dt_refer: dt_refer: 0/43,367 null/empty (0.00%)
[PASS] null_rate_versao: versao: 0/43,367 null/empty (0.00%)
[PASS] null_rate_cd_conta: cd_conta: 0/43,367 null/empty (0.00%)
[PASS] null_rate_ordem_exerc: ordem_exerc: 0/43,367 null/empty (0.00%)
[FAIL] uniqueness: 202 duplicate rows on key [cnpj_cia, dt_refer, versao, cd_conta, ordem_exerc] (43,367 total, 43,165 distinct); dva_con: Quality check failed: [PASS] row_count: 38,554 rows (validates > 0)
[PASS] null_rate_cnpj_cia: cnpj_cia: 0/38,554 null/empty (0.00%)
[PASS] null_rate_dt_refer: dt_refer: 0/38,554 null/empty (0.00%)
[PASS] null_rate_versao: versao: 0/38,554 null/empty (0.00%)
[PASS] null_rate_cd_conta: cd_conta: 0/38,554 null/empty (0.00%)
[PASS] null_rate_ordem_exerc: ordem_exerc: 0/38,554 null/empty (0.00%)
[FAIL] uniqueness: 252 duplicate rows on key [cnpj_cia, dt_refer, versao, cd_conta, ordem_exerc] (38,554 total, 38,302 distinct); dva_ind: Quality check failed: [PASS] row_count: 56,070 rows (validates > 0)
[PASS] null_rate_cnpj_cia: cnpj_cia: 0/56,070 null/empty (0.00%)
[PASS] null_rate_dt_refer: dt_refer: 0/56,070 null/empty (0.00%)
[PASS] null_rate_versao: versao: 0/56,070 null/empty (0.00%)
[PASS] null_rate_cd_conta: cd_conta: 0/56,070 null/empty (0.00%)
[PASS] null_rate_ordem_exerc: ordem_exerc: 0/56,070 null/empty (0.00%)
[FAIL] uniqueness: 238 duplicate rows on key [cnpj_cia, dt_refer, versao, cd_conta, ordem_exerc] (56,070 total, 55,832 distinct)
manifest_path C:\Users\plini\Repos\ciano-lake\data\meta\runs\cia_aberta_dfp\20260818T141221.json
competencia (scoped) (unscoped)

Observed residuals (tolerada_com_residuo evidence)

(none observed — either the table has no residual tolerance, or the coverage inventory has not run; absence is not proof of absence)

Materialized (coverage inventory, per environment)

(no coverage inventory available — run tools/coverage_inventory.py collect and pass the JSONL to the publisher; without it nothing is claimed about what physically exists)

Deep documentation (curated, grounded in the declarations above)

DFP consolidated statement of changes in equity (DMPL), annual. The key carries the equity-column dimension coluna_df — a real CVM column, confirmed by reading the raw zip header (not an invented dimension) — plus ds_conta (the account is the pair cd_conta+ds_conta) and ordem_exerc (current vs prior period). Residual groups are CVM publishing two different VL_CONTA for the same account/period; silver collapses them with keep_first and bronze's _residuos.json records the discarded values.

Grain: one row per (company, reference date, version, account pair, period column, equity column)

Units: values in BRL (VL_CONTA); amounts as reported by the company

Safe-join guidance:

  • Join only with the full declared key. Dropping coluna_df re-introduces ~197k excess rows (the 2025 measurement that exposed the missing dimension); dropping ds_conta re-introduces label divergence (100% of divergent-label groups are non-fixed, company-defined accounts).
  • A row is current-period or prior-period per ordem_exerc — filter before comparing periods or you compare a company against itself.

Evidence references:

  • catalogo/cvm.yml — dmpl_con entry (measured 2026-09-08, caps 7000/80)
  • ARCHITECTURE.md §6 — DFP/ITR keys (coluna_df, ds_conta, ordem_exerc rationale)

Postgres-queryable

(unknown — publication state is a publisher fact, filled at publication time; it is never inferred from materialization)