Selic Meta a 14,5% a.a., Prefixado 14% a.a., IPCA+ 7% real. Qual rende mais? Mostro a resposta com 30 linhas de código e dados ao vivo da brapi.
Comparar Tesouro Selic vs Prefixado vs IPCA parece fácil. Mas tem uma pegadinha. As três taxas que aparecem na tela do Tesouro Direto não falam a mesma língua. Cada indexador (o referencial que o juro acompanha — Selic, inflação, ou taxa fixa) mostra o ganho de um jeito diferente. Um mostra spread (a diferença, em pontos percentuais, em relação à taxa de referência). Outro mostra a taxa nominal contratada. O terceiro mostra só o juro real acima da inflação. Sem traduzir tudo para a mesma unidade, qualquer ranking sai torto.
Neste guia você vai aprender três coisas. Como puxar o snapshot de cada indexador via brapi. Como combinar com Selic Meta e IPCA 12 meses do BCB. E como montar um ranking honesto em uma tabela só. Todo número aqui é real, capturado no dia da publicação direto da API.
Estimativa convertida em juro nominal usando IPCA 12m atual (4,39%). Quando a inflação sobe, o IPCA+ ganha terreno; quando a Selic cai, o Prefixado travado hoje vira o melhor da fila.
Os três indexadores em 30 segundos
| Indexador | Como a taxa é cotada | rateType no rateInfo | Risco principal |
|---|---|---|---|
| Tesouro Selic | Spread em p.p. ao ano sobre a Selic Meta | spreadOverSelic | Quase nenhum (marcação a mercado mínima) |
| Tesouro Prefixado | Taxa nominal anual contratada | nominalAnnualRate | Marcação a mercado se vender antes do vencimento |
| Tesouro IPCA+ | Juro real anual acima do IPCA | realAnnualRateOverIpca | Marcação a mercado + risco de IPCA mais baixo do que o esperado |
Cuidado com a leitura literal
Quando o Tesouro Selic mostra buyRate: 0,08, isso quer dizer Selic +
0,08 p.p. ao ano. Não é 0,08% de retorno total. Quando o IPCA+ mostra
buyRate: 7,22, é só o juro real acima da inflação. O retorno nominal de
verdade só fecha quando você soma o IPCA que aconteceu no período.
O campo rateInfo que volta em /api/v2/treasury/indicators deixa essa
unidade clara já na resposta. Assim, o seu código nunca precisa adivinhar.
Snapshot ao vivo dos três indexadores
Uma única chamada traz os três tipos de título em um array só.
curl "https://brapi.dev/api/v2/treasury/indicators?symbols=tesouro-selic-01032031,tesouro-prefixado-com-juros-semestrais-01012037,tesouro-ipca-com-juros-semestrais-15082060" \
-H "Authorization: Bearer $BRAPI_TOKEN"Veja a resposta real em 17/05/2026 (alguns campos foram cortados para deixar mais fácil de ler).
{
"results": [
{
"symbol": "tesouro-selic-01032031",
"indexer": "selic",
"couponType": "zero",
"maturityDate": "2031-03-01",
"durationDays": 1751,
"baseDate": "2026-05-15",
"buyRate": 0.08,
"sellRate": 0.09,
"buyPrice": 18944.78,
"rateInfo": { "rateType": "spreadOverSelic", "rateUnit": "% a.a." }
},
{
"symbol": "tesouro-prefixado-com-juros-semestrais-01012037",
"indexer": "prefixado",
"couponType": "semestral",
"maturityDate": "2037-01-01",
"durationDays": 3884,
"baseDate": "2026-05-15",
"buyRate": 14.36,
"sellRate": 14.48,
"buyPrice": 814.75,
"rateInfo": { "rateType": "nominalAnnualRate", "rateUnit": "% a.a." }
},
{
"symbol": "tesouro-ipca-com-juros-semestrais-15082060",
"indexer": "ipca",
"couponType": "semestral",
"maturityDate": "2060-08-15",
"durationDays": 12511,
"baseDate": "2026-05-15",
"buyRate": 7.22,
"sellRate": 7.34,
"buyPrice": 4086.85,
"rateInfo": { "rateType": "realAnnualRateOverIpca", "rateUnit": "% a.a." }
}
],
"requestedAt": "2026-05-17T23:29:25.912Z",
"took": 4
}Agora pegue o estado macro de referência — Selic Meta e IPCA dos últimos 12 meses.
curl "https://brapi.dev/api/v2/macro/latest?symbols=selic,ipca12m" \
-H "Authorization: Bearer $BRAPI_TOKEN"{
"results": [
{ "series": { "slug": "selic" }, "latest": { "date": "2026-05-17", "value": 14.5 } },
{ "series": { "slug": "ipca12m" }, "latest": { "date": "2026-04-01", "value": 4.39 } }
]
}Tudo o que vem a seguir usa exatamente esses números reais.
Como tornar tudo comparável
A regra é simples. Para colocar os três títulos na mesma régua, você converte cada um para uma taxa nominal anual equivalente usando o macro de hoje.
| Indexador | Fórmula | Aplicada a este snapshot |
|---|---|---|
| Selic | selic_meta + spread | 14,5 + 0,08 = 14,58% a.a. |
| Prefixado | buyRate | 14,36% a.a. |
| IPCA+ | (1 + ipca12m/100) × (1 + buyRate/100) − 1 | (1,0439 × 1,0722) − 1 = 11,93% a.a. |
Isso não é projeção, é foto
A conversão do IPCA+ usa o IPCA acumulado dos últimos 12 meses como
proxy do próximo ano. Isso é juro real medido depois (já com a inflação
que de fato aconteceu) — se a inflação subir, o IPCA+ vira mais; se cair,
vira menos. Para projetar o futuro, troque ipca12m pelo Boletim Focus
ou pela sua própria expectativa. Aqui o objetivo é responder: "se o mundo
congelasse hoje, qual rende mais?".
Dos ~11,93% nominais que o IPCA+ 2060 entrega hoje, cerca de 4,39 p.p. só servem para empatar com a inflação que aconteceu nos últimos 12 meses. O ganho de verdade — o juro real estimado (quanto você ganha acima da inflação que o mercado está prevendo) — são os 7,22 p.p. de cima.
Script comparador em Python
São 30 linhas. Sem dependência externa além da requests.
import os
import requests
BASE = "https://brapi.dev/api/v2"
headers = {"Authorization": f"Bearer {os.environ['BRAPI_TOKEN']}"}
SYMBOLS = [
"tesouro-selic-01032031",
"tesouro-prefixado-com-juros-semestrais-01012037",
"tesouro-ipca-com-juros-semestrais-15082060",
]
titulos = requests.get(
f"{BASE}/treasury/indicators",
params={"symbols": ",".join(SYMBOLS)},
headers=headers,
).json()["results"]
macro = requests.get(
f"{BASE}/macro/latest",
params={"symbols": "selic,ipca12m"},
headers=headers,
).json()["results"]
selic = next(m["latest"]["value"] for m in macro if m["series"]["slug"] == "selic")
ipca12m = next(m["latest"]["value"] for m in macro if m["series"]["slug"] == "ipca12m")
print(f"Macro hoje: Selic Meta = {selic}% a.a. | IPCA 12m = {ipca12m}%\n")
print(f"{'Título':<55} {'Indexador':<11} {'Taxa':>8} {'Nominal eq.':>13}")
print("-" * 92)
for t in titulos:
idx, rate = t["indexer"], t["buyRate"]
if idx == "selic": nominal = selic + rate
elif idx == "prefixado": nominal = rate
elif idx == "ipca": nominal = ((1 + ipca12m / 100) * (1 + rate / 100) - 1) * 100
print(f"{t['symbol']:<55} {idx:<11} {rate:>7.2f}% {nominal:>12.2f}%")const BASE = 'https://brapi.dev/api/v2';
const headers = { Authorization: `Bearer ${process.env.BRAPI_TOKEN}` };
const SYMBOLS = [
'tesouro-selic-01032031',
'tesouro-prefixado-com-juros-semestrais-01012037',
'tesouro-ipca-com-juros-semestrais-15082060',
];
const titulos = await fetch(
`${BASE}/treasury/indicators?symbols=${SYMBOLS.join(',')}`,
{ headers },
).then((r) => r.json()).then((j) => j.results);
const macro = await fetch(
`${BASE}/macro/latest?symbols=selic,ipca12m`,
{ headers },
).then((r) => r.json()).then((j) => j.results);
const selic = macro.find((m) => m.series.slug === 'selic').latest.value;
const ipca12m = macro.find((m) => m.series.slug === 'ipca12m').latest.value;
console.log(`Macro hoje: Selic ${selic}% | IPCA 12m ${ipca12m}%\n`);
for (const t of titulos) {
const rate = t.buyRate;
const nominal =
t.indexer === 'selic' ? selic + rate
: t.indexer === 'prefixado' ? rate
: ((1 + ipca12m / 100) * (1 + rate / 100) - 1) * 100;
console.log(`${t.symbol.padEnd(55)} ${t.indexer.padEnd(11)} ${rate.toFixed(2)}% → ${nominal.toFixed(2)}%`);
}Veja a saída real em 17/05/2026.
Macro hoje: Selic Meta = 14.5% a.a. | IPCA 12m = 4.39%
Título Indexador Taxa Nominal eq.
--------------------------------------------------------------------------------------------
tesouro-selic-01032031 selic 0.08% 14.58%
tesouro-prefixado-com-juros-semestrais-01012037 prefixado 14.36% 14.36%
tesouro-ipca-com-juros-semestrais-15082060 ipca 7.22% 11.93%Resultado deste snapshot: o Tesouro Selic 2031 lidera com 14,58% a.a. nominais. Depois vem o Prefixado 2037 com 14,36%. O IPCA+ 2060 fica em 11,93% — mas só porque o IPCA 12 meses está baixo, em 4,39%. Se a inflação subir para 6%, por exemplo, o nominal equivalente do IPCA+ pula para 13,65% e o pódio muda.
Qual indexador eu escolho?
Antes do detalhe, veja a árvore de decisão simples.
Use o Tesouro Selic para reserva de emergência. Use o Prefixado para apostar em queda da Selic. Use o IPCA+ para objetivos longos protegidos da inflação.
Tesouro Selic — liquidez e estabilidade
A duração média de 1.751 dias do tesouro-selic-01032031 esconde uma
propriedade importante. Como o cupom é zero e a taxa é pós-fixada, a
marcação a mercado (quanto o título vale agora se você vender antes do
vencimento) é quase nula. O preço acompanha a Selic dia após dia, sem
sustos. Você pode resgatar amanhã com o ganho proporcional do tempo que
ficou aplicado.
Faz sentido quando:
- Você precisa de liquidez diária e não aceita volatilidade.
- A sua reserva de emergência precisa render a Selic cheia.
- Você ainda não tem opinião sobre para onde os juros vão.
Tesouro Prefixado — travar taxa antes do corte
Quando o mercado começa a apostar em corte de Selic (a curva DI fica
invertida), travar 14,36% a.a. por 11 anos no
tesouro-prefixado-com-juros-semestrais-01012037 pode ser ótimo. Mas você
precisa de convicção, porque a aposta tem dois lados.
O risco é este. Se a Selic subir depois da compra, o preço do título cai. Quem vende antes do vencimento realiza prejuízo via marcação a mercado. Quem segura até 2037 recebe os 14,36% contratados, não importa o que aconteça no caminho.
Tesouro IPCA+ — proteção real de longo prazo
O tesouro-ipca-com-juros-semestrais-15082060 tem duração média de 12.511
dias — algo perto de 34 anos. Ele garante juro real de 7,22% a.a. acima
da inflação, o que é historicamente alto no Brasil. Faz sentido nestes
casos:
- Aposentadoria e qualquer objetivo de 10+ anos.
- Casar o investimento com dívidas e despesas indexadas ao IPCA (educação, saúde, aluguel).
- Quem acredita que a meta de inflação será cumprida no longo prazo.
Duração média alta também quer dizer mais sensibilidade a mudanças na taxa real. Se o juro real exigido pelo mercado subir 1 p.p., o preço do título cai cerca de 12% (regra grossa: ΔPreço ≈ −Duração × ΔTaxa).
Curva por vencimento
O endpoint /treasury/list aceita indexer + sortBy=maturityDate e
devolve a curva inteira. No momento da publicação, há cinco vencimentos
prefixados na ponta.
| Símbolo | Vencimento | Cupom | buyRate |
|---|---|---|---|
tesouro-prefixado-com-juros-semestrais-01012027 | 2027-01-01 | semestral | 14,05% |
tesouro-prefixado-01012028 | 2028-01-01 | zero | 13,95% |
tesouro-prefixado-com-juros-semestrais-01012029 | 2029-01-01 | semestral | 14,08% |
tesouro-prefixado-01012031 | 2031-01-01 | zero | 14,21% |
tesouro-prefixado-com-juros-semestrais-01012033 | 2033-01-01 | semestral | 14,37% |
A curva está em formato de "U" leve. Ela cai do curto até 2028 (13,95%) e sobe aos poucos no longo prazo (14,37% em 2033). É sinal de que o mercado aposta em algum corte de Selic no curtíssimo prazo. Depois cobra um prêmio extra para segurar o título por mais tempo.
E na curva do IPCA+:
| Símbolo | Vencimento | Cupom | buyRate (juro real) |
|---|---|---|---|
tesouro-ipca-15082026 | 2026-08-15 | zero | 9,98% |
tesouro-ipca-15052029 | 2029-05-15 | zero | 7,95% |
tesouro-ipca-com-juros-semestrais-15082030 | 2030-08-15 | semestral | 7,97% |
tesouro-ipca-com-juros-semestrais-15082032 | 2032-08-15 | semestral | 7,84% |
tesouro-ipca-com-juros-semestrais-15082060 | 2060-08-15 | semestral | 7,22% |
A curva de juro real é bem mais comportada. Fica perto de 8% no miolo e desce para uns 7,2% no ultralongo. Quanto menor o juro real exigido no longo prazo, mais caro está o título. Ou seja, quem compra hoje paga um prêmio extra para travar proteção contra inflação por décadas.
Cuidado com o spread do Tesouro Selic
Spread pode encolher e até virar negativo
Os Tesouros Selic mostram buyRate entre 0,01% e 0,08% a.a. hoje. O
spread (a diferença, em pontos percentuais, em relação à Selic Meta) está
positivo, mas apertado. Em períodos de alta demanda por liquidez no Tesouro
Direto, esse spread já ficou negativo em alguns títulos. Isso quer dizer
que o papel rende menos que a Selic Meta cheia. Sempre converta
buyRate para nominal equivalente via selic_meta + buyRate antes de
comparar com CDB pós-fixado ou conta remunerada. Um buyRate de -0,05
no Tesouro Selic significa Selic Meta menos 0,05 p.p., e nessa janela um
CDB pagando 100% do CDI provavelmente rende mais.
A curva de spread atual cresce conforme o prazo aumenta (0,01 no 2027 até 0,08 no 2031). É natural — títulos mais longos cobram um prêmio extra por prender o dinheiro por mais tempo, mesmo que a marcação a mercado seja baixa.
Próximos passos
- Combine este snapshot com o cálculo de juro real ex-ante para testar cenários diferentes de IPCA.
- Use o endpoint unificado de macroeconomia para puxar Selic, IPCA, CDI e mais 12 séries do BCB em uma chamada só.
- Veja o comparativo CDB vs Tesouro Direto para decidir entre crédito de banco e título do governo.
- Para juntar FIIs e ações com proteção real ao quadro, veja o guia de indicadores econômicos.
Rode o script toda semana. O vencedor da disputa Tesouro Selic vs Prefixado vs IPCA muda quando o COPOM se reúne, quando o IPCA mensal surpreende ou quando o mercado reprecifica a curva de juros. A pergunta "qual Tesouro Direto rende mais hoje?" só tem resposta com dado fresco. E é exatamente isso que a API de Tesouro Direto da brapi entrega.
