← voltar ao painel

Guia: como analisar um ativo e decidir quando comprar

Este guia explica o que cada número desta plataforma significa, como eles se combinam numa decisão e onde estão as armadilhas. É material de estudo pessoal, não recomendação de investimento.


1. A pergunta que estamos respondendo

Não é "essa ação vai subir amanhã?". É:

Esta empresa vai me pagar bem ao longo de anos, e o preço de hoje é razoável para isso?

Isso separa duas coisas que iniciantes costumam misturar:

Pergunta O que responde Nota do painel
A empresa é boa? Qualidade do negócio ao longo de ~10 anos nota_qualidade
Ela me paga renda? Dividendo atual e sustentável nota_dividendos
O preço está bom? Desconto e catalisadores nota_valorizacao + preço teto

Uma empresa excelente a um preço péssimo é um investimento ruim. Uma empresa medíocre barata pode ser um investimento bom — ou uma armadilha de valor. As três notas existem para você não confundir uma coisa com a outra.


2. Os indicadores, em português claro

Para ações

Indicador O que é Como ler
P/L Preço ÷ Lucro por ação Quantos anos de lucro atual você paga. Baixo = barato ou o mercado espera o lucro cair
P/VP Preço ÷ Valor patrimonial por ação Abaixo de 1 = paga menos que o patrimônio contábil. Comum em bancos; raro em empresas de marca
ROE Lucro ÷ Patrimônio líquido A rentabilidade do negócio. O indicador mais importante. Compare sempre com a Selic
DY Dividendo 12M ÷ Preço Renda anual em %. Sempre confira se o número é bruto e se veio de provento extraordinário
Payout Dividendo ÷ Lucro Acima de 100% a empresa distribui mais do que ganha — insustentável ou devolução de capital
Margem líquida Lucro ÷ Receita Quanto sobra de cada real vendido

Para FIIs

Indicador O que é Como ler
P/VP Cota ÷ Valor patrimonial Abaixo de 1 = comprando o patrimônio com desconto
DY 12M Rendimento 12M ÷ Cota FII distribui ~95% do lucro semestral por lei — o yield é mais previsível
Vacância % do imóvel vazio (tijolo) Vacância subindo antecipa queda de rendimento
Liquidez diária R$ negociados por dia Abaixo de ~R$ 500 mil/dia você pode ficar preso na hora de vender

A régua que muda tudo: a Selic

No Brasil a renda fixa é o custo de oportunidade de tudo. Com a Selic em 14,25% e o CDI em 14,78%, um ativo que rende 8% ao ano precisa de uma boa justificativa — normalmente crescimento ou isenção fiscal.

Atenção à tributação, que muda a comparação:

Por isso o painel mostra o DY bruto e o guia insiste na conta líquida.


3. Preço teto — quanto vale a pena pagar

Todo ativo tem um preço acima do qual o investimento deixa de fazer sentido, por melhor que a empresa seja. É isso que a seção Preço teto calcula.

Como funciona

Nenhum método sozinho é confiável, então calculamos vários e tiramos a mediana (que ignora o método extremo, ao contrário da média):

Método Fórmula O que ele enxerga
Bazin DPA ÷ DY alvo "Que preço faz esse dividendo render o que eu exijo?"
Gordon DPA × (1+g) ÷ (k − g) Valor presente de todos os dividendos futuros
Graham √(22,5 × LPA × VPA) Lucro e patrimônio juntos
Múltiplo P/L P/L mediano histórico × LPA "Quanto o mercado costuma pagar por essa ação"
Múltiplo P/VP P/VP mediano histórico × VPA Idem, sobre o patrimônio

Depois — e aqui está a parte que erramos na primeira versão — o consenso é tirado por família, não por método solto:

Família Métodos Mede
renda Bazin, Gordon o fluxo de dividendo
lucro Graham, múltiplo P/L a capacidade de gerar lucro
patrimônio múltiplo P/VP, valor patrimonial o valor dos ativos

valor da família = MEDIANA dos métodos daquela família preço justo = MEDIANA entre as famílias PREÇO TETO = preço justo × (1 − margem de segurança)

Atenção a uma limitação real: quando existem 4 famílias (ação com DCF), a mediana é a média das duas do meio — a mais alta e a mais baixa não pesam nada. No BBAS3 isso significa que a família renda e o DCF ficam de fora do número final. Não é bug (mediana serve justamente para ignorar extremos), mas você precisa saber: o painel declara quais famílias ficaram de fora, em familias_fora_da_mediana. Olhe sempre o consenso por família, não só o número.

Por que agrupar. Vários "métodos" medem a mesma coisa por caminhos diferentes. Num FII, valor_patrimonial (VPA) e multiplo_pvp (P/VP mediano × VPA) são ambos valor patrimonial — se votarem separado, afogam o Bazin 2 a 1, e num FII de papel o fluxo de juros é o ativo. Foi exatamente esse erro que fazia o BTCI11 aparecer como caro quando rendia 12,8% isento.

A margem de segurança não é sobre o risco do ativo — é sobre o risco de você estar errado. Por isso ela é diferente por tipo:

A margem de segurança (15% por padrão) não é sobre o risco da empresa — é sobre o risco de você estar errado. Benjamin Graham a chamava de a única proteção contra o próprio otimismo. Suba para 25% se estiver inseguro.

Como ler o resultado

O veredito manda mais que a situação. "Abaixo do teto" sozinho não é sinal de compra. O campo veredito junta a situação com a confiança e diz o motivo:

"abaixo do teto, MAS o modelo não é confiável aqui: 2 alerta(s) sobre os dados"

Quando isso aparece, o painel deixa de pintar o número de verde. Antes o BBAS3 estampava "abaixo do teto, +16,1%" em verde tendo lucro em queda de 26% e dividendo cortado em 79% logo abaixo — os alertas estavam lá, mas quem bate o olho lê o verde. Um modelo que sabe que não está confiável precisa dizer isso onde você olha primeiro.

As armadilhas

  1. Graham é generoso demais no Brasil. A constante 22,5 foi calibrada nos EUA com juros de 3-4%. Com Selic de 14,25%, ela quase sempre devolve o maior preço do conjunto. Por isso usamos mediana.
  2. Múltiplos históricos carregam outra era de juros. Se a ação negociava a P/VP 1,8 quando a Selic era 6%, esse múltiplo não volta só porque já existiu.
  3. Dividendo fora do normal envenena tudo — nos dois sentidos. O script usava o menor entre o DPA de 12M e a média de 5 anos, para não projetar um ano excepcional para sempre. Só que essa regra cometia o erro espelhado num corte: pegava o fundo do poço e o eternizava. Foi por isso que o BBAS3 apareceu com Bazin de R$ 6,44 — o dividendo dele caiu 79% (de R$ 2,61 em 2024 para R$ 0,55 nos 12 meses até jul/2026), e o método respondia "só pago R$ 6,44 se for isso para sempre". Hoje a base é a mediana de três leituras: 12 meses, média de 5 anos e o normalizado (payout mediano × LPA de meio de ciclo). A mediana descarta o extremo dos dois lados. Com o mesmo dado, o Bazin do BBAS3 passou a R$ 14,97 — e continua abaixo dos R$ 21,76 que sairiam se projetássemos o dividendo bom de 5 anos atrás. O mesmo vale para o LPA.
  4. Preço teto não é preço-alvo. Não é para onde a ação vai; é o máximo que você aceita pagar. São coisas diferentes.

  5. Commodity quebra o método. PETR4 pagou R$ 0,00 por ação em 2020 e R$ 16,78 em 2022, com LPA indo de R$ 0,55 a R$ 14,61. Nenhum modelo baseado em histórico acerta isso. O painel marca esses ativos como cíclicos e rebaixa a confiança — para eles, use múltiplos de ciclo e preço da commodity, não o preço teto.

  6. Lucro do ano fechado envelhece. Os métodos de lucro usam o LPA do último ano completo. Quando o resultado está virando, isso mente: o BBAS3 aparecia como "abaixo do teto" com o lucro caindo 53,5% no 1T26. O painel agora compara o trimestre corrente anualizado (ITR/CVM) com o ano fechado e avisa.

Como sabemos que a calibração presta: o backtest

Um preço teto que nunca é atingido não te protege — só te paralisa. Rode:

bash python scripts/backtest_targets.py

Ele reconstrói, para cada ano do histórico, qual teria sido o teto usando apenas dados disponíveis até aquele ano, e compara com o preço real. A leitura:

Taxa de disparo Diagnóstico
0% modelo quebrado ou impossível de satisfazer — recalibrar
10% a 40% disciplina útil: comprar é exceção, como deve ser
acima de 60% frouxo demais, aprova quase tudo

Calibração atual: 24% no geral, com os ativos entre 20% e 40% — e os disparos caem em 2021, 2022 e 2024, que foram de fato os fundos de banco e de FII no período. O PETR4 dá 0%, e isso é esperado pelo motivo do item 5, não um defeito escondido.

Tudo é calibrável em config/valuation.json — mude e rode python scripts/price_targets.py --all para ver o efeito, depois python scripts/backtest_targets.py para ver se a mudança melhorou ou piorou.


4. Valuation intrínseco — o método Damodaran

O preço teto da seção anterior olha para uma foto: quanto o ativo paga hoje, quanto o mercado costumou pagar por ele. É rápido e honesto, mas todo ele é extrapolação do passado. O método de Aswath Damodaran (professor de valuation da NYU Stern, cujo trabalho é a referência mundial no assunto) faz a outra pergunta, a que de verdade define valor:

Quanto de dinheiro este ativo vai colocar no bolso do dono, ano a ano, pelos próximos dez anos e depois — e quanto vale receber isso, dado o risco?

caixa do ano t valor hoje = Σ ────────────────────────── + perpetuidade t=1..10 (1 + custo de capital)^t

Roda em python scripts/dcf_damodaran.py --alldata/dcf/, aparece na página de cada ativo e na tela Valuation comparado.

Três modelos, porque três ativos geram caixa diferente

O script escolhe o modelo automaticamente pelo setor:

Ativo Modelo Ideia central
Empresa operacional (PETR4) FCFF Projeta receita, margem e reinvestimento. Chega ao valor da empresa inteira e subtrai a dívida — o que sobra é do acionista.
Banco e holding (BBAS3, ITUB4, ITSA4) Excesso de retorno Banco não tem "dívida" a subtrair: depósito é a matéria-prima dele. Parte do patrimônio de hoje e soma só o que ele render acima do custo de capital.
FII de papel (BTCI11, RBRY11) Carteira indexada A carteira de CRI rende indexador + spread. Quando o juro cai, o rendimento cai — e a taxa de desconto cai junto. O que decide o valor é o spread, não o DY de hoje.

A regra de ouro do modelo de banco: se o ROE for igual ao custo de capital, a ação vale exatamente 1× o VPA. Todo prêmio sobre o patrimônio é retorno excedente descontado. É por isso que banco que rende 20% de ROE num país de custo de capital 18% negocia perto de 1× o livro — a vantagem é fina.

As premissas que mais pesam (e de onde vêm)

Nada aqui é chutado; cada número tem fonte auditável em config/dcf.json:

O que a tela mostra, e como ler

  1. Campo de futebol. Todos os métodos de preço na mesma régua. Métodos discordando é informação: a largura da nuvem é a incerteza real do valuation.
  2. Três mundos possíveis. Pessimista / base / otimista, cada um mexendo nos motores (retorno, crescimento, custo de capital), não no resultado. O valor esperado é a média ponderada 25/50/25. O cenário pessimista é o que importa: se mesmo nele o preço está abaixo, a margem de segurança é real.
  3. De onde sai o valor. Quanto vem dos dez anos projetados e quanto vem da perpetuidade — a parte que ninguém sabe. Se a perpetuidade é mais de 70% do valor, trate o número como faixa, não como alvo.
  4. Matriz de sensibilidade. Custo de capital × crescimento. É a parte mais honesta do modelo: se o preço de hoje cabe dentro da matriz, o mercado não está errado — você é que está escolhendo em qual célula acredita. Células onde a conta estoura (desconto perto do crescimento) ficam vazias de propósito.
  5. DCF reverso. Em vez de "quanto vale?", pergunta "o que o mercado acredita?" — qual crescimento ou custo de capital faz o modelo devolver exatamente o preço de hoje. Deixa o preço contar a história dele.

Onde o DCF erra (e por que ainda vale)

  1. A perpetuidade domina. Metade ou mais do valor costuma estar no "e depois do ano 10" — a parte mais incerta. Normal em DCF; é também sua maior fragilidade.
  2. Commodity não tem margem "normal". PETR4 projetada por uma margem média de dez anos não descreve nenhum ano específico. O painel marca o ativo como cíclico e avisa. Para ele, a faixa vale mais que o número.
  3. Beta americano subestima risco brasileiro. Os betas do Damodaran são medidos contra o S&P 500; uma ação brasileira quase nunca tem risco relativo tão baixo. Há um piso de beta para não produzir custo de capital irrealista — e quando ele morde, o painel avisa e a matriz mostra o valor com o custo mais alto de qualquer jeito.
  4. Holding não é só lucro contábil. Para ITSA4 o modelo olha o lucro das participações; o outro jeito é a soma das partes a valor de mercado (NAV) menos o desconto de holding. Os dois podem discordar — o painel lembra disso.

O DCF não substitui o preço teto: entra no consenso como um voto a mais — o único que olha para frente. Por isso ele vale como família própria e não é afogado pelos quatro métodos que olham para trás. Quando os dois concordam, a convicção é alta. Quando discordam, o porquê da discordância é a análise.


5. Receber dividendos todos os meses

O objetivo: em qualquer mês do ano, cair dinheiro na conta. A seção Calendário de proventos resolve isso.

O que descobrimos na prática

FII resolve o calendário sozinho. Fundos imobiliários distribuem mensalmente — um único FII já cobre os 12 meses. Se o objetivo fosse só "receber todo mês", a resposta seria trivial.

Alguns bancos também pagam todo mês. Itaú (ITUB4) e Bradesco (BBDC3/BBDC4) declaram JCP mensal — o próprio fato relevante do Bradesco de 23/06/2026 fala em "18,3 vezes o valor dos juros mensalmente pagos". Itaúsa, apesar de ser a holding do Itaú, não repassa mensalmente: paga em jan, mar, abr, jul, ago, out e dez.

A maioria das ações paga trimestral ou semestralmente, cada uma no seu calendário. Exemplos reais da watchlist:

Ativo Meses em que pagou (últimos 3 anos)
RBRY11, BTCI11 (FIIs) todos os 12
ITUB4, BBDC3 todos os 12 (JCP mensal)
PETR4 jan, fev, mar, mai, jun, ago, set, nov, dez
BBAS3 fev, mar, jun, ago, set, nov, dez
ITSA4 jan, mar, abr, jul, ago, out, dez

O problema real não é cobertura, é regularidade

A watchlist atual já cobre 12/12 meses. Mas a distribuição é torta: dezembro recebe ~R$ 1.394 e julho ~R$ 336 (por R$ 10 mil investidos em cada ativo). A métrica regularidade mede isso: 100% seria receber o mesmo valor todo mês; a carteira atual está em ~51%.

Por isso o script marca três coisas diferentes:

E o --sugerir busca ativos que pagam exatamente nos meses fracos:

bash python scripts/dividend_calendar.py --sugerir

Como montar na prática

  1. Base mensal com FIIs. Dois ou três FIIs de segmentos diferentes (papel/CRI, tijolo, fundo de fundos) já dão o piso de todo mês.
  2. Ações boas primeiro, calendário depois. Nunca compre uma empresa ruim porque ela paga em abril. O calendário é critério de desempate entre ativos que já passaram na análise.
  3. Escalone os trimestrais. Ações que pagam em jan/abr/jul/out combinam com outras que pagam em fev/mai/ago/nov.
  4. Cuidado com a concentração setorial. Quatro bancos pagando em meses diferentes ainda é uma aposta só: risco de crédito bancário brasileiro.

Se quiser o calendário em reais da sua carteira real, crie config/portfolio.json:

json {"posicoes": [{"ticker": "RBRY11", "quantidade": 50}, {"ticker": "ITSA4", "quantidade": 1000}]}

e rode python scripts/dividend_calendar.py --carteira.


6. O processo de decisão, do início ao fim

``` 1. DESCOBRIR python scripts/discover.py dividendos --top 15 → varre ~2.300 ativos da B3, devolve shortlist (é funil)

  1. ANALISAR /analyze TICKER → fundamentos + notícias + debate touro/urso + risco + 3 notas

  2. PRECIFICAR python scripts/price_targets.py TICKER → preço justo, preço teto, e onde os métodos discordam

  3. ENCAIXAR python scripts/dividend_calendar.py --sugerir → o ativo reforça um mês fraco ou piora a concentração?

  4. DECIDIR qualidade alta + preço abaixo do teto + encaixa no calendário ```

A ordem importa

Qualidade antes de preço, e preço antes de calendário. Inverter essa ordem é como escolher casa pelo CEP antes de olhar se o telhado cai.

Checklist antes de apertar o botão

Se você não souber responder a primeira pergunta, nenhuma das outras importa.


7. Erros que este painel tenta evitar

Erro comum Como o painel protege
Comprar pelo DY alto Marca dividendo_anormal e usa o menor DPA entre 12M e média de 5 anos
Achar que P/VP < 1 é sempre barato Mostra ROE e histórico de 10 anos junto — banco ruim é barato por um motivo
Confundir lucro contábil com recorrente As análises reconciliam os dois explicitamente
Confiar em número de site validate_data.py cruza Investidor10 contra B3 e CVM; badge no card
Ancorar na primeira opinião O debate usa dois subagentes independentes, cegos um ao outro
Extrapolar um trimestre bom A nota_qualidade olha ~10 anos e não muda com o humor do trimestre
Ignorar o custo de oportunidade O DY alvo do preço teto acompanha a Selic

8. As fontes, em ordem de autoridade

  1. Relatórios da própria empresa (data/reports/) — press releases, demonstrações, fatos relevantes, via arquivos IPE da CVM. Fonte primária.
  2. B3 — cotação oficial.
  3. CVM Dados Abertos — ITR/DFP, demonstrações completas (receita, EBIT, dívida, capex — a matéria-prima do DCF), dados regulatórios (com 1-2 meses de defasagem).
  4. Banco Central (BCB) — série histórica de CDI, IPCA e Selic, e o Boletim Focus (o que o mercado projeta para o juro). É a âncora de juro longo dos valuations.
  5. Damodaran / NYU Stern — prêmio de risco do Brasil, betas por setor, spread de default do país. Atualizado por ele em janeiro; os números e a data ficam em config/dcf.json.
  6. Investidor10 / StatusInvest — indicadores derivados e proventos. Convenientes, porém secundários: só entram no relatório se passarem na validação.
  7. Google News RSS — notícias. Manchete não é fato; sempre citar fonte e data.

Regra de ouro do projeto: nunca inventar número. Todo valor citado existe em data/ ou tem link de origem. Quando o dado não existe, o relatório diz que não existe em vez de preencher com suposição.


9. Comandos

```bash

coleta e análise

python scripts/add_ticker.py TICKER # adiciona qualquer ativo da B3 /analyze TICKER # análise completa (Claude Code) /refresh # atualiza tudo e re-analisa o desatualizado

preço e valuation

python scripts/fetch_dividends.py --all # histórico de proventos com datas python scripts/fetch_macro.py # CDI/IPCA/Selic + Focus (BCB) python scripts/fetch_financials.py --all # demonstrações completas da CVM (DRE/BP/DFC) python scripts/dcf_damodaran.py --all # valuation intrínseco plurianual (Damodaran) python scripts/price_targets.py --all # preço justo e preço teto (já inclui o DCF) python scripts/dividend_calendar.py --sugerir

descoberta

python scripts/discover.py dividendos --top 15 python scripts/discover.py valorizacao --type stock

painel

python scripts/build_dashboard.py ```


Este material é gerado por IA para estudo pessoal e não constitui recomendação de investimento.