Dados B3 › Transparência
Transparência
Transparência — como você confere os números você mesmo
Versão do dado 2026-11-03-ponte-b3-codigo-de-fundo · página gerada em 2026-11-07 01:13 UTC. Se isto não bater com o /saude, você está lendo uma cópia em cache.
O que é conferido, antes de cada publicação — 1238 testes automáticos, coletados ao vivo
21 são invariantes de DADO (o número fecha?) e 131 são de produto — gate de acesso, navegação, idioma, conector de IA. Chamar os 1238 de 'invariantes' seria inflar: a divisão é conferível na própria lista. Não é uma seleção à mão dos melhores exemplos: cada teste abaixo foi achado agora, introspectando os arquivos de teste de verdade, do mesmo jeito que pytest --collect-only acharia. Agrupados pelo que protegem, não pelo arquivo onde moram.
Nível 1 — Integridade: o dado fecha? (21)
CP01— CP01 · Milhar e decimal no separador do idioma: 1.234.567 e 1.234,57 em PT; 1,234,567 e 1,234.57 em EN; casas pedidas exatas; escape de HTML.CP02— CP02 · A bandeira diz a cor pelo rótulo do idioma, com o ponto na cor do token; o texto e os motivos saem no idioma (sem versão EN, cai no PT); sem motivo, nenhuma lista; tudo escapado.CP03— CP03 · O bloco: a frase do topo, a bandeira, cada pergunta com os seus itens (item indisponível com a classe `nd`), o link de metodologia certo de cada número na língua, a nota, o JSON e o link do veredito.CP04— CP04 · A célula: margem e ROIC em % com 1 casa, os outros com 1 casa, — quando indisponível; liquidez em milhões com 1 casa; nome cortado em 28 caracteres; o ponto da bandeira na cor.CP05— CP05 · Ordenação por qualquer coluna nos dois sentidos, a bandeira na ordem verde < amarela < vermelha, ordem desconhecida vira "ticker", filtro de setor exato; quem não tem o número vai para o fim nos DOIS sentidos.CP06— CP06 · Entram as companhias com liquidez média no intervalo [piso, teto) — o piso entra, o teto não — e com veredito; em ordem de ticker.CP07— CP07 · A página: a janela em milhões na intro e na descrição, o total da base, os setores como filtro (o ativo em negrito, "todos" vira link), a contagem da tabela filtrada, a ordem padrão (ticker ascendente; outra coluna descendente); PT e EN.CP08— CP08 · A página das companhias: a lista é cortada no limite da configuração (a contagem "N de M" é a total), filtra por tipo e por papel (maiúsculo), o contador mostra só os últimos meses da configuração mas conta a base inteira, data em dd/mm/aaaa (EN: AAAA-MM-DD; sem data, —), os links de filtro levam o idioma com `&`, e o papel liga para a página dele na língua.CP09— CP09 · `?classe=fiis` e `?classe=etfs` montam a página da classe: os tipos e o contador do vigia dela, o link do papel para /fiis ou /etfs, o formulário com a classe escondida, o JSON da classe, as faixas da configuração no texto e a aba da classe em negrito; classe desconhecida é a das companhias.CP10— CP10 · /vigia/{T}: a contagem de todos os eventos do papel no lede (ou a frase de nenhum), o filtro por tipo com o idioma, o JSON com a classe (a de companhia sem), o link para a página certa do papel e para "todos os eventos" da classe.CP11— CP11 · Nas páginas de fundo e de ETF: o cabeçalho do contador e a coluna de tipo trazem os rótulos do vigia da classe no idioma; a data sai dd/mm/aaaa em PT; as faixas de P/VP, DY, vacância, taxa e ágio saem INTEIRAS (um rótulo a mais que os cortes), e os percentuais da configuração ×100; tipo desconhecido é ignorado; o papel é cortado em 12 caracteres; "com o filtro" só com filtro; o campo do formulário devolve o papel filtrado.CP12— CP12 · Valores escolhidos em cima da borda do arredondamento: janela de R$ 1.500.000,50 aparece como "2" milhões (não "1"); liquidez de R$ 1.050.000,50 como "1,1 mi"; setor vazio não vira "None".CP13— CP13 · Data com hora ("2026-09-15T10:00") sai 15/09/2026 em todas as páginas do vigia; o papel do filtro é cortado em 12 caracteres também nas páginas de companhia e de ETF; filtro só por papel já é "com o filtro" nas páginas de fundo e de ETF; os rótulos PT de tipo nas companhias; e os cortes da configuração que caem em cima da borda do arredondamento (2,49% → "2", não "3"; R$ 1.500.000,50 → "2" milhões, não "1") saem pela conta exata.CP14— CP14 · A classe sai do dígito final (3 ON; 4–8 PN; 11 UNT; outro ou sem dígito, nada).CP15— CP15 · P/FCO = valor de mercado ÷ caixa das operações; P/FCF = valor ÷ (FCO + capex, que vem negativo); só com caixa positivo (zero não); banco, seguradora e valor de mercado ausente ou zero ficam sem nada.CP16— CP16 · Cada indicador por tema com números redondos: P/Receita, EV/Receita, P/EBITDA e P/EBIT (só com denominador positivo), EV/EBIT, earning yield (lucro dos controladores, ou o total na falta), DL/PL, dívida bruta/PL (curta + longa; só uma delas basta), PL/ativos, passivos/ativos, margem EBITDA, giro, payout e os CAGR de 5 anos (só com as duas pontas positivas).CP17— CP17 · A posição no setor (1 = melhor; o sentido de cada chave; sem regra de direção ou com menos de 3 pares, nada); a mediana só com 3+ pares; DY do ano = soma ÷ fechamento do último pregão do ano; DY médio só dos anos pedidos com DY; o radar de datas-com dos últimos 5 anos a partir do dia 1 do mês; o checklist com cada limiar e o que não se aplica a banco; a foto de 12 meses só com denominador positivo.CP18— CP18 · As réguas a meio real do zero e os limiares como NÚMERO (não como a constante, que um defeito mudaria junto): caixa de 0,50 ainda dá P/FCO; CAGR com ponta de 0,50; EBITDA, EBIT e receita de 0,50–1,00 ainda dividem; ROE 0,5, DY 0,05 e liquidez de R$ 10 milhões exatos passam o checklist; seis anos de lucro com o mais antigo negativo passam os "últimos 5"; lucro zero não é lucro; PL ausente não quebra a razão dívida/PL; pregão sem data final não quebra; empate no P/L não conta como melhor; data-com de novembro e do próprio dia entram; os temas de cada chave são os certos; e `hoje` passado é usado, não o relógio.CP19— CP19 · Uma companhia sintética com números redondos, pelo caminho inteiro da página: valor de mercado = ações × fechamento; LPA, VPA sobre o PL dos controladores; dívida líquida e EV; DY 12m só da classe do principal; payout do exercício; P/FCO e P/FCF.CP20— CP20 · As réguas do valor de mercado nos números exatos: ações em milhares só abaixo de 1% do PL dos controladores (exatamente 1% não é corrigido, e cai fora da banda); a banda [0,02; 50] com as duas pontas DENTRO e 50,5 fora; entre 1% e a banda, nada é corrigido.CP21— CP21 · O que a CP20 não alcançava: CAGR de 1 ano; o ano do bloco de temas é o do valuation, não o último indicador; PL dos controladores de 50 centavos ainda passa pela banda; sem provento no exercício não há proventos do ano; sem lucro e com provento, nada de payout; LPA de 0,50 ainda dá payout.
Nível 2 — Semântica: a conta significa o que o cálculo supõe? (0)
Nível 3 — Econômico: o resultado é possível no mundo real? (0)
Outros testes do produto (0)
Gate comercial, navegação e o conector MCP — testam se o produto funciona, não se um número está certo, então não entram nos 3 níveis acima por natureza. Contados e listados do mesmo jeito:
Reconstrua você mesmo — margem líquida de 5 empresas, 4 setores
Não pedimos que você confie nos números. Eis a margem líquida de cinco empresas de quatro setores diferentes, cada uma reconstruída direto do balanço anual (DFP) na CVM — lucro líquido ÷ receita, batendo exatamente com o valor publicado. Para QUALQUER indicador, de qualquer empresa, a cadeia inteira até a linha do arquivo da CVM está em /linhagem:
| Empresa · setor | Lucro líq. (conta CVM) | Receita (conta CVM) | Margem =÷ |
|---|---|---|---|
| WEGE3 · indústria | R$ 6,78 bi DRE:3.11 | R$ 40,80 bi DRE:3.01 | 16,6% |
| VALE3 · mineração | R$ 11,81 bi DRE:3.11 | R$ 213,59 bi DRE:3.01 | 5,5% |
| PETR4 · petróleo | R$ 110,61 bi DRE:3.11 | R$ 497,55 bi DRE:3.01 | 22,2% |
| ITUB4 · banco | R$ 45,85 bi DRE:3.09 | R$ 387,12 bi DRE:3.01 | 11,8% |
| BBAS3 · banco | R$ 16,78 bi DRE:3.11 | R$ 319,46 bi DRE:3.01 | 5,3% |
Baixe a DFP de qualquer uma delas na CVM, pegue as contas de lucro e receita, divida — você chega no mesmo número. Bancos usam a receita de intermediação (o que faz sentido pra um banco), então a reconciliação é ciente do setor; os demais usam a receita de vendas. Valores do último exercício.
Por que às vezes divergimos de outro site (e não é erro)
Uma diferença entre dois sites geralmente não é um estar errado — é uma escolha de método. A nossa está aberta:
- Capital médio vs final: ROE e ROIC usam patrimônio/capital médio (ano atual + anterior ÷ 2), não o saldo final — então não são uma divisão ingênua de um ano só.
- Controladora vs consolidado: dizemos qual cada item usa.
- TTM vs anual: múltiplos trimestrais usam lucro dos últimos 12 meses.
- IFRS 16, goodwill, caixa, imposto excepcional: cada um tratado explicitamente e sinalizado quando distorce.
Os testes mordem? Sim — casos reais que a bateria já pegou
Um teste que nunca falha pode significar dado perfeito — ou teste fraco. Estes nasceram de erros reais que passaram, e hoje reprovam — só aparece o que existe de verdade na bateria coletada acima:
- I-B16 · o P/L = 0 dos bancos: a CVM reporta o nº de ações ora em unidades, ora em milhares (varia por empresa e por ano); o market cap saía 1000× menor e o P/L dava zero. O I-B16 (preço × ações recomputado) pegou — corrigimos 661 múltiplos anuais e 2.027 trimestrais.
- I-B24 · o lucro que sumia: a conta de lucro/PL varia por banco (Itaú 3.09, BB 3.11); se a busca por rótulo falha, o número some em silêncio e o ROE nasce errado. I-B24 faz esse buraco reprovar.
- H-B23 · o dividend yield de 800%: provento antigo na B3 vem com preço não ajustado por desdobramento; sem o H-B23 o yield sairia absurdo como se fosse real. A flag mantém o registro e avisa.
- I-B20 · o furo do COTAHIST 2023: no 1º deploy, o download de um ano de preços falhou em silêncio; a API subiu com ~50 mil preços a menos e a bateria passou, porque nenhum teste olhava cobertura. Criamos o I-B20 — ano sem preço agora reprova o build alto.
- I-B33 · Petróleo e Gás em −89,6% numa semana: o COTAHIST não é ajustado por desdobramento; um split 10:1 lia como −90% de retorno semanal e ficava no acumulado para sempre, sem nada reprovar (um filtro cego de amplitude nem resolveu — só trocou o erro de sinal). I-B33 (nenhuma semana de setor além de ±35%, a régua é a própria bolsa) faz o build parar.
- I-B31 · 364 de 865 semanas do índice setorial congeladas: ao estender a série até 2010, setor sem nenhuma empresa com market cap naquela semana virava fator 1,0 — uma linha reta que o retorno acumulado lia como 'mercado parado', e o retorno 'desde 2010' saía ficcional (+527%). I-B31 reprova qualquer semana repetida ao centavo.
- I-E05 · o P/L de 2010 da EMBRAER com preço de 2025: a busca de preço ponto-no-tempo caía para a frente sem teto quando o ticker atual não tinha preço na época do balanço (troca de código, mudança de classe); o múltiplo saía calculado com um preço 15 anos no futuro, em 22% das linhas anuais e trimestrais, em silêncio. A janela de 45 dias (e o I-E05) barra isso: sem pregão dentro do prazo, o múltiplo não é calculado.
- I-E04 · a AZUL com R$ 1,67 quadrilhão de valor de mercado: o balanço trazia 54,7 trilhões de ações da recuperação judicial, mas o preço usado já estava na base pós-grupamento de 1:150.000 — duas pontas em bases diferentes, market cap errado por ordens de grandeza. I-E04 (valor de mercado nunca maior que o PIB do Brasil) faz esse absurdo reprovar o build.
Até onde vai cada bloco de dado
Aqui não tem asterisco: esta é a cobertura ano a ano, contada agora. Indicadores (ROE, ROIC, margens, crescimento) saem só das demonstrações e cobrem a série inteira. Múltiplos (P/L, P/VP, EV/EBITDA) exigem preço e número de ações — e o nº de ações vem do Formulário de Referência, que quanto mais antigo menos companhia entregou em formato aproveitável. A diferença entre as duas colunas é limite da fonte, não buraco de ingestão. Se você procurar um P/L antigo e não achar, é porque ninguém tem — não porque escondemos. Os mesmos números em JSON: /cobertura.
| Ano | Empresas com indicadores | Empresas com múltiplos |
|---|---|---|
| 2025 | 440 | 290 |
| 2024 | 444 | 296 |
| 2023 | 442 | 298 |
| 2022 | 429 | 295 |
| 2021 | 423 | 296 |
| 2020 | 411 | 274 |
| 2019 | 372 | 166 |
| 2018 | 327 | 167 |
| 2017 | 318 | 165 |
| 2016 | 312 | 154 |
| 2015 | 304 | 144 |
| 2014 | 302 | 140 |
| 2013 | 293 | 131 |
| 2012 | 291 | 112 |
| 2011 | 284 | 98 |
| 2010 | 277 | 34 |
Cobertura ao vivo
456 empresas · 883,569 pontos de preço · 8,670 reapresentações registradas · última atualização 2026-11-06 01:27:27. Contagens completas ao vivo em /saude.
Fontes: CVM (dados abertos, ODbL) e B3 (COTAHIST). Não afiliado à B3 nem à CVM. Não é recomendação de investimento.
Os números desta página são ao vivo. Versão do dado 2026-11-03-ponte-b3-codigo-de-fundo · página gerada em 2026-11-07 01:13 UTC. Se isto não bater com o /saude, você está lendo uma cópia em cache.