Detalle
| Campo |
Valor |
| Manual de Usuario |
Cómo armar las reglas del Motor de Decisión y consultar los resultados de cada evaluación crediticia (scoring NOSIS, aprobación o rechazo automático de préstamos online). |
| Módulo |
Herramientas → Motor de Decisión |
| Versión del manual |
1.1 |
Introducción
El Motor de Decisión es la herramienta con la que la financiera arma sus propios criterios de evaluación crediticia y los aplica de forma automática a cada solicitud de préstamo online.
Cada motor es un flujo de reglas (un árbol de decisión que se dibuja en pantalla) que va combinando datos del cliente para llegar a una respuesta final: aprobado, observado o rechazado.
Para tomar esa decisión, el motor puede usar:
- Variables internas de Plenario: líneas de crédito disponibles, datos del cliente, etc.
- Variables externas de buró: score y antecedentes de NOSIS, Veraz, BCRA, RiesgoNet, IDIC, Credixsa y SIISA.
Una vez armado, el motor se activa y la solicitud de crédito lo consulta automáticamente. Cada evaluación queda guardada en un historial que se puede revisar después por CUIT y por fecha.
Importante: este manual cubre dos tareas distintas pero conectadas: configurar las reglas de un motor (en el editor visual) y consultar los resultados de evaluaciones ya ejecutadas (en el historial). Ambas se acceden desde el mismo listado de motores.
Acceso al módulo
- Ingresá al Back Office con tu usuario.
- Abrí el menú Herramientas → Motor de Decisión.
- Se abre el listado de motores (los flujos de reglas ya creados). Desde ahí podés crear uno nuevo, editar, evaluar, ver el historial o actualizar las variables de servicios.
Importante: el acceso depende de un permiso que asigna el administrador del sistema. Si no ves la opción en el menú, pedí que te habiliten el permiso correspondiente (ver sección Permisos).
Pantalla principal
La pantalla principal es el listado Motores de Reglas. Cada fila es un motor configurado y muestra:
| Columna |
Qué muestra |
| Acciones |
Botones para ver historial, evaluar y editar el motor. |
| ID |
Número que identifica al motor (se usa para invocarlo desde las solicitudes). |
| Nombre / Descripción |
Nombre del flujo (ej.: "Aprobación Créditos Personales") y su descripción. |
| Estado |
Activo o Inactivo. Solo los motores activos se usan en producción. Se cambia con el botón de encendido. |
| TTL |
Días que se reutiliza (cachea) el resultado de una evaluación para el mismo CUIT antes de volver a calcular. |
| Creado / Modificado |
Fechas de alta y última modificación. |
| Zona Peligrosa |
Botón para eliminar el motor (acción irreversible). |
Arriba a la derecha están los botones Actualizar (refrescar el listado), Servicios (descargar/actualizar las variables de los burós) y Nuevo (crear un motor desde cero, abre el editor en otra pestaña).
Parámetros
Cada motor tiene una configuración general que se define en el editor, en la cabecera del flujo:
| Parámetro |
Para qué sirve |
| Nombre |
Identifica el motor en el listado y en las solicitudes. |
| Descripción |
Texto libre para aclarar qué evalúa el motor. |
| TTL (días) |
Tiempo que se conserva en caché el resultado por CUIT. Con TTL = 0 siempre se recalcula. Con TTL = 30, si el mismo CUIT se evaluó hace menos de 30 días, se devuelve el resultado guardado sin volver a consultar los burós. |
| Nro Grupo (VR) |
Grupo de variables de NOSIS que usa el motor para el scoring. |
| Invocar servicio si regla válida |
Define si se llama al servicio externo cuando la regla lo requiere. |
| Estado |
Activo / Inactivo. |
Para consultar resultados, el historial (Logs) ofrece estos filtros de búsqueda:
| Filtro |
Para qué sirve |
| CUIT |
Trae solo las evaluaciones de ese cliente (acepta el CUIT con o sin guiones). |
| Desde / Hasta |
Acota las evaluaciones por rango de fechas. |
Resultados
Cuando un motor se evalúa, devuelve un resultado de evaluación con estos datos:
| Dato |
Qué indica |
| Status |
La decisión final: Aprobado, Observado, Rechazado o Error. |
| Observaciones |
Texto explicativo de la decisión (motivo del rechazo, condiciones, etc.). |
| Variables de salida |
Los valores que el motor produjo (por ejemplo monto preaprobado, plazo, tasa). |
| Traza |
El paso a paso de la ejecución: qué nodos se recorrieron, qué servicios se consultaron y qué dio cada comparación. Sirve para entender por qué se llegó a esa decisión. |
| Servicios ejecutados |
Qué burós se consultaron en esa evaluación (NOSIS, Veraz, etc.). |
Los estados internos se manejan con estos códigos: Aprobado (200), Observado (201), Rechazado (401) y Error (500).
En el historial (Logs) cada evaluación guardada muestra el CUIT, la fecha, el TTL aplicado y el detalle completo del resultado. Las filas vencidas (fuera del TTL) aparecen resaltadas. Desde ahí se puede ver el detalle de una ejecución, eliminar un registro puntual o limpiar todo el historial del motor.
Acciones disponibles
| Acción |
Descripción |
| Nuevo |
Crea un motor desde cero y abre el editor visual. |
| Editar |
Abre el editor para modificar el flujo de un motor existente. |
| Evaluar |
Corre el motor con datos de prueba y muestra el resultado y la traza (sin afectar producción). |
| Guardar |
Persiste el flujo del motor (cabecera + nodos). |
| Activar / Desactivar |
Cambia el estado del motor. Solo los activos se usan en las solicitudes. |
| Eliminar |
Borra el motor (irreversible). |
| Importar / Exportar |
Guarda o carga un motor como archivo, para reutilizarlo o moverlo entre instalaciones. |
| Servicios |
Descarga o actualiza las definiciones de variables de los burós (NOSIS, Plenario, Veraz, BCRA, RiesgoNet, IDIC, Credixsa, SIISA). |
| Ver historial (Logs) |
Lista las evaluaciones ejecutadas, con filtros por CUIT y fecha. |
| Limpiar historial |
Elimina todos los registros de evaluación de un motor. |
Definir una regla (crear un motor)
- En el listado, hacé clic en Nuevo. Se abre el editor en una pestaña nueva.
- Completá la cabecera: Nombre, Descripción, TTL y Nro Grupo (VR) de NOSIS.
- Agregá nodos al flujo con el botón Agregar Nodo y conectalos entre sí. El flujo siempre arranca en el nodo inicial Motor (Start).
- Hacé clic en Guardar.
Armar las condiciones
Cada nodo de Condición compara un dato con un valor y bifurca el flujo en dos caminos (Verdadero / Falso):
- Elegí el origen del dato del lado izquierdo:
- Servicio: una variable de buró (ej.: score de NOSIS, situación BCRA).
- Entrada: un dato que llega con la solicitud (ej.: CUIT, ingreso declarado).
- Fórmula: un cálculo combinando varias variables (ej.: edad a partir de la fecha de nacimiento).
- Elegí el operador (
>, <, =, contiene, etc.) y el valor a comparar.
- Conectá la salida Verdadero y la salida Falso a los nodos que correspondan.
Los nodos de tipo Sub-Motor y Motor-Resultado permiten reutilizar otro motor ya armado dentro de este flujo, pasándole variables de entrada y leyendo sus resultados.
Ejemplo de condición: NOSIS.Score > 550 → si es Verdadero sigue por una rama (ej.: aprobar), si es Falso sigue por la otra (ej.: derivar a análisis).
Configurar el resultado
El flujo termina en un nodo de Resultado, que define la respuesta final:
- Definí la variable Status con el valor de la decisión:
Aprobado, Observado o Rechazado.
- Opcionalmente, definí Observaciones con el texto explicativo.
- Agregá las variables de salida que necesite la solicitud (monto preaprobado, plazo, tasa, etc.), como valor fijo o como fórmula.
- Guardá el motor y, si quedó validado, activalo para que se use en producción.
Ejemplo práctico
Una financiera arma el motor "Evaluación Crédito Personal" así:
- Condición 1 —
Entrada.Edad >= 21 y <= 65. Si no cumple → nodo Resultado con Status = Rechazado, Observaciones = "Edad fuera de rango".
- Condición 2 —
Entrada.IngresoMensual > 150000. Si no cumple → Status = Rechazado.
- Condición 3 —
NOSIS.Score > 550. Si no cumple → Status = Observado (derivar a un analista).
- Condición 4 —
BCRA.Situacion = 1 (sin antecedentes negativos). Si cumple todo → nodo Resultado con Status = Aprobado y variable de salida MontoPreaprobado = 500000.
Se le pone TTL = 7 para no reconsultar NOSIS al mismo CUIT durante una semana. Se guarda y se activa. A partir de ahí, cada nueva solicitud de crédito de un cliente consulta este motor y obtiene en segundos el Status, las observaciones y el monto preaprobado, con la traza completa guardada en el historial.
Consejos útiles
- Empezá por las reglas generales (edad, ingreso) y dejá las condiciones finas (score, antecedentes) para el final del flujo.
- Usá pocas variables pero significativas: calidad por sobre cantidad.
- Antes de activar un motor, usá Evaluar con CUIT reales para validar que las ramas devuelven lo esperado; revisá la Traza para ver el paso a paso.
- Ajustá el TTL según el caso: más alto ahorra consultas a los burós (y costo), más bajo mantiene los datos más frescos.
- Antes de armar un motor que use un buró, actualizá sus variables con el botón Servicios; para NOSIS, completá el VR y el CUIT requeridos.
- Para mover un motor entre instalaciones (o respaldarlo), usá Exportar e Importar.
- Revisá los motores periódicamente: los perfiles de riesgo cambian con el tiempo.
Preguntas frecuentes
¿Qué diferencia hay entre "Aprobado", "Observado" y "Rechazado"?
**Aprobado**: la solicitud cumple todas las reglas y se aprueba automáticamente. **Rechazado**: incumple alguna regla excluyente y se rechaza. **Observado**: queda en un estado intermedio para que un analista lo revise manualmente.
¿Por qué una evaluación no volvió a consultar NOSIS?
Por el **TTL**. Si el mismo CUIT se evaluó hace menos días que el TTL del motor, el sistema reutiliza el resultado guardado (se ve "CACHE HIT" en la traza) en lugar de volver a llamar a los burós. Si querés forzar el recálculo, esperá a que venza el TTL o bajalo.
Cambié las reglas de un motor que ya está en uso. ¿Se aplican de inmediato?
Sí. Una vez que guardás el motor y está **Activo**, las solicitudes nuevas usan la última versión. Las evaluaciones ya guardadas en el historial no se modifican.
¿Puedo desactivar un motor sin borrarlo?
Sí. Con el botón de encendido lo pasás a **Inactivo**: deja de usarse en producción pero se conserva, junto con su historial, para reactivarlo más adelante.
¿Qué pasa si un servicio externo (NOSIS, BCRA) falla durante la evaluación?
La traza registra el error del servicio y el motor continúa según cómo estén armadas las condiciones. Si la falla impide llegar a un nodo de Resultado, el Status devuelto es **Error**.
Permisos
| Permiso |
Qué habilita |
Herramientas.Algoritmos |
Acceso al módulo Motor de Decisión (listado, alta, modificación y baja de motores). |
El permiso lo asigna el administrador del sistema por grupo de usuarios. Sin él, la opción no aparece en el menú Herramientas.
Información técnica
Basada en el análisis del formulario real de la v14.
Formularios principales
| Form |
Rol |
FormAlgortimos |
Contenedor WinForms del Motor de Decisión (note la grafía sin la primera "i"). Se abre desde Herramientas → Motor de Decisión con el handler btnHerr_MotorDeDecision_ItemClick en VisualPlenarioNET\frmMainParts\frmNewMain.vb (ShowFrmInDockPanel(New FormAlgortimos())). |
| Editor web MVC |
El listado, el editor visual y el historial son una webapp ASP.NET MVC embebida: proyecto VPNET_WEBMotor\VPNET_WEB_Motor. Vistas Views\Home\Index.cshtml (listado), Editor.cshtml (editor de flujo) y Logs.cshtml (historial). |
Formularios satélite por función
| Form |
Rol |
HomeController.Index |
Listado de motores. |
HomeController.Editor(int IdMotor) |
Editor visual del flujo (nuevo/editar). |
HomeController.SaveMotor |
Persiste el flujo (POST). |
HomeController.EvaluarMotor(EvaluacionRequestDto) |
Corre el motor con datos de prueba (POST). |
HomeController.GetVariablesList / GetMotoresList |
Catálogo de variables y de motores (GET). |
HomeController.ActualizarServicios(UpdateServicesRequest) |
Descarga/actualiza variables de burós (POST). |
Controlador en VPNET_WEBMotor\VPNET_WEB_Motor\Controllers\HomeController.cs. Lógica de negocio en VPNET_DataModel\Manager\Gestion\Motor\Motor_Manager.cs: SaveMotor, GetVariables, GetMotores, EvaluarMotor (por IdMotor o por JSON), EjecutarFlujoRecursivo, GetLog/SaveLog (caché TTL). Tipos de nodo (JsonNodo.TipoNodo, como string en el switch de EjecutarFlujoRecursivo): Condicion, Motor (sub-motor), MotorResultado, Resultado. Estados: enum EnumMotorEstado { Aprobado = 200, Observado = 201, Rechazado = 401, Error = 500 } en VPNET_DataModel\Manager\Gestion\BASE\Base_Manager.cs. Endpoint externo WCF POST Motor/Eval → Motor_Eval(MotorEvalRequest) en VPNET_WCF\VPNET_WCF\Servicios\Externos\Motor.cs (devuelve OperationResultV2<ResultadoEvaluacion>).
Permisos reales
| Permiso |
Acción |
Herramientas.Algoritmos |
Único permiso chequeado (clsSeguridad.IsAllowedObject en frmNewMain.vb) para ingresar al listado de Motores de Decisión. |
Tablas de base de datos principales
| Tabla |
Uso |
Motor |
Cabecera del motor + el flujo completo serializado en la columna MotorJson. |
MotorVariables |
Catálogo de variables por servicio/buró (Nombre, Descripcion, TipoDato, Servicio, VR, CDA, ...). |
MotorLog |
Historial de evaluaciones; actúa como caché por IdMotor + CUIT según TTL (días). Columnas CUIT, Fecha, TTL. |
Mappings EF en VPNET_DataModel\Mappings\Motor\ (MotorMap.cs, MotorVariablesMap.cs, MotorLogMap.cs).
Relación con otros módulos / manuales
| Manual relacionado |
Vínculo operativo |
| Nueva Solicitud de Crédito |
Amplía el circuito, la configuración o los datos que utiliza esta funcionalidad. |
Notas para soporte
MotorLog es la caché: con TTL = 0 siempre recalcula; con TTL > 0, si el mismo CUIT se evaluó dentro del plazo se reutiliza el resultado guardado (CACHE HIT) sin reconsultar burós.
- Servicios externos resueltos en la evaluación: NOSIS, PLENARIO, PLENARIO_LINEAS, VERAZAPI, BCRA, RIESGONET, IDIC, CREDIXSA, SIISA.
- El nombre del form
FormAlgortimos está mal escrito en el código (sin la primera "i"); usar esa grafía exacta al buscarlo.
Ver también