¿Por qué la IA se equivoca con mis números?

Casi nunca porque invente un número: porque malinterpreta uno que le diste. Un modelo de lenguaje no distingue 0 ("cero") de 0 ("no aplica"), una diferencia que cualquier persona hace sin pensar. Nosotros dimos con ese fallo calibrando nuestro propio motor: un 0 que significaba "nunca se queda sin caja" se leyó como "muerto en cero meses". Calcula fuera del modelo; que la IA explique, no que calcule.

El fallo tiene una forma

Una IA que se inventa un dato es un problema que puedes ver. Una IA que lee un número correcto y saca la conclusión contraria es un problema que no puedes ver, porque nada en la respuesta parece estar mal.

Casi todo el mundo teme lo primero. Lo segundo es lo que acaba en tu presentación al inversor.

Existe un nombre para lo segundo: error ecológico. No un hecho inventado, sino un fallo mecánico preciso — lógica correcta aplicada a una variable mal extraída. El modelo lo hace todo bien, sobre el número equivocado. Y la respuesta sale pulida, que es justo el problema: un número equivocado y cercano al correcto es el error más difícil de cazar.

Esta es la forma que toma. Toda métrica financiera tiene casos donde sencillamente no tiene valor. Una empresa que nunca se queda sin caja no tiene "meses de runway". Una empresa sin gasto de adquisición no tiene "periodo de recuperación del CAC". Una persona que rellena una hoja de cálculo deja la celda vacía, o escribe "n/a", y cualquier otra persona lo entiende.

Un programa no puede escribir "n/a" en un campo numérico. Así que escribe 0. Y 0 es un número perfectamente válido.

Lo que le hizo a nuestro propio motor

Startkeel produce un modelo financiero y un prompt calibrado: un fichero .txt con tus números reales, que pegas en tu propio ChatGPT o Claude para una segunda opinión. Los números salen de un motor determinista; la IA solo los interpreta. Los tipos internos del motor eran honestos — un número, o nada — pero la función que los serializaba colapsaba ese "nada" en 0. Cinco campos afectados.

En todos ellos, lo que la IA concluía era falso — y en dos, exactamente lo contrario de la verdad. Un runway de 0 significaba "nunca se queda sin caja"; la IA leía "cero meses, está muerto". Un payback de CAC de 0 significaba "nunca recupera el coste de adquisición"; la IA leía "recuperación instantánea". Un burn multiple de 0 significaba "no aplica"; la IA leía "eficiencia perfecta". Un LTV:CAC de 0 significaba "no calculable"; la IA leía "unit economics rotas". Un CAC de 0 significaba "sin gasto de adquisición medido"; la IA leía "clientes gratis".

Lee esos pares otra vez. Tres de los cinco errores halagan al negocio. Una empresa que no recupera nada aparece recuperando su coste al instante. Una empresa quemando caja sin resultados aparece como perfectamente eficiente.

Nuestro prompt empieza pidiéndole a la IA que sea brutalmente honesta. Le estábamos dando datos que la empujaban, en silencio, hacia el halago.

Lo encontramos calibrando el motor — no porque algo pareciera roto. Nada lo parecía. Y eso es exactamente lo característico de este fallo: no se anuncia. Salió a la luz solo porque fuimos a mirar el contrato de datos en sí, campo por campo.

El fallo estaba fosilizado en su propia salvaguarda

Esta es la parte que merece la pena robar, porque va mucho más allá de los modelos financieros. Si no lees código, la idea sobrevive a la traducción: la comprobación que debía protegernos prohibía el único arreglo correcto.

Dos de nuestros tests exigían que la salida no contuviera nunca un valor nulo. La intención era buena: NaN e Infinity son corrupción — significan que un cálculo se rompió. Pero la misma línea prohibía también null, que no es corrupción. Es información. Es el campo diciendo "no tengo valor, y lo sé".

Así que el test prohibía el arreglo correcto. Mientras esa línea existiera, escribir null habría puesto la suite en rojo, y un programador diligente lo habría "arreglado" volviendo a escribir 0.

Una salvaguarda que prohíbe la solución es peor que ninguna salvaguarda. Convierte un fallo en una norma. Ahora el test solo prohíbe NaN e Infinity. La corrupción sigue prohibida. La ausencia, permitida.

La regla que lo cierra

Sustituimos un párrafo del prompt — que le pedía a la IA interpretar bien los valores centinela — por una sola frase, y en su lugar hicimos honestos los datos: null nunca significa desconocido. Significa: no aplica, o no ocurre. Todo valor presente está calculado.

La asimetría es lo esencial. Un null no se puede confundir con un número. Un 0 sí.

Probamos antes la alternativa: campos booleanos extra, como una marca que dijera que el negocio no se queda sin caja, para desambiguar. Los descartamos. Dos campos que cargan la misma verdad se desincronizan en cuanto uno se actualiza y el otro no. Un campo honesto vale más que dos que deben coincidir.

Qué hacer con tus propios números

Calcula fuera del modelo. Hoja de cálculo, motor, script: cualquier cosa determinista. Un modelo de lenguaje que no ejecuta código no calcula: predice el texto que suele venir después. Lee 847 como una cadena de caracteres, no como el entero 847. Dale la aritmética terminada y pídele que la explique.

Nunca dejes que un valor centinela sustituya a la ausencia. Ni 0, ni -1, ni 999. Una persona lee 0 en un campo de runway y entiende "n/a". Un modelo lee 0 y entiende cero.

Di qué significa la ausencia, una sola vez. Si tus datos pueden estar vacíos, define la ausencia de forma explícita, y declara que todo lo demás es real.

Sospecha del halago. Cuando un número está mal, pregúntate hacia dónde apunta el error. Los errores que te halagan sobreviven a la revisión, porque nadie discute las buenas noticias.

Por qué esto nos hace más cuidadosos, no menos

En otras páginas de este sitio decimos que nuestro motor no puede inventarse una cifra. Sigue siendo cierto, y este fallo no es un contraejemplo: es la frontera entre dos fallos distintos. El motor calculó bien. Lo que se rompió fue cómo representábamos la ausencia de un número al salir. Ninguna operación estaba mal. Un null se aplastó hasta 0, y 0 es un número.

Esa distinción importa, porque es justo la que un modelo de lenguaje no puede hacer por ti. Dale un 0 y no tiene forma de preguntarte si querías decir "cero" o "nada". Te responderá igual, con fluidez.

No afirmamos que nuestro motor sea infalible. Afirmamos algo más estrecho y más útil: es comprobable. El veredicto que te da Startkeel — vives o mueres por defecto, los rangos comparados, la puntuación — lo calcula código que un test puede fijar y una mutación puede demostrar. Cuando lo rompimos, se pudo hacer fallar un test. Cuando lo arreglamos, ese mismo test se puso verde por el motivo correcto.

A una IA a la que le pides el mismo veredicto no se la puede fijar así. El trabajo independiente apunta a lo mismo: una revisión del CFA Institute sobre modelos de lenguaje en finanzas documenta alucinaciones y límites de razonamiento numérico, y análisis de 2026 encontraron que varios modelos punteros fabrican datos financieros cuando el documento fuente está incompleto — algunos con aplomo y sin avisar.

Por eso el prompt de IA que entregamos está deliberadamente constreñido. Recibe los números. Se le dice que no los recalcule, que no los invente y que no vuelva a discutir las simplificaciones que ya hemos declarado. Su trabajo es explicar, argumentar y rebatir, sobre una aritmética que él no hizo.

Este fallo lo cazamos porque nuestros números viven donde un test puede alcanzarlos. Ese es el argumento entero para dejar la aritmética fuera del modelo.

Preguntas frecuentes

¿Puede ChatGPT construirme un modelo financiero?

Puede producir algo que lo parezca. No puede garantizar la aritmética, y no te avisará cuando no sepa un número: elegirá uno. Úsalo para poner a prueba un modelo construido de forma determinista.

¿Esto no es simplemente un fallo que tuvisteis?

Lo fue. Lo contamos porque el modo de fallo es genérico: cualquier sistema que le pase números a un modelo de lenguaje tiene que decidir cómo representa "sin valor", y 0 es la respuesta tentadora y equivocada.

¿Cómo sé si mis datos tienen este problema?

Busca cualquier campo numérico que legítimamente pueda no tener valor: el runway cuando eres rentable, la recuperación cuando no hay gasto, ratios con denominador cero. Después mira qué escribe ahí tu sistema.

¿Startkeel usa IA para calcular mis números?

No. El motor es determinista y está testeado. El prompt de IA opcional recibe números ya terminados y tiene instrucción explícita de no recalcularlos.

¿Qué cambió tras el arreglo?

Nada de los números, el PDF, la puntuación ni las gráficas. Solo lo que decimos cuando no hay número.

Guías relacionadas

Herramientas relacionadas

Benchmarks relacionados

Comprueba tus propios números.

Startkeel te dice en minutos si tu SaaS aguanta.

Prueba la calculadora de runway gratis

Última actualización: 25 de junio de 2026. Solo informativo — no asesoramiento financiero.