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_condocs/catalog/deep_docs.yml — dmpl_conhttps://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)