Habla con una persona real
Sin bots, sin vueltas. Te mostramos Kleva en vivo.
La calibración de modelos de propensión de pago es el proceso que asegura que las probabilidades predichas por tu scoring coincidan con las tasas de pago reales. Un modelo descalibrado puede predecir 80% de probabilidad de pago en un segmento que termina pagando solo 50%, destruyendo la asignación de recursos en cobranza.
Para CFOs y gerentes de cobranza en LATAM, calibrar por producto y vintage no es un refinamiento académico: es la diferencia entre recuperar 73% o quedarte en 55%. Este post cubre métricas, procesos y trampas operacionales que los 1.579 posts existentes de cobranza no abordan.

Un modelo de propensión de pago asigna a cada deudor un score (0-100 o probabilidad 0-1) que indica la chance de que pague en los próximos N días. Estos modelos usan machine learning supervisado (regresión logística, random forest, gradient boosting, XGBoost) entrenados con variables comportamentales, historial de pago y características de la deuda.
Calibración significa que si tu modelo asigna score=0.85 a 1000 deudores, esperas que ~850 efectivamente paguen. Si solo pagan 600, el modelo está descalibrado: sobreestima en 40%.
Por qué importa:
Dato: En Kleva, modelos calibrados por producto y vintage logran 94% de resolución en primera llamada versus 60-65% con scoring genérico.
No todos los productos se comportan igual en cobranza. Un crédito de nó MINA tiene patrones distintos que una tarjeta de crédito o un préstamo hipotecario.
Implicación: Un modelo entrenado con mezcla 80% tarjetas + 20% nómina predice mal en carteras hipotecarias puras. Debes entrenar modelos separados o calibrar pesos por producto.
| Producto | Propensión mora 0-30 | Propensión mora 60-90 | Canal óptimo |
|-------------------|----------------------|-----------------------|-------------------|
| Nómina | 0.75 | 0.35 | Voice agent |
| Tarjeta crédito | 0.55 | 0.40 | WhatsApp + voice |
| Consumo fintech | 0.60 | 0.45 | WhatsApp primero |
| Hipotecario | 0.80 | 0.70 | Gestor humano |
(Datos ilustrativos de benchmarks LATAM — tu cartera puede variar.)

Vintage (o cohorte de originación) agrupa créditos por fecha de desembolso: enero 2025, Q1 2025, etc. Cada vintage tiene riesgo propio porque:
Ejemplo real (fintech México):
Si entrenas un modelo de propensión sin separar por vintage, el scoring promedia y predice 21% para ambos. Pero al desplegar:
Solución: Calibra modelos estratificando por vintage. En la práctica:
Mide error cuadrático medio entre probabilidades predichas y resultados binarios (pagó / no pagó):
``
Brier = (1/N) * Σ (p_pred - y_real)²
`
Bueno:
Ejemplo: Modelo predice p=0.80 para 100 deudores, 70 pagaron:
`
Brier = [(0.80-1)² 70 + (0.80-0)² 30] / 100 = 0.22
`
Agrupa predicciones en deciles (0-10%, 10-20%, ..., 90-100%) y compara:
Línea ideal: diagonal 45° (predicho = observado).
Señales de alerta:
Mide capacidad de separar pagadores de no-pagadores, pero NO mide calibración. Puedes tener AUC=0.85 (excelente separación) y estar descalibrado.
Usa ROC-AUC + Brier Score juntos: AUC para ranking, Brier para calibración.
Valida que la calibración se mantenga en:
Si Brier global = 0.14 pero Brier en hipotecarios = 0.28, el modelo falla en ese producto.

Drift del modelo ocurre cuando el comportamiento de pago cambia y tu modelo (entrenado con datos históricos) deja de predecir bien. Causas:
Frecuencia típica:
Kleva: recalibra modelos cada 2 semanas usando datos de 900,000+ minutos mensuales de conversaciones. Detecta drift en tiempo real comparando promesas de pago vs pagos efectivos.
Kleva integra calibración continua en su plataforma de voice agents:
Resultado: 73% de tasa de éxito en recuperación, 94% resolución en primera llamada, 0 violaciones regulatorias en 7 países LATAM.
Caso México: Fintech con cartera mixta (60% consumo, 30% tarjeta, 10% nómina) implementó calibración por producto → ROI de cobranza subió 28% en 90 días (de $3.2M a $4.1M recuperados con mismo presupuesto).
Más info: https://kleva.co
Accuracy mide si clasificas correctamente (pagador/no-pagador). Calibración mide si tus probabilidades predichas coinciden con las tasas reales. Puedes tener 80% accuracy y estar descalibrado. Ejemplo: modelo predice 90% probabilidad para todos los que pagan y 10% para los que no → accuracy alta, pero probabilidades inútiles para decisiones de negocio (¿cuánto descuento ofrecer? ¿qué canal usar?).
Mínimo 5,000 registros por segmento (producto × vintage) para entrenar con confianza estadística. Si tienes menos, agrupa productos similares (ej: consumo + tarjeta) o vintages trimestrales en vez de mensuales. Regla: nunca calibres con
Usa transfer learning: entrena modelo base con productos maduros, ajusta con datos limitados del nuevo producto. Alternativamente, aplica modelo de producto "parecido" (ej: nuevo crédito automotriz usa modelo de consumo) y recalibra agresivamente los primeros 3 meses (cada 2 semanas) hasta acumular datos propios.
Excluye vintages atípicos del entrenamiento si no esperas repetición del evento. Ejemplo: vintage marzo-abril 2020 (lockdown COVID) tiene mora 50%+ anómala; usar esos datos distorsiona modelos futuros. Alternativa: crea variable dummy "crisis_period" y entrena con todos los datos, dejando que el modelo aprenda el efecto.
Open source: Python + scikit-learn (calibration curves, Brier score), XGBoost/LightGBM para modelos, MLflow para tracking. Comercial: Plataformas de cobranza como Kleva integran calibración automática. Básico: Google Sheets + BigQuery para cálculos manuales (funciona hasta ~50k registros).
Conclusión: La calibración por producto y vintage transforma modelos de propensión de pago de "ranking aproximado" a herramienta de decisión precisa. Implementar Brier score, calibration plots y pipelines de recalibración reduce costos de cobranza en 20-30% y evita desperdiciar recursos en segmentos descalibrados.
En LATAM, donde carteras mezclan productos heterogéneos y vintages volátiles, calibrar es obligatorio para competir. Las plataformas que automatizan esto (como Kleva) permiten a equipos de cobranza escalar sin contratar data scientists.
Siguiente paso: Revisa el Brier score de tu modelo actual por producto. Si está >0.20 en algún segmento, tienes oportunidad inmediata de mejora.
`python
import pandas as pd
df = pd.read_csv('cobranza_historico.csv')
segmentos = df.groupby(['producto','vintage_trimestre']).size()
segmentos_validos = segmentos[segmentos >= 5000]
`
Código base:
`python
from xgboost import XGBClassifier
from sklearn.calibration import calibration_curve
import numpy as np
X_train_tc = df[(df.producto=='tarjeta') & (df.mes
y_train_tc = df[(df.producto=='tarjeta') & (df.mes
model_tc = XGBClassifier(max_depth=5, n_estimators=200, learning_rate=0.05)
model_tc.fit(X_train_tc, y_train_tc)
X_test_tc = df[(df.producto=='tarjeta') & (df.mes>15)][features]
y_test_tc = df[(df.producto=='tarjeta') & (df.mes>15)]['pago_30d']
y_pred_proba = model_tc.predict_proba(X_test_tc)[:,1]
prob_true, prob_pred = calibration_curve(y_test_tc, y_pred_proba, n_bins=10)
`
`python
from sklearn.metrics import brier_score_loss
brier_tc = brier_score_loss(y_test_tc, y_pred_proba)
`python
from sklearn.calibration import CalibratedClassifierCV
model_tc_calibrado = CalibratedClassifierCV(model_tc, method='isotonic', cv='prefit')
model_tc_calibrado.fit(X_val, y_val) # usa un conjunto de validación separado
``
Backtesting por vintage: valida que Brier
Resultado esperado: 15-25% mejora en ROI de cobranza en 60 días post-deploy.
Agenda una demo y te mostramos cómo los agentes de voz recuperan cartera en tu país, con las reglas de tu operación.
Solicita una demoSin bots, sin vueltas. Te mostramos Kleva en vivo.