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
28 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? (28)
AC01— AC01 · ★ 30/10/2026 (decisão do dono): pedido na página → uma linha JÁ ATIVA e UM e-mail de boas-vindas na fila (sem provedor, fica pendente), com o link de sair e o de "não fui eu", e SEM link de confirmar → o aviso semanal é montado dos eventos do vigia daquela companhia, com o link de saída → sair cancela, e depois disso não há aviso.AC02— AC02 · Nenhuma resposta — a página do pedido, a de confirmação, a de saída, o erro de e-mail inválido, o /admin/metricas — contém o endereço, e nenhuma linha de log o escreve.AC03— AC03 · A limpeza apaga o pedido nunca confirmado com mais dias que o prazo da configuração, e só ele: o confirmado fica, o recente fica.AC04— AC04 · O bloco "acompanhar" aparece logo depois do veredito na página de TODA companhia — as três mais vistas (ITUB4, PETR4, BBAS3) e as demais, em PT e EN — com o formulário para /acompanhar e o papel certo, e nenhum texto do bloco, das páginas de resposta ou dos e-mails carrega termo proibido.AC05— AC05 · Robô que segue formulário não cria pedido nem manda e-mail, e acima do teto de pedidos por hora (configuração) a resposta é 429 — sem guardar IP, como na chave grátis.AC06— AC06 · Sem RESEND_API_KEY o provedor é "arquivo": grava na fila pendente e devolve False.AC07— AC07 · O job semanal, com o provedor "arquivo": cada e-mail CONFIRMADO recebe UM e-mail com os eventos dos últimos 7 dias (antes da segunda do envio) dos papéis que acompanha, com o link de sair de cada papel; quem não tem evento não recebe nada; o teto diário da configuração segura o resto na fila, que sai no dia seguinte da mesma semana; rodar de novo não manda duas vezes; pedido não confirmado não recebe.AC08— AC08 · A semana devida é a segunda mais recente em que já passou das 08:00 NO FUSO da configuração (America/Sao_Paulo): segunda 07:59 de São Paulo ainda é a semana anterior; 08:00 já é a nova; domingo à noite é a segunda anterior.AC09— AC09 · O relatório "estado do produto" sai do dado, uma linha por número, na ordem do funil: Google real, concentração, chaves ativas e fiéis, acompanhamentos confirmados, e-mails da semana, eventos do vigia por classe (só os de segunda até hoje) e backup.AC10— AC10 · A carteira de segunda (Pro): pedido não confirmado não recebe; confirmado e Pro recebe UM e-mail com o valor, só os proventos com pagamento a partir de hoje, os eventos da semana dos papéis da carteira e o link de parar; chave que deixou de ser Pro não recebe (e não gasta teto); o teto do dia é o MESMO do envio do vigia, somado; rodar de novo não repete; pedir de novo troca a carteira; sair para.AC11— AC11 · O pedido pela /carteira: chave que não é Pro recebe 403 e a página dos planos, sem gravar nada; chave Pro grava UM pedido não confirmado e põe a confirmação na fila, e a resposta não repete o e-mail; o link confirma e o de sair para; carteira vazia é 400. A /carteira com posições mostra o pedido.AC12— AC12 · O boletim grátis: não confirmado não recebe; confirmado recebe UM e-mail com a semana ISO fechada (a de antes da segunda), as contagens, no máximo 5 linhas por tipo e "e mais N", o link da semana e o de sair; semana sem fato não manda nada; o teto do dia é UM só para vigia + carteira + boletim; rodar de novo não repete; sair para; pedir de novo antes de confirmar reenvia o MESMO link.AC13— AC13 · POST /boletim LIGA na hora UMA inscrição (30/10/2026, decisão do dono) e põe as boas-vindas na fila, com sair e "não fui eu", sem repetir o e-mail na resposta; robô não grava; e-mail inválido é 400; o link antigo de confirmar ainda liga um pedido pendente de antes da mudança; sair funciona e o desconhecido é 404 com noindex; as páginas de resposta oferecem o "acompanhar" desta companhia e a /hoje o convite.AC14— AC14 · O e-mail semanal de quem acompanha companhias passa a trazer os PROVENTOS A RECEBER desses papéis (valor, data-com, pagamento), e sai mesmo sem evento do vigia quando há provento; vai em HTML (molde da casa) com o texto puro junto; provento de outro papel não entra; o assunto diz o que há; sem evento e sem provento, nada sai.AC15— AC15 · Uma inscrição, duas listas: escolher "os dois" LIGA na hora (30/10/2026, decisão do dono) UMA linha em cada tabela com o MESMO token e manda UMA mensagem de boas-vindas com o sair de cada lista e o "não fui eu"; sair da revista tira SÓ da revista (o boletim continua); sair do boletim tira só do boletim.AC16— AC16 · No /chave-gratis a caixinha "Quero receber a revista semanal Super Dados B3" vem DESMARCADA; criar a chave sem marcá-la não põe ninguém em lista nenhuma nem manda e-mail da revista; marcada (ela é o consentimento), liga a revista na hora (30/10/2026) e manda as boas-vindas com sair e "não fui eu"; o boletim não entra.AC17— AC17 · Só a edição com `aprovada` = data do OK do dono aparece: em /revista (lista), em /revista/{n} (200, indexável, canônico, sem <script>, com volta para a home) e no sitemap; o rascunho (aprovada nula, texto qualquer, data inválida, arquivo faltando ou fora da pasta) é 404 e não aparece em lugar nenhum; número inválido é 404. ATAQUE: rascunho público; aprovar com "sim"; caminho de arquivo fora da pasta.AC18— AC18 · O envio da edição: sem X-Admin-Token é 404 (com token errado também); sem o OK do dono é 400 e nada sai; rascunho é 400; "simular" só conta; com tudo certo cada inscrito CONFIRMADO da revista (nunca o pendente, o que saiu ou quem só assina o boletim) recebe UM e-mail no molde da casa com as chamadas, o link da edição e o de sair; repetir não reenvia; o teto do dia é o mesmo do boletim e o que não cabe fica pendente; a ordem fica registrada com o OK, sem e-mail.AC19— AC19 · O convite da revista a quem já assina o boletim: só pela rota de admin (404 sem token, 400 sem o OK do dono); vai UMA vez a cada assinante confirmado do boletim que não está na revista, fora quem pediu para não receber nada; o convite sozinho não inscreve; o clique no link do convite inscreve na revista já confirmado (é o opt-in), e o token de quem não recebeu convite não inscreve.AC20— AC20 · O formulário das duas listas está no /revista (PT e EN), a home chama para ele, e o rodapé de toda página liga a revista; nenhuma opção vem marcada; o /admin/stats conta inscritos por lista (boletim, revista, os dois) e confirmados, sem e-mail; a exclusão a pedido e a guarda de 12 meses alcançam a tabela da revista.AC21— AC21 · `seguir` grava a linha JÁ ATIVA (confirmado_em = hora do pedido) e devolve 'novo'; pedir de novo é 'ja_acompanha' sem token; o endereço para no teto de papéis (configuração, 20) com 'teto_email'; sair libera uma vaga.AC22— AC22 · As boas-vindas (acompanhar em PT e EN; boletim; revista; os dois) dizem o que chega e quando, igual ao que o envio faz de fato (segunda às 8h de Brasília pela configuração do envio; fatos do vigia e proventos a receber; semana sem novidade não manda nada), trazem o link de sair num clique e a frase "Se não foi você que pediu, clique aqui e não enviamos mais nada" com o link do "não fui eu", em texto e em HTML, e nenhum link de confirmar.AC23— AC23 · Da mesma conexão, no máximo `teto_novos_por_ip_por_dia` (5) acompanhamentos novos por dia: o 6º é 429 com "Muitos pedidos hoje", não grava e não manda e-mail; outra conexão segue livre.AC24— AC24 · O link "não fui eu" abre uma página noindex com UM botão e, sozinho, não muda nada (o antivírus do e-mail que abre links não cancela ninguém); o botão (POST) cancela TUDO o que o endereço recebe (companhias, boletim, revista) e bloqueia inscrição nova por 30 dias nas três rotas, que respondem 429 sem mandar e-mail e sem repetir o endereço; o bloqueio guarda só o resumo do e-mail e vence no prazo; token desconhecido é 404 noindex.AC25— AC25 · Os pedidos de ANTES de 30/10/2026 continuam pendentes até o clique: o link antigo de confirmar (acompanhar, revista) liga o pedido ainda pendente e responde 200; nenhum pedido antigo é ligado por pedido novo de outra lista ou de outra companhia; link de pedido cancelado ou desconhecido é 404. ATAQUE: e-mails já enviados com link quebrado; ligar em massa os pedidos que nunca foram confirmados.AC26— AC26 · Nas páginas de resposta da companhia (/acoes/T/dividendos, /lucro, /divida, PT e EN) o bloco "acompanhar" vem LOGO ABAIXO da resposta (a lede do topo), antes da tabela e do "Como citar", não mais no fim; na página da companhia segue logo abaixo do veredito.AC27— AC27 · Cada inscrição manda boas-vindas, então o mesmo endereço não pode ser inscrito sem fim: no máximo `teto_inscricoes_por_email` (3) inscrições novas em cada lista em 30 dias, contando as que saíram; a 4ª é 'teto_email' (429 na rota, sem e-mail); a outra lista não é afetada; passado o período, volta a valer.AC28— AC28 · ★ 30/10/2026 (decisão do dono, para o bloco "Receba os fatos relevantes e os dividendos" ser verdade): o e-mail de segunda de quem acompanha a companhia traz os Fatos Relevantes que ela entregou à CVM e o radar viu na janela da semana (assunto, data de entrega, link do documento ORIGINAL na CVM), ao lado dos eventos do vigia e dos proventos; uma semana só com fato relevante já faz o e-mail sair; o fato entra por companhia (quem acompanha PETR3 recebe o fato da Petrobras), cai em UMA semana só (pela data em que o radar o viu, não pela de entrega, que a CVM publica com atraso), Comunicado ao Mercado não entra, e o link de sair continua.
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.