P/L, P/VP, ROE e EV/EBITDA: como os fundamentos são calculados (e por que diferem entre sites)
Status Invest, Fundamentus, Investidor10 e a bolsai mostram números diferentes para a mesma ação. A explicação raramente é erro. Quase sempre é uma escolha metodológica: período do lucro, conta CVM usada, número de ações, ajuste de proventos. Este guia destrincha as fórmulas dos cinco indicadores mais consultados, mostra onde cada plataforma diverge e dá o passo a passo para conferir qualquer cálculo a partir dos dados primários da CVM.
Por que sites mostram fundamentos diferentes para a mesma ação? Quatro escolhas explicam a divergência. Primeira: período do lucro (TTM, anual ou anualizado). Segunda: lucro consolidado total (conta 3.11) ou só da controladora (3.11.01). Terceira: número de ações em circulação ou total emitido. Quarta: data do preço usada no numerador. A combinação dessas escolhas produz P/L, P/VP, ROE e EV/EBITDA distintos, todos defensáveis dentro de cada metodologia.
Os cinco indicadores em uma visão geral
Antes de descer ao detalhe, vale alinhar as definições. A tabela abaixo organiza os indicadores que dominam screening de ações brasileiras. Os exemplos numéricos usam preços e fundamentos observados em abril de 2026. As fórmulas detalhadas aparecem nas seções específicas.
| Indicador | Fórmula resumida | O que mede | Quando é útil |
|---|---|---|---|
| P/L | Preço por ação ÷ LPA | Quantos anos de lucro atual o preço incorpora | Comparar empresas no mesmo setor; sinalizar otimismo de mercado |
| P/VP | Preço por ação ÷ VPA | Quantas vezes o patrimônio contábil o mercado paga | Bancos, holdings e empresas de capital intensivo |
| ROE | Lucro líquido 12m ÷ PL médio | Eficiência da empresa em gerar lucro sobre o patrimônio | Avaliar qualidade do negócio; comparar empresas dentro de um setor |
| EV/EBITDA | (Market cap + dívida líquida) ÷ EBITDA | Quantos anos de geração operacional o valor total da empresa equivale | Comparar empresas com estruturas de capital diferentes; M&A |
| DY | Proventos 12m ÷ preço por ação | Quanto o acionista recebeu em proventos vs preço pago | Estratégia de renda; comparar pagadoras de dividendos |
Cada um desses indicadores admite escolhas sutis na construção do numerador e do denominador. As próximas seções abrem cada uma e mostram onde mora a divergência entre plataformas.
P/L: a primeira armadilha está no lucro
A fórmula canônica para como calcular P/L é direta:
A pegadinha começa no LPA (lucro por ação). Três escolhas práticas mudam o número.
Período do lucro. O LPA pode usar três janelas distintas: lucro do último ano fiscal completo (anual), lucro dos últimos doze meses combinando o ITR mais recente com os três trimestres anteriores (TTM) ou anualização do trimestre mais recente (lucro do trimestre × 4). A bolsai usa TTM por padrão, alinhada à prática de Fundamentus e dos relatórios sell-side. Uma empresa cujo lucro subiu de patamar no meio do ano mostra P/L TTM bem distante do P/L anual.
Lucro consolidado total ou só da controladora. A DRE da CVM separa duas linhas: a conta 3.11 é o lucro líquido consolidado total do período, e a conta 3.11.01 é a parcela atribuível aos sócios da controladora, descartando a participação de minoritários. A bolsai usa 3.11 (consolidado total) na calculadora de fundamentos, consistente com a metodologia do Fundamentus. Outros sites usam 3.11.01. Em empresas com participações minoritárias relevantes, como Itaúsa, a diferença chega a 10–15%.
Número de ações. O denominador do LPA é o número de ações em circulação, e há sutileza no que entra e o que sai. Ações em tesouraria saem do número em circulação, mas algumas plataformas usam o total emitido bruto. Empresas que reportam capital em unidades, milhares ou milhões sem indicar a unidade exigem heurística para normalizar. A bolsai testa multiplicadores (1, 1.000, 1.000.000) contra a razoabilidade do P/VP resultante e usa dados de ações da B3 como referência quando disponíveis.
Na página específica sobre P/L da bolsai está o passo a passo do cálculo com fórmula, exemplos e screener Python.
P/VP: o patrimônio depende do setor
A fórmula segue o mesmo padrão do P/L, trocando lucro por patrimônio.
A divergência entre sites mora no patrimônio líquido. Empresas industriais e de varejo usam a conta CVM 2.03 (patrimônio líquido), padrão da estrutura BPP. Bancos têm balanço próprio: a estrutura padrão não cabe, e a CVM define contas próprias. A bolsai usa 2.07 (patrimônio líquido consolidado de instituições financeiras) somado a 2.08 (atribuível à controladora) para bancos. Sem essa adaptação, o P/VP de ITUB4, BBDC4 ou BBAS3 viria deslocado em direção ao mercado, distorcendo screens setoriais.
Holdings adicionam outra camada: o patrimônio inclui equivalência patrimonial das investidas. Para Itaúsa, por exemplo, o VPA reflete a parcela do patrimônio de Itaú, Alpargatas, Dexco e demais participações. A leitura do P/VP de uma holding precisa considerar que parte do valor de mercado já desconta o conglomerado ("desconto de holding"), tema fora deste guia mas que aparece no guia dedicado ao P/VP.
P/VP abaixo de 1 não significa barato em si: significa que o mercado precifica o patrimônio contábil com desconto. A pergunta seguinte é sempre por quê. Pode ser deterioração da capacidade de gerar lucro, expectativa de prejuízos futuros ou simplesmente que o setor opera em P/VP baixo de forma estrutural (transmissão elétrica, bancos médios, algumas commodities).
A documentação da API bolsai lista cada indicador retornado por /fundamentals/{ticker}, com fórmulas, contas CVM de origem e exemplos em curl e Python. A metodologia inteira é pública e auditável.
ROE: a média do patrimônio importa
ROE (return on equity, retorno sobre patrimônio líquido) responde uma pergunta diferente: quanto a empresa gera de lucro para cada real de patrimônio dos acionistas. A fórmula:
Três escolhas geram divergência entre plataformas.
Numerador. Mesma discussão do P/L: lucro TTM ou anual, total consolidado (conta 3.11) ou atribuível à controladora (3.11.01). A bolsai usa 3.11 em base TTM por padrão.
Denominador. Existem três convenções para o patrimônio: usar o saldo final do período, usar o saldo inicial ou usar a média entre início e fim. A média captura o capital que efetivamente esteve disponível durante o exercício para gerar o lucro. Empresas que fizeram emissão grande no meio do ano ou recompra agressiva têm ROE distorcido se a média não for usada. A bolsai usa a média entre os trimestres na janela TTM.
Bancos. A mesma adaptação do P/VP vale aqui. O ROE bancário usa as contas 2.07/2.08 em vez de 2.03. Esse detalhe é o que separa ROE de 18% (correto para BBDC4) de 12% (calculado errado a partir de 2.03, que mostra capital diferente em uma instituição financeira).
ROE saudável depende do setor. Tecnologia e bens de consumo de marca operam confortavelmente acima de 25%. Utilities reguladas entre 12% e 18%. Bancos grandes entre 15% e 22%. Commodities cíclicas variam de prejuízo a 40% conforme o momento do ciclo. Comparações entre setores enganam mais do que ajudam. O guia dedicado ao ROE destrincha leitura por setor, exemplos práticos e o passo a passo via API.
EV/EBITDA: o múltiplo que ignora a estrutura de capital
EV/EBITDA compara empresas com estruturas de capital diferentes ao colocar dívida e equity no numerador. A fórmula:
Aqui estão os três pontos onde plataformas divergem.
EBIT clean vs CVM 3.05. A conta CVM 3.05 (Resultado Antes do Resultado Financeiro e Tributos) inclui equivalência patrimonial, resultados de operações descontinuadas e itens não recorrentes. Esse não é o EBIT operacional usado em valuation. A bolsai constrói EBIT clean a partir de Lucro Bruto (conta 3.03) menos despesas operacionais (SG&A, contas 3.04.x), excluindo equivalência e outras receitas/despesas não operacionais. Alinhada à prática de Fundamentus e relatórios sell-side.
Depreciação e Amortização. A bolsai localiza D&A buscando o nome da conta que contenha "depreci%" dentro da hierarquia 6.01.01.x da DFC, ignorando explicitamente a amortização financeira (que pertence ao resultado financeiro, não ao operacional). Plataformas que tentam pegar a depreciação pela DRE ou pela equivalência patrimonial chegam a números diferentes; algumas confundem amortização contábil de intangível com amortização de dívida.
Dívida líquida. O cálculo da dívida total soma empréstimos e financiamentos de curto e longo prazo, debêntures emitidas e arrendamentos IFRS 16. Caixa subtraído usa caixa, equivalentes de caixa e aplicações financeiras de curto prazo. A inclusão de IFRS 16 pós-2019 muda EV/EBITDA significativamente em empresas que arrendam imóveis (varejistas) ou frota (aluguel de veículos). Comparações de série histórica precisam reconhecer essa quebra.
EV/EBITDA não se aplica a bancos. Dívida é matéria-prima do negócio, não capital tomado para alavancar operação. Depreciação operacional é desprezível porque o ativo principal é financeiro, não físico. A bolsai retorna null para esse indicador em ITUB4, BBDC4, BBAS3 e demais instituições financeiras. O guia completo do EV/EBITDA traz a leitura por setor e o cálculo passo a passo.
DY (Dividend Yield): o ajuste de proventos importa
Dividend yield mede quanto o acionista recebeu em proventos nos últimos doze meses em relação ao preço da ação.
Duas escolhas geram divergência.
Data de corte: ex-date ou payment_date. Sites diferem na hora de contabilizar um dividendo no DY de janela móvel. Algumas plataformas usam a data ex-dividendo (quando a ação passa a ser negociada sem direito ao provento). Outras usam a data de pagamento (quando o dinheiro entra na conta). A diferença chega a meses, e em quartis de virada de ano muda o ano contábil do pagamento. A bolsai usa ex_date para somar os últimos doze meses, alinhada à convenção da maioria das plataformas de mercado.
Inclusão de JCP. Juros sobre capital próprio (JCP) são tributados em 15% na fonte, ao contrário dos dividendos comuns (isentos para pessoa física hoje). A maioria das plataformas, incluindo a bolsai, soma dividendos e JCP no DY bruto. O guia sobre tributação de proventos detalha por que JCP cosma como dividendo bruto, mas não líquido, na carteira.
Ajustes de proventos (desdobramentos, grupamentos, bonificações) afetam o histórico. Quando uma ação faz desdobramento 1:2, o valor por ação do dividendo histórico precisa ser dividido por 2 para comparação. A B3 publica avisos de proventos sem ajuste embutido, e a bolsai aplica o fator de ajuste retroativamente ao construir o histórico exibido em /dividends/{ticker}. Sites que não aplicam esse ajuste mostram DY histórico inflado.
Por que sites mostram números diferentes
A tabela abaixo organiza as escolhas metodológicas mais comuns em quatro plataformas amplamente consultadas. Os critérios refletem o que cada plataforma documenta publicamente ou expõe na própria interface; algumas escolhas evoluem ao longo do tempo, portanto serve como referência indicativa, não absoluta.
| Critério | bolsai | Fundamentus | Status Invest | Investidor10 |
|---|---|---|---|---|
| Janela do lucro | TTM (12m) | TTM (12m) | TTM (12m) | TTM (12m) |
| Conta do lucro | 3.11 consolidado | 3.11 consolidado | Atribuível à controladora | Atribuível à controladora |
| PL para ROE/P/VP de bancos | 2.07 + 2.08 | 2.07 + 2.08 | Próprio do setor | Próprio do setor |
| EBIT | Clean (3.03 − SG&A) | Clean | CVM 3.05 | Mistura |
| D&A | DFC 6.01.01 "depreci%" | DFC | DRE/DFC | Variável |
| DY data de corte | ex_date | ex_date | ex_date | payment_date |
| Acesso programático | API REST oficial | Web scraping | Não oficial | Não oficial |
Em empresas convencionais (industriais, varejo, energia), as escolhas diferem pouco e os fundamentos convergem dentro de 2 a 5%. A divergência cresce em três cenários: empresas com participação minoritária relevante (10–15% de diferença em Itaúsa entre 3.11 e 3.11.01), bancos com tratamento da estrutura financeira, e cíclicas em virada de ciclo onde TTM e anual descolam fortemente. A acurácia interna da bolsai contra Fundamentus é de 96% em DFPs recentes (publicadas no último trimestre) e 82% no acervo histórico amplo, conforme detalhado no benchmark contra o Fundamentus.
Como conferir qualquer fundamento manualmente
O caminho honesto para validar um número é refazê-lo a partir dos dados primários. A API bolsai expõe as contas CVM brutas em /financials/{ticker} e os indicadores já calculados em /fundamentals/{ticker}. Comparar os dois lados a lado expõe a metodologia. O exemplo abaixo refaz o P/L de PETR4 manualmente, partindo da DRE consolidada.
import httpx
API_KEY = "sua_chave_aqui"
BASE = "https://api.usebolsai.com/api/v1"
HEADERS = {"X-API-Key": API_KEY}
def reconstruir_pl(ticker: str) -> dict:
"""Reconstrói P/L manualmente a partir das contas CVM e compara com o calculado."""
# 1. Cota atual e dados do balanço já calculados
fun = httpx.get(f"{BASE}/fundamentals/{ticker}", headers=HEADERS, timeout=10).json()
preco = fun["close_price"]
shares = fun["shares_outstanding"]
# 2. DRE consolidada da DFP mais recente (anual)
dre = httpx.get(
f"{BASE}/financials/{ticker}",
params={"statement_type": "DRE", "report_type": "DFP", "limit": 100},
headers=HEADERS,
).json()["data"]
lucro_311 = next(c["value"] for c in dre if c["account_code"] == "3.11")
lucro_31101 = next(
(c["value"] for c in dre if c["account_code"] == "3.11.01"),
None,
)
# 3. Calcula P/L pelos dois critérios
lpa_311 = lucro_311 / shares
pl_consolidado = preco / lpa_311
return {
"ticker": ticker,
"preco": preco,
"lucro_3_11": lucro_311,
"lucro_3_11_01": lucro_31101,
"shares_outstanding": shares,
"pl_manual_consolidado": round(pl_consolidado, 2),
"pl_api": fun["pl"],
"diferenca_pct": round((pl_consolidado - fun["pl"]) / fun["pl"] * 100, 2),
}
print(reconstruir_pl("PETR4"))
A saída mostra o cálculo manual em paralelo ao número da API. A diferença pequena (geralmente menos de 1%) entre o P/L manual (DFP anual) e o P/L da API (TTM) vem justamente da janela: TTM mistura ITRs recentes com a DFP anterior, capturando movimento mais recente do lucro.
Histórico do P/L e ROE em uma só chamada
Para entender a evolução de um indicador ao longo do ciclo, o endpoint /fundamentals/{ticker}/history devolve até 80 trimestres por ação, cada um com TTM normalizado. Útil para identificar regime de valuation: a empresa está em P/L baixo histórico ou em pico de múltiplo?
import httpx
API_KEY = "sua_chave_aqui"
BASE = "https://api.usebolsai.com/api/v1"
HEADERS = {"X-API-Key": API_KEY}
# Evolução trimestral de PETR4 nos últimos 3 anos
r = httpx.get(
f"{BASE}/fundamentals/PETR4/history",
params={"limit": 12},
headers=HEADERS,
)
print(f"{'data':12} {'preço':>7} {'P/L':>6} {'P/VP':>6} {'ROE':>6} {'EV/EBITDA':>10}")
for item in r.json()["history"]:
print(
f"{item['reference_date']} "
f"{item['close_price']:>7} "
f"{item['pl']:>6} "
f"{item['pvp']:>6} "
f"{item['roe']:>6} "
f"{item.get('ev_ebitda', '-'):>10}"
)
Com a série completa, é direto plotar a evolução, calcular percentis (em que decil histórico o P/L atual está), comparar contra IBOV ou aplicar regimes setoriais. O guia de backtesting com Python usa exatamente essa estrutura para validar estratégias de valor e momentum.
Perguntas frequentes
Por que Status Invest, Fundamentus e Investidor10 mostram P/L diferente para a mesma ação?
Quatro escolhas metodológicas geram a divergência. Primeira: período de lucro. Sites podem usar lucro do último ano fiscal completo (anual), TTM (últimos 12 meses combinando ITRs e DFP) ou anualização do trimestre. Segunda: lucro consolidado total (conta CVM 3.11) ou apenas atribuível à controladora (3.11.01), descartando minoritários. Terceira: número de ações em circulação versus total, com tratamento diferente de ações em tesouraria. Quarta: data de referência do preço usada no numerador. Cada combinação produz um P/L distinto, todos defensáveis.
O que é TTM e por que importa no cálculo de P/L?
TTM (trailing twelve months, ou últimos doze meses) soma os últimos quatro trimestres publicados: o ITR mais recente mais os três anteriores, recompondo doze meses contínuos. A vantagem é refletir o resultado corrente, não a foto congelada da DFP de dezembro publicada em março. Para uma empresa cujo lucro mudou de patamar no meio do ano, o P/L TTM se distancia bastante do P/L baseado na DFP anual. A bolsai usa TTM por padrão, alinhada à prática de Fundamentus e de relatórios sell-side.
Por que bancos têm fórmulas diferentes para P/VP e ROE?
O balanço patrimonial bancário não cabe na estrutura padrão da DRE/BPP. As contas CVM 2.07 (patrimônio líquido consolidado) e 2.08 (atribuível à controladora) substituem o uso de 2.03 (patrimônio líquido em empresas não financeiras). Sem essa adaptação, o ROE de ITUB4, BBDC4 ou BBAS3 viria deslocado. Além disso, EV/EBITDA não se aplica a bancos: dívida é matéria-prima do negócio, e a depreciação operacional não é significativa. A bolsai retorna null para esse indicador em bancos.
EBIT da CVM (conta 3.05) é o mesmo EBIT usado em valuation?
Não. A conta 3.05 da CVM (Resultado Antes do Resultado Financeiro e Tributos) inclui itens que distorcem o EBIT operacional, como equivalência patrimonial, resultados de operações descontinuadas e efeitos de impairment não recorrentes. O EBIT operacional clean usado em EV/EBIT e EV/EBITDA é construído a partir de Lucro Bruto menos despesas operacionais (SG&A), exclui equivalência e outras receitas/despesas não operacionais. A bolsai usa essa definição clean, alinhada à prática de relatórios sell-side e ao cálculo de Fundamentus.
Como conferir se o fundamento de um site está correto?
O caminho honesto é reproduzir o cálculo a partir dos dados primários. Baixe a DRE e o BPP da CVM (ITRs e DFP), identifique as contas usadas (3.11 para lucro, 2.03 ou 2.07/2.08 para patrimônio, 3.01 para receita), aplique a fórmula TTM se for o caso e compare. A API bolsai expõe esses dados brutos em /financials/{ticker} e os indicadores calculados em /fundamentals/{ticker}, permitindo auditar passo a passo. Quando um site diverge em mais de 10%, a explicação quase sempre é metodologia, não erro.
Leia também
- P/L (Preço/Lucro): como calcular via API da B3: fórmula, TTM, screener em Python e tabela setorial
- P/VP via API em Python: VPA, ajuste de bancos e leitura por setor
- ROE via API em Python: numerador, denominador, tratamento de bancos e setores
- EV/EBITDA via API em Python: EBIT clean, D&A, IFRS 16 e por que não se aplica a bancos
- Dividend Yield via API em Python: TTM, ex_date, JCP e ajustes de proventos
- Alternativa ao Fundamentus: API oficial: benchmark de precisão e migração do scraping
- Screener de ações brasileiras via API: filtros combinados e ranking de papéis
- API gratuita da B3: 200 requisições por dia, cotação, fundamentos e FIIs
- Agente de IA + MCP para análise de ações: ChatGPT, Claude e OAuth2 com dados da bolsai
Disclaimer
O conteúdo tem caráter informativo e educacional, e não constitui recomendação de compra ou venda de qualquer valor mobiliário. Indicadores fundamentalistas são insumos para análise; não substituem due diligence completa, leitura das demonstrações financeiras e avaliação compatível com o perfil do investidor. Valores ilustrativos refletem a base pública disponível em 2026-04-30 e podem variar após a publicação de novos ITRs, DFPs e ajustes contábeis.
por bolsai • 11 de maio de 2026 • 11 min de leitura
Comece agora
A bolsai expõe os 27 indicadores fundamentalistas em uma API REST com metodologia documentada e contas CVM citadas em cada cálculo. O plano gratuito libera 200 requisições por dia, suficiente para auditar fundamentos de dezenas de papéis. Detalhes do plano Pro em usebolsai.com/#pricing.