Aterrizar una norma local¶
Nikodym implementa estándares comunes: PD, LGD y EAD, validación de modelos, IFRS 9/ECL, forward-looking y stress testing. Ninguna de esas piezas asume un país.
Lo que ningún motor estándar puede darte es tu norma: cada supervisor tabula sus propios parámetros, define sus propias carteras y cambia sus circulares en su propio calendario. Perseguir ese calendario para cada jurisdicción no es sostenible para una librería, y prometerlo sería prometer lo que no se puede cumplir.
Así que la librería hace lo contrario: el motor estándar queda abajo, y la norma local se monta encima. Esta página documenta cómo, con el único caso que está implementado —Chile, CMF— como ejemplo trabajado de punta a punta.
Qué es esta página, y qué no
Es una demostración de método, no un catálogo de jurisdicciones soportadas. El caso chileno está congelado en la versión que se cotejó (ver El caso está congelado); no se mantiene al día con cada circular. Si necesitas otra jurisdicción —o ésta, actualizada—, el camino es escribirla sobre las mismas piezas, y el ajuste final lo hace el modelador.
Qué es neutro y qué no¶
Medido sobre el código, no supuesto:
| Componente | Cálculo | Qué hace |
|---|---|---|
provisioning.internal |
neutro | Provisión por exposición y tasa de pérdida sobre grupos homogéneos —descompuesta en PD · LGD o provista directamente; los grupos los formas tú o los deriva el motor por banda—. No conoce ninguna cartera normativa ni ninguna tabla de supervisor. Su estado de fábrica también es neutro: la columna de cartera se llama portfolio por defecto y ninguna ayuda de su formulario cita una norma. Antes no era así —el default se llamaba cmf_portfolio, de modo que un banco de otro país tenía que renombrar su columna para correr un cálculo que no conoce ninguna norma— y es lo que se corrigió. |
provisioning.ifrs9 |
neutro | ECL bajo IFRS 9: PD marginal × LGD × EAD descontada a la EIR, con staging por SICR. Es una norma contable internacional, no local. |
provisioning (orquestación) |
neutro, con default chileno | El mecanismo no sabe de países: compara dos fuentes y aplica la regla que declaras. ⚠️ Lo que sí es chileno es el estado de fábrica: la fuente A apunta por defecto al motor CMF, y el único régimen de segmentación registrado hoy es el suyo. Cambiar la fuente es un campo del config. |
provisioning.cmf |
Chile | El caso de referencia: matrices del Capítulo B-1/B-3 de la CMF, con su mapeo de categorías, su tratamiento de garantías y sus reglas de exposición. |
La consecuencia práctica, y ésta sí es exacta: el pipeline completo corre hoy fuera de Chile sin
tocar una línea del motor chileno. Scorecard, IFRS 9 y método interno no lo importan siquiera
—medido: cargarlos no mete provisioning.cmf en memoria—. Lo que hay que ajustar fuera de Chile no
es el cálculo, son los defaults y los nombres.
Las cinco piezas de una norma local¶
Esto es lo que hubo que escribir para el caso chileno, y es lo que hay que escribir para cualquier otro. Ninguna exige modificar el núcleo.
- Las tablas de parámetros, versionadas y selladas. No van en código: viven en un archivo de
datos con su hash SHA-256 y un manifiesto que declara de qué circular salió cada tabla, con qué
fecha de vigencia y en qué estado de verificación está. El motor rehúsa arrancar por defecto
si el hash no coincide con lo declarado —es un interruptor, y apagarlo deja pasar el desajuste:
está a la vista para que la decisión sea explícita, no para que se tome sin querer—. En el caso
chileno son 10 matrices, en aritmética
Decimal—nunca coma flotante— porque una provisión que se reporta no admite error de redondeo. - El vocabulario de segmentos, declarado. Qué carteras existe la norma y cómo se llaman. Viaja dentro del resultado de la corrida, no sólo en el config: un esquema que se declara sólo en la entrada es una afirmación que nadie puede contrastar después.
- El mapeo desde el modelo hacia la norma. Tu PD estimada no es la categoría del supervisor: hay que traducir, y esa traducción es una decisión que el motor te pide explícitamente en vez de adivinarla.
- Exposición y garantías según la norma. Qué entra en la exposición, cómo se descuenta un aval, qué redondeo aplica la moneda local.
- La regla de comparación, si la norma la impone. En Chile el Capítulo B-1 obliga a reportar, por institución, el mayor entre el método estándar del supervisor y el método interno del banco. Eso lo expresa la orquestación con dos fuentes y una regla —hoy, el máximo o reportar el método interno—, y no hay nada chileno en el mecanismo. ⚠️ Que la segunda alternativa sea el interno y no cualquiera de las dos tampoco es casual: también sale del B-1, que la admite sólo cuando el supervisor evaluó ese método y no lo objetó.
Un error que la norma chilena hace fácil cometer
La regla del máximo es entre el método estándar y el método interno, y no entre el estándar e IFRS 9. El Compendio (Cap. A-2, num. 5) excluye el modelo de deterioro de NIIF 9 sobre las colocaciones y los créditos contingentes. Comparar los dos marcos contables puede ser útil —por ejemplo, para reportar a una matriz extranjera— pero no es una exigencia del supervisor, y el motor no la rotula como tal.
El caso está congelado¶
El motor chileno no se mantiene al día con cada circular, y decirlo es parte del entregable: un motor normativo que se publica y no se actualiza no envejece hacia «incompleto», envejece hacia incorrecto, y su salida es un número que alguien puede reportar.
Por eso el estado de verificación viaja con los datos y se publica aquí:
| Versión del bundle | cmf_b1_b3_2025_01 |
| Extracción desde el texto oficial | 2026-06-23 (y verificación visual de las tablas más críticas ese mismo día) |
| Cotejo celda por celda de la matriz de consumo | 2026-07-14, contra el compendio consolidado |
| Última modificación normativa incorporada | 2025-01-31 (Circular 2.346/2024, consumo) |
| Archivo de parámetros | sellado por SHA-256, verificado en cada corrida |
⚠️ Las dos fechas no son la misma cosa, y la diferencia importa. La primera es cuándo se extrajeron las tablas del texto oficial. La segunda es un cotejo posterior y más fuerte —una a una contra el texto— y sólo cubre la matriz de consumo. Las dos, con su alcance, viajan declaradas en el manifiesto del paquete, de modo que no hay que fiarse de esta página para saberlo. El resto de las tablas está verificado, pero no con ese nivel de detalle; el registro dice exactamente cuál tiene cuál.
⚠️ La fecha de vigencia no es una sola. Cada matriz trae la suya, y la más antigua en uso es de
2014. El identificador del bundle dice 2025_01 porque ésa es la última circular incorporada,
no porque todas las tablas sean de esa fecha:
| Matriz | Vigente desde | Circular |
|---|---|---|
| Comercial individual (normal y en incumplimiento) | 2014-12-30 | 3.573/2014 |
| Comercial grupal — leasing | 2018-07-06 | 3.638/2018 |
| Comercial grupal — estudiantil | 2018-07-06 | 3.638/2018 |
| Comercial grupal — genérico y factoring | 2020-05-22 | 2.257/2020 |
| Comercial grupal — sustitución por aval | 2018-07-06 | 3.638/2018 |
| Vivienda (PVG) | 2018-07-06 | 3.638/2018 |
| Calidad del aval | 2018-07-06 | 3.638/2018 |
| Contingentes (B-3) | 2016-03-29 | 3.604/2016 |
| Consumo | 2025-01-31 | 2.346/2024 |
Estado real de las fuentes¶
Cinco fuentes, y no todas están en el mismo estado:
| Fuente | Estado |
|---|---|
| Compendio consolidado B-1/B-3 (3.573/2014; 3.638/2018; 3.604/2016) | verificada |
| Circular de consumo 2.346/2024 | verificada |
| PDF semilla B-1 (3.584/2015), confirmación cruzada | verificada |
| Versión 2022 del Compendio (2.243/2019) | referenciada — revalidación pendiente antes de uso productivo |
| RAN 21-10 (garantías) | pendiente — sin tabla numérica nueva verificada |
Dos brechas que el motor declara en vez de rellenar¶
- Aforos y haircuts de garantías financieras. No están tabulados en el B-1; exigen una circular específica de factores de descuento. El motor no inventa un factor: te pregunta qué hacer con una garantía financiera cuyo aforo no está verificado.
- Las tablas numéricas del RAN 21-10. El RAN regula requisitos de garantías, pero de él no se extrajo ninguna tabla nueva para el modelo estándar del B-1.
Antes de usarlo en producción¶
Los parámetros no son oficiales. Se transcribieron del compendio con asistencia de IA y verificación visual; no provienen de la CMF ni están validados por ella —la Comisión no certifica implementaciones de terceros— y requieren validación humana contra la norma vigente antes de cualquier uso productivo.
Lo que sí está hecho y es auditable: la matriz de consumo (numeral B-1 3.1.3, Circular 2.346/2024)
se cotejó celda por celda contra el texto del compendio el 2026-07-14 —sus 16 valores de PI,
sus 6 de PDI y el PI de incumplimiento coinciden exactamente—, y la verificación visual del
2026-06-23 sobre las tablas más críticas detectó y corrigió un error en la columna de escala
internacional de avales. El registro completo, tabla por tabla y con su estado, está en
docs/normativa_cmf_parametros.md.
Y una vez más, porque es el punto de la página: una jurisdicción implementada es evidencia de que el método funciona, no una promesa de mantenerla al día. Si tu norma es otra, las cinco piezas de arriba son el camino; el motor estándar que hay debajo ya no hay que escribirlo.