P/L (Preço/Lucro): Como Calcular e Acessar via API da B3 em Python
por bolsai · 18 de abril de 2026 · 8 min de leitura
O P/L (Preço/Lucro) continua sendo o múltiplo mais citado na análise fundamentalista brasileira. O texto apresenta a fórmula, a metodologia TTM adotada pela API P/L da bolsai e exemplos para calcular pl python em qualquer ação da B3, incluindo um screening por múltiplo baixo combinado com ROE alto.
O que é o P/L e como interpretar o múltiplo
O P/L (Preço/Lucro) é o múltiplo que divide o preço de uma ação pelo lucro por ação acumulado nos últimos doze meses. Um P/L de 8 indica que o investidor paga R$8 por cada R$1 de lucro anual gerado pela empresa. Valores muito baixos podem sinalizar ação barata ou risco embutido; valores altos costumam refletir expectativa de crescimento futuro.
A leitura do indicador nunca é absoluta. Um P/L de 30 pode ser razoável para uma empresa de tecnologia em expansão e absurdo para um banco maduro. O ponto de partida é sempre a comparação setorial e a trajetória histórica da própria companhia.
Para uma visão prática do que está disponível via API e como os indicadores se conectam, há um material complementar sobre o acesso a dados fundamentalistas da B3.
Fórmula do P/L e por que usar o lucro TTM
A definição canônica é simples:
P/L = Preço da ação / LPA (TTM)
LPA (TTM) = Lucro líquido dos últimos 4 trimestres / Número de ações
O detalhe que distorce boa parte dos cálculos informais está na escolha do período do lucro. Usar apenas o último trimestre anualizado ignora sazonalidade. Usar o lucro do último exercício anual torna o indicador desatualizado por até quinze meses após o fim do período contábil.
A prática aceita internacionalmente é a métrica trailing twelve months (TTM), que soma os quatro trimestres mais recentes disponíveis. Em 2026-04-01, por exemplo, o TTM de uma empresa cujo último ITR publicado foi o 4T 2025 soma 1T 2025 + 2T 2025 + 3T 2025 + 4T 2025. Quando o 1T 2026 é divulgado, a janela rola automaticamente.
Como a bolsai calcula o P/L (metodologia baseada na conta 3.11 da CVM)
O ponto sensível da metodologia é a definição de lucro líquido. A DRE brasileira tem duas linhas próximas: a conta 3.09 (lucro líquido do exercício) e a conta 3.11 (lucro líquido consolidado atribuído aos acionistas controladores). A bolsai utiliza a conta 3.11 como referência, consistente com o padrão adotado pelo Fundamentus. Essa escolha explica a concordância de 96% em dados recentes observada no comparativo de acurácia entre fontes.
A sequência interna é:
- Ingestão dos ITRs e DFPs publicados na CVM.
- Extração da conta 3.11 dos últimos quatro trimestres.
- Cálculo do número de ações pela composição de capital, cruzando com o dado oficial da B3 quando disponível.
- LPA TTM = soma da conta 3.11 / número de ações.
- P/L = preço de fechamento mais recente / LPA TTM.
Bancos exigem tratamento distinto no balanço (patrimônio líquido via contas 2.07/2.08 em vez de 2.03), mas para o P/L a fonte do lucro permanece a 3.11. Casos como ITUB4 e BBAS3 seguem o mesmo pipeline.
Como acessar o P/L de qualquer ação da B3 via API em Python
O endpoint principal é GET /fundamentals/{ticker}. A resposta traz o P/L já calculado, junto com o LPA, preço de referência e dezenas de outros indicadores. O exemplo a seguir consulta o P/L ITUB4, que aparecia próximo de 8,4 em 2026-04-01.
import httpx
API_KEY = "sk_sua_chave_aqui"
BASE = "https://api.usebolsai.com/api/v1"
HEADERS = {"X-API-Key": API_KEY}
r = httpx.get(f"{BASE}/fundamentals/ITUB4", headers=HEADERS)
data = r.json()
print(f"Ticker: {data['ticker']}")
print(f"Preço: R$ {data['preco']:.2f}")
print(f"LPA TTM: R$ {data['lpa']:.2f}")
print(f"P/L: {data['pl']:.2f}")
print(f"ROE: {data['roe']:.2f}%")
Saída esperada em abril de 2026:
Ticker: ITUB4
Preço: R$ 35.12
LPA TTM: R$ 4.18
P/L: 8.40
ROE: 21.32%
Crie uma conta gratuita para rodar esse código. São 200 requisições por dia, sem cartão de crédito.
Criar conta gratuitaA mesma chamada funciona para qualquer papel listado. Em WEGE3, o retorno fica em torno de um P/L de 30, reflexo do prêmio de crescimento atribuído pelo mercado. Em PETR4, o valor gira perto de 4. É um sinal aparente de barateamento que, na prática, precisa ser lido à luz do ciclo de commodities discutido mais adiante.
Para comparar a evolução trimestral do múltiplo, o endpoint /fundamentals/{ticker}/history devolve até 11 anos de série, cada ponto com seu respectivo TTM.
Screening por P/L: encontrando ações com múltiplo baixo
O filtro clássico de value investing combina P/L baixo com rentabilidade alta. A lógica é direta: preço descontado só interessa se a empresa gerar retorno consistente sobre o capital. O endpoint /screener aceita os parâmetros pl_max e roe_min e devolve a lista de papéis que satisfazem as condições.
import httpx
API_KEY = "sk_sua_chave_aqui"
BASE = "https://api.usebolsai.com/api/v1"
HEADERS = {"X-API-Key": API_KEY}
# P/L abaixo de 10 e ROE acima de 15%
r = httpx.get(
f"{BASE}/screener",
params={
"pl_max": 10,
"roe_min": 15,
"order_by": "pl",
},
headers=HEADERS,
)
resultados = r.json()["results"]
print(f"{'Ticker':8}{'P/L':>7}{'ROE':>9}{'Setor':>22}")
for a in resultados[:10]:
print(f"{a['ticker']:8}{a['pl']:>7.2f}{a['roe']:>8.1f}% {a['sector']:>20}")
Saída típica em 2026-04:
Ticker P/L ROE Setor
BBAS3 4.31 18.6% Bancos
ITUB4 8.40 21.3% Bancos
BBSE3 8.92 40.1% Seguradoras
VIVT3 9.15 15.7% Telecomunicações
TAEE11 9.47 17.2% Energia
Para conhecer todos os parâmetros aceitos (incluindo dy_min, pvp_max, market_cap_min e filtros setoriais), consulte o endpoint /screener na documentação completa.
Quando o P/L engana: setores cíclicos, empresas em prejuízo, efeitos não-recorrentes
Três cenários clássicos distorcem a leitura do indicador e exigem atenção antes de qualquer decisão.
Setores cíclicos
Em commodities, o P/L tende a ser enganosamente baixo no topo do ciclo, quando os lucros estão inflados pelo preço da commodity, e absurdamente alto no fundo, quando os lucros desabam. A PETR4 em 2026-04 negociava com P/L próximo de 4, valor que parece atrativo isoladamente mas reflete um cenário de Brent historicamente alto. VALE3 passou por dinâmica análoga em 2021. A leitura correta envolve olhar o P/L médio de ciclo, em vez de se ater ao múltiplo spot.
Empresas em prejuízo
Quando o LPA é negativo, o P/L também é, e perde completamente a utilidade comparativa. MGLU3 apresentou P/L negativo em vários trimestres durante o ciclo de ajuste do varejo digital entre 2023 e 2025. Em casos assim, múltiplos alternativos como EV/Receita ou P/SR fazem mais sentido. A API da bolsai sinaliza explicitamente esses casos, o que facilita o tratamento programático.
Efeitos não-recorrentes
Venda de ativo, reversão de provisão ou crédito tributário pontual podem inflar o lucro de um trimestre e puxar o P/L TTM para baixo sem que o resultado operacional tenha melhorado. Uma leitura cruzada com a margem EBIT e com o lucro líquido ajustado é indispensável. Os dados brutos da DRE (acessíveis via /financials/{ticker}) permitem identificar a origem do lucro e separar o recorrente do extraordinário.
Faixas típicas de P/L por setor no mercado brasileiro
As faixas abaixo são referências históricas observadas na B3. Servem como calibração de expectativa, não como regra.
| Setor | P/L típico | Exemplos |
|---|---|---|
| Bancos | 6 – 12 |
ITUB4, BBAS3, SANB11 |
| Utilities (energia, saneamento) | 8 – 14 |
TAEE11, SBSP3, ELET3 |
| Seguros | 8 – 15 |
BBSE3, PSSA3, CXSE3 |
| Varejo | 10 – 25 |
LREN3, ASAI3, PCAR3 |
| Tecnologia e crescimento | 15 – 40 |
WEGE3, TOTS3, NUBR33 |
| Commodities cíclicas | 3 – 8 (topo de ciclo) |
PETR4, VALE3, SUZB3 |
P/L em contexto: relação com ROE, P/VP e crescimento
O P/L isolado é quase sempre insuficiente. A combinação com outros múltiplos e taxas de crescimento revela se o preço faz sentido.
A relação matemática entre P/L e P/VP é direta: P/VP = P/L × ROE. Uma empresa com ROE de 20% e P/L de 10 terá P/VP de 2. Para entender o lado patrimonial desse trio, o post específico sobre P/VP via API em Python aprofunda o tema.
O earnings yield (inverso do P/L, ou seja, 1/(P/L)) é útil para comparar o retorno implícito da ação com a NTN-B ou o CDI. Um P/L de 10 equivale a um yield de 10% ao ano, contra os 6% reais oferecidos por uma NTN-B longa em 2026.
Benjamin Graham, em O Investidor Inteligente, sugeria P/L menor que 15 combinado com P/VP menor que 1,5 como triagem inicial. A fórmula sobrevive como filtro de value, ainda que hoje o investidor observe também a qualidade do lucro e a trajetória de crescimento antes de converter o screening em tese.
Perguntas frequentes
Qual o P/L ideal para uma ação?
Não existe um P/L ideal universal. O múltiplo depende do setor, da fase de crescimento da empresa e do ciclo econômico. Bancos brasileiros costumam operar entre 6 e 12, empresas de tecnologia entre 15 e 40. O P/L só faz sentido comparado a empresas do mesmo setor e ao histórico da própria empresa.
Como calcular o P/L no Python?
A fórmula é P/L = preço da ação dividido pelo LPA (lucro por ação) dos últimos 12 meses. No Python, a forma mais direta é consumir a API da bolsai: httpx.get("https://api.usebolsai.com/api/v1/fundamentals/ITUB4", headers={"X-API-Key": API_KEY}).json()["pl"] retorna o valor calculado com TTM normalizado.
P/L negativo significa que a ação é ruim?
P/L negativo indica apenas que o lucro líquido TTM da empresa foi negativo, ou seja, a companhia teve prejuízo no período. O múltiplo perde utilidade analítica nesse caso e não deve ser usado para comparação. A API da bolsai retorna null ou um valor negativo explícito para que o consumidor trate o cenário.
Qual a diferença entre P/L trailing e P/L forward?
O P/L trailing (TTM) usa o lucro realizado nos últimos 12 meses. O P/L forward usa projeções de lucro para os próximos 12 meses, elaboradas por analistas. O trailing é objetivo e auditável; o forward depende de estimativas sujeitas a revisão. A API da bolsai entrega P/L trailing, calculado a partir dos balanços oficiais publicados na CVM.
Próximos passos
O P/L é apenas a porta de entrada. Um indicador P/L bem calculado, alinhado à metodologia usada em uma API fundamentalista robusta de referência, reduz o ruído do trabalho analítico e permite automatizar carteiras, rankings e alertas com poucas linhas de Python. Consulte a referência da API para os demais endpoints e limites do plano, ou acesse diretamente a página de preços para comparar os tiers.
Leia também
Este conteúdo é educativo e não constitui recomendação de investimento.