O que a função do bulbo realmente faz na prática
A função do bulbo é uma função financeira do Excel que calcula o preço por 100 de valor nominal de um título que paga juros semestrais, com base em uma taxa de rendimento específica. A sintaxe é =BULBO(valor liquidado; vencimento; taxa cupom; rendimento; base). Os parâmetros mais críticos são a data de liquidadao, a data de vencimento, a taxa anual do cupom, o rendimento anual e o tipo de base de contagem de dias. Se você passar qualquer um desses valores errados, o resultado sai errado e ninguém vai perceber na hora.
Como usar função do bulbo passo a passo
Primeiro, garanta que todas as datas estejam formatadas como data no Excel. Eu já vi gente passar texto como "15/03/2024" e a função retornar erro #VALOR! por isso. Depois, verifique se o dia de cupom e o dia de emissão não se repelem. O Excel tem um limite interno: ele calcula o número de períodos coupon usando as datas fornecidas e, se o intervalo for muito pequeno (menos de um ciclo coupon completo), o resultado pode ser inconsistent ou retornar #NÚM! Um exemplo real. Meu valor liquidado era 1000, vencimento 01/07/2028, taxa cupom 10% ao ano, rendimento 8% ao ano, base 0 (padrão americano NASD 30/360). A fórmula ficou =BULBO(1000;01/07/2028;0,10;0,08;0). O resultado foi aproximadamente 1.047,53. Se você trocar a base para 1 (actual/actual), o valor muda para algo próximo de 1.045,80, porque a contagem de dias muda a fração do período coupon que já decorreu.
O que muita gente não entende é que a função do bulbo não retorna o preço pleno. Ela retorna o preço accrual adjustment e você precisa somar os juros corridos à parte se quiser o preço dirty. Para o preço clean, simplesmente use a saída da função mesmo. Para o preço dirty, some o accrued interest calculado por separado. Isso causa confusão constante em análises de tesouraria, porque dois analistas podem olhar o mesmo valor e discordar sobre qual deles está usando.
Problema real que eu enfrentei e como resolvi
Num projeto de valuation de debêntures, me deparei com um título em que a data de liquidadao caía exatamente no dia de pagamento de cupom. A função do bulbo começou a retornar valores erraticos, tipo preço ligeiramente acima do que faria sentido, e o accrued interest também estava comportando mal. Quando eu investiguei, percebi que o Excel estava tratando o dia de liquidadao como "dia de pagamento" e cortando o período de forma diferente do que o mercado esperava. O workaround foi adicionar/subtrair um dia na data de liquidadao manualmente e aplicar a correção de accrued interest separadamente, usando a função ACCRINT. Assim, o preço ficou coerente com o que o analista de renda fixa da contraparte estava reportando. Isso mostra algo que pouca documentação menciona: a função do bulbo assume comportamento padrão de convenção de negociação de títulos americanos (settlement in 2 business days) e, quando o settlement coincide com um coupon date, a lógica interna de divisão de períodos pode entrar em ambiguidade. A solução não é mágica, é ajustar a data ou usar uma função mais explícita como PRICE quando a ambiguidade aparecer.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Insights que quem começa geralmente perde
O primeiro insight é que a base de contagem de dias faz mais diferença do que a maioria pensa. Usar 0 (NASD 30/360) versus 1 (actual/actual) pode alterar o preço em dezenas de pontos base, dependendo do período entre coupon payments e da duração até o vencimento. Para títulos de curto prazo, a diferença é menor; para títulos com vencimento longo e cupons semestrais, a diferença se acumula porque cada período intermediário é afetado. O segundo insight é menos óbvio: a função do bulbo falha silenciosamente quando a taxa de cupom e o rendimento têm convenções de capitalização diferentes. Por exemplo, cupom semi-anual com rendimento anual composto. O Excel trata tudo como taxas equivalentes por período, mas se seu modelo usa convenções diferentes, o resultado sai errado e você pode levar horas para perceber. Sempre verifique se as frequências de cupom e rendimento estão alinhadas com a periodicidade implícita da função.
Pegadinhas comuns e como evitar
O erro #NÚM! aparece quando o vencimento é anterior à data de liquidadao ou quando a taxa cupom ou rendimento são negativos. O erro #VALOR! aparece quando você passa texto onde deveria ser número ou data. O erro mais sutil é aceitar o resultado sem checar se o preço faz sentido relativo ao par. Se o cupom for maior que o rendimento, o preço deve estar acima de 100. Se estiver abaixo, revise a base, as datas e a formatação. Outra armadilha é não considerar o dia de liquidação real. Em mercados como o brasileiro, a liquidação de títulos públicos pode ser D+1 ou D+2 dependendo do instrumento. Se você usar a data do negócio ao invés da data de settlement, o preço accrual e a fração do período coupon estarão errados. O workaround é usar a função SETTLE para confirmar a data de settlement antes de chamar BULBO.
Quando a função do bulbo não é a melhor opção
Se o título tem cupom zero, use a função ZERO ou PRICE diretamente, porque BULBO foi desenhada para títulos com cupom periódico. Se o vencimento é menor que um ciclo coupon inteiro, a função entra em zonas cinzentas e o preço accrual pode ser impreciso. Nesse caso, calcule manualmente usando fluxos de caixa descontados. É mais trabalho, mas você tem controle total sobre a fração de período e a convenção de desconto. Para títulos com características exóticas, como calls embutidos, cupons variáveis ou resgates antecipados condicionais, BULBO não modela isso. O resultado será o preço de um fluxo fixo padronizado, e não o preço efetivo do instrumento. Nesses casos, o jeito é montar uma árvore de cash flows e usar DISCONTO ou XNPV, conforme a regularidade dos pagamentos.
Resumo prático sem enrolação
Use função do bulbo quando precisar de um preço rápido para títulos com cupom semi-anual e convenções americanas padrão. Verifique datas, base e alinhamento de frequência antes de confiar no número. Se algo parecer fora do esperado, teste comparando com PRICE e ACCRINT. E, acima de tudo, nunca assuma que o resultado da função é o preço dirty sem checar se precisa adicionar juros corridos manualmente.