finanzas_comparar_cdt
Compare Colombian CDTs by investment amount and term to find competitive interest rates, calculate real returns, and access bank links for informed financial decisions.
Instructions
Compara los mejores CDTs (Certificados de Depósito a Término) disponibles en Colombia según monto y plazo. Muestra tasas, rendimiento real y links al banco.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| monto | Yes | Monto a invertir en COP (mínimo $100,000) | |
| plazo_dias | Yes | Plazo en días: 30, 60, 90, 180 o 360 | |
| top | No | Cuántos bancos mostrar |
Implementation Reference
- src/tools/finanzas.ts:26-69 (handler)The main handler function compararCDT that filters available CDTs based on monto and plazo, calculates yields using calcularRendimiento, sorts by tasa_ea, and returns comparison results with top recommendations
export async function compararCDT(args: { monto: number; // COP plazo_dias: number; // 30, 60, 90, 180, 360 top?: number; }) { const { monto, plazo_dias, top = 5 } = args; const disponibles = CDT_TASAS .filter(b => b.min_monto <= monto && b.plazo_dias.includes(plazo_dias)) .map(b => ({ banco: b.banco, tasa_ea: b.tasa_ea, rendimiento: calcularRendimiento(monto, b.tasa_ea, plazo_dias), monto_final: monto + calcularRendimiento(monto, b.tasa_ea, plazo_dias), min_monto: b.min_monto, nota: b.nota ?? null, link: b.link, })) .sort((a, b) => b.tasa_ea - a.tasa_ea) .slice(0, top); if (!disponibles.length) { return { error: `No hay CDTs disponibles para $${monto.toLocaleString("es-CO")} COP a ${plazo_dias} días. Intenta con un monto mayor o plazo diferente.`, }; } const mejor = disponibles[0]; return { monto: `$${monto.toLocaleString("es-CO")} COP`, plazo: `${plazo_dias} días`, comparacion: disponibles, recomendacion: { banco: mejor.banco, tasa_ea: `${mejor.tasa_ea}% EA`, ganarías: `$${mejor.rendimiento.toLocaleString("es-CO")} COP`, monto_final: `$${mejor.monto_final.toLocaleString("es-CO")} COP`, link: mejor.link, }, nota: "Tasas indicativas. Confirmar con el banco antes de invertir. Última actualización: Feb 2026.", tasas_referencia_url: "https://www.superfinanciera.gov.co", }; } - src/tools/finanzas.ts:20-23 (helper)Helper function calcularRendimiento that calculates investment returns from annual effective rate (EA) over a period of days using compound interest formula
function calcularRendimiento(monto: number, tasa_ea: number, dias: number): number { const tasa_diaria = Math.pow(1 + tasa_ea / 100, 1 / 365) - 1; return Math.round(monto * Math.pow(1 + tasa_diaria, dias) - monto); } - src/tools/finanzas.ts:7-18 (schema)CDT_TASAS constant containing bank data with interest rates, minimum investment amounts, available term days, and links to bank CDT pages
const CDT_TASAS = [ { banco: "Bancolombia", tasa_ea: 10.8, min_monto: 1_000_000, plazo_dias: [30,60,90,180,360], link: "https://www.bancolombia.com/personas/productos-servicios/ahorro-inversion/cdt" }, { banco: "Davivienda", tasa_ea: 11.2, min_monto: 500_000, plazo_dias: [30,60,90,180,360], link: "https://www.davivienda.com/cdt" }, { banco: "BBVA Colombia", tasa_ea: 10.5, min_monto: 1_000_000, plazo_dias: [90,180,360], link: "https://www.bbva.com.co/personas/productos/ahorro/cdt.html" }, { banco: "Banco de Bogotá",tasa_ea: 10.6, min_monto: 1_000_000, plazo_dias: [30,60,90,180,360], link: "https://www.bancodebogota.com/wps/portal/banco-de-bogota/bogota/productos/para-invertir/cdt" }, { banco: "Banco Popular", tasa_ea: 10.9, min_monto: 500_000, plazo_dias: [30,60,90,180,360], link: "https://www.bancopopular.com.co/wps/portal/BancoPopular/InicioBP/productos/inversion/cdt" }, { banco: "Itaú Colombia", tasa_ea: 11.0, min_monto: 1_000_000, plazo_dias: [90,180,360], link: "https://www.itau.co/personas/cdt" }, { banco: "AV Villas", tasa_ea: 10.7, min_monto: 500_000, plazo_dias: [30,60,90,180,360], link: "https://www.avvillas.com.co/wps/portal/avvillas/a/personas/productosyservicios/inversion/cdt" }, { banco: "Scotiabank Colpatria", tasa_ea: 11.1, min_monto: 1_000_000, plazo_dias: [90,180,360], link: "https://www.scotiabankcolpatria.com/personas/ahorro/cdt" }, { banco: "Lulo Bank", tasa_ea: 12.5, min_monto: 100_000, plazo_dias: [30,60,90,180,360], link: "https://www.lulobank.com/cdt", nota: "100% digital" }, { banco: "Nu Colombia (Nubank)", tasa_ea: 13.2, min_monto: 1_000, plazo_dias: [30,60,90], link: "https://nubank.com.co/caja-de-ahorro/", nota: "Caja de ahorro, no CDT — liquidez inmediata" }, ]; - src/index.ts:114-126 (registration)Tool registration for finanzas_comparar_cdt with Zod schema validation for monto (min 100k COP), plazo_dias (30/60/90/180/360), and top (default 5) parameters
server.tool( "finanzas_comparar_cdt", "Compara los mejores CDTs (Certificados de Depósito a Término) disponibles en Colombia según monto y plazo. Muestra tasas, rendimiento real y links al banco.", { monto: z.number().min(100_000).describe("Monto a invertir en COP (mínimo $100,000)"), plazo_dias: z.number().refine(v => [30,60,90,180,360].includes(v), { message: "Plazo debe ser 30, 60, 90, 180 o 360" }).describe("Plazo en días: 30, 60, 90, 180 o 360"), top: z.number().min(1).max(10).optional().default(5).describe("Cuántos bancos mostrar"), }, async (args) => { const result = await compararCDT(args); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }; } );