Configuración Predictiva
Panel de control per-tenant del motor predictivo: pesos de AHI, grados, umbrales de RUL, probabilidad de falla, ventana del inbox y overrides por tipo de activo. Trazabilidad por config_version.
Configuración Predictiva
La configuración predictiva es el panel de control del motor de mantenimiento predictivo. Permite a cada tenant ajustar los parámetros que gobiernan cómo se calcula el AHI, cuándo se considera que un activo está en riesgo, qué ventana usa el inbox unificado para consolidar alertas, y cuánta confianza mínima se requiere para generar una intervención automática — todo sin cambios de código ni despliegues.
¿Cómo funciona?
La configuración está versionada (config_version) y es consumida online por el pipeline predictivo. Los cambios se validan, persisten y propagan vía pub/sub sin reinicio del worker.
¿Para qué sirve?
- Personalizar el motor predictivo según la tolerancia al riesgo y el contexto operativo de cada organización.
- Ajustar los pesos de los 5 sub-índices del AHI y los umbrales de grados (A/B/C/D).
- Definir los breakpoints de RUL (horas remanentes que separan
critical/high/medium/low) y de probabilidad de falla. - Configurar la ventana de dedup del Alert Aggregator.
- Overridear la configuración per-asset-type (una bomba crítica puede tener umbrales más estrictos que un compresor tolerante).
- Trazabilidad completa vía
config_version— cada snapshot persistido lleva la versión con la que fue calculado.
Parámetros configurables
Pesos del AHI (ahi_weights)
Importancia relativa de cada sub-índice del Asset Health Index. La suma debe dar 1.0.
| Sub-índice | Default | Qué mide |
|---|---|---|
condition | 0.35 | Estado instantáneo vs baselines |
alarm_health | 0.20 | Horas-alarma acumuladas ISA-18.2 con cap por alarma |
maintenance_compliance | 0.15 | Cumplimiento de planes preventivos |
trend_stability | 0.10 | Dirección y r² de tendencias 24h |
anomaly_pressure | 0.20 | Densidad de detecciones ML recientes (7d) |
Ver Monitoreo de Condición para la semántica de cada sub-índice.
Grados del AHI (ahi_grades)
Thresholds que convierten el score 0–100 en letra A/B/C/D/F:
| Parámetro | Default | Significado |
|---|---|---|
grade_a | 90 | AHI ≥ 90 → A (excelente) |
grade_b | 70 | AHI ≥ 70 → B (bueno) |
grade_c | 50 | AHI ≥ 50 → C (aceptable) |
grade_d | 30 | AHI ≥ 30 → D (insatisfactorio); debajo → F |
Tenants más estrictos pueden subir los thresholds (grade_a = 95, grade_b = 80...) para que la misma salud numérica reciba una calificación más dura.
Umbrales de RUL (rul_thresholds)
Horas restantes que separan los niveles de riesgo:
| Parámetro | Default | Rango permitido | Significado |
|---|---|---|---|
critical_hours | 24 | 1 a 8760 (1 año) | RUL por debajo de 24h pasa a crítico |
high_hours | 168 | 1 a 17520 (2 años) | RUL por debajo de 168h (7d) pasa a alto |
medium_hours | 720 | 1 a 43800 (5 años) | RUL por debajo de 720h (30d) pasa a medio |
Regla de jerarquía: los tres valores deben cumplir critical_hours <= high_hours <= medium_hours. Los requests que violen este orden se rechazan con 422. Evita errores de configuración del tipo critical=500 con high=100.
Los rangos se relajaron para cubrir activos industriales de larga vida (transformadores, recipientes a presión) cuya vida útil se mide en años y no en semanas. Tenants con cadencia de mantenimiento mensual pueden aumentar estos thresholds; plantas 24/7 con turnos cortos suelen bajarlos.
Probabilidad de falla (failure_probability)
Breakpoints que traducen AHI en bucket de riesgo de falla:
| Parámetro | Default | Significado |
|---|---|---|
critical_ahi | 30 | AHI ≤ 30 → probabilidad crítica |
high_ahi | 50 | 30 < AHI ≤ 50 → alta |
normal_ahi | 70 | 50 < AHI ≤ 70 → media |
Alert Aggregator
| Parámetro | Default | Significado |
|---|---|---|
alert_dedup_window_minutes | 60 | Ventana dentro de la cual detecciones del mismo activo colapsan en una fila |
Ver Inbox Unificado.
Otros
| Parámetro | Default | Significado |
|---|---|---|
cbm_trigger_multiplier | 1.5 | Una métrica que cruza baseline_max × 1.5 dispara CBM |
ahi_risk_threshold | 70 | AHI ≤ 70 se considera "en riesgo" para dashboards ejecutivos |
confidence_snapshots_ceiling | 30 | Número de snapshots para que la confianza del RUL sature en 100% |
Requisitos de madurez (maturity_requirements)
Condiciones para promover un activo entre niveles:
| Parámetro | Default | Significado |
|---|---|---|
level_1_snapshots | 10 | Snapshots para salir de Nivel 0 |
level_2_snapshots | 30 | Snapshots para Nivel 2 |
level_2_failures | 1 | Fallas registradas para Nivel 2 |
level_3_failures | 3 | Fallas para Nivel 3 |
level_3_confidence | 70 | Confianza mínima de RUL (%) para Nivel 3 |
Ver Niveles de Madurez.
Overrides por tipo de activo
Para cada asset_type, se puede sobrescribir cualquier sub-dict de la configuración sin repetir los parámetros que se mantienen:
{
"rul_thresholds": { "critical_hours": 24, "high_hours": 168, "medium_hours": 720 },
"asset_type_overrides": {
"critical_pump": { "rul_thresholds": { "critical_hours": 12 } },
"hvac_chiller": { "rul_thresholds": { "critical_hours": 48, "high_hours": 336 } }
}
}Las bombas críticas pasan a "crítico" a las 12h restantes; los chillers HVAC son más tolerantes (48h). El resto de parámetros sigue usando el default del tenant.
config_version — trazabilidad de auditoría
Cada vez que un usuario guarda cambios en la configuración, config_version se incrementa atómicamente ($inc: {config_version: 1}). Los tenants nuevos arrancan en 0 (defaults de fábrica).
Cada documento persistido por el motor lleva el config_version activo en el momento del cálculo:
_asset_health_snapshots— campoconfig_versionen cada snapshot._asset_prognostics— campoconfig_versionen cada prognóstico.compute_enhanced_prognostics— exponeconfig_versionen el response.
Por qué importa: si tu tenant ajusta ahi_grades tres veces en 6 meses, los snapshots antiguos no se reescriben — cada uno conserva la versión con la que fue calculado. Una auditoría puede reconstruir exactamente qué umbrales produjeron cada calificación histórica.
Callers no pueden smuggle un config_version: el servicio lo filtra en cada update_config — el counter es propiedad del sistema, no del payload.
Cache
La configuración se cachea en memoria (TTL 5 min) y en Redis si está disponible. Cada update_config invalida el cache para que los siguientes lectores vean los valores nuevos. Los cambios no requieren reinicio.
¿Cómo usarlo?
Desde el dashboard
- Configuración → Motor Predictivo.
- Ajusta los pesos del AHI usando sliders (la suma se normaliza automáticamente al guardar).
- Modifica thresholds de grados y RUL.
- Configura overrides por asset_type en la sección Per-Tipo.
- Guardar — el
config_versionse incrementa y los próximos cálculos lo usan. - Restaurar Defaults — limpia toda la configuración del tenant (el
config_versionqueda como quedaría después de un update).
Los cambios quedan registrados en el audit trail del tenant con fecha, usuario, valores anteriores y nuevos. Combinado con config_version, puedes responder preguntas como "¿qué thresholds aplicaban el 3 de marzo?" con certeza.
Bajar el critical_hours o el grade_a puede generar más tareas urgentes automáticas. Recomendamos revisar el impacto en un entorno de staging antes de aplicar en producción.
Desde la API
GET /api/v1/predictive-config # retorna config resuelta (defaults + overrides)
PATCH /api/v1/predictive-config # actualiza parcialmente, bumpea config_version
POST /api/v1/predictive-config/reset # borra la config del tenant (vuelve a defaults)Las actualizaciones son deep-merge: si mandas solo {"rul_thresholds": {"critical_hours": 12}}, los otros campos de rul_thresholds conservan su valor.
Beneficios clave
- Un solo panel per-tenant — ajuste sin código, sin despliegues.
- Granularidad fina: pesos + grados + thresholds + overrides por tipo de activo.
config_versionincremental trazable en cada snapshot persistido.- Cache transparente de 5 min + invalidación automática en updates.
- El sistema protege su propio counter — callers no pueden smuggle versiones.
- Reset idempotente que no rompe el versionado.
Consumidores
La configuración resuelta (defaults + tenant + asset_type override) la consumen:
health_assessment_service— pesos + grados + anomaly_pressure.prognostics_service— rul_thresholds + failure_probability + confidence_snapshots_ceiling.maturity_calculation_service— maturity_requirements.alert_aggregator_service— alert_dedup_window_minutes.- Daily briefings WhatsApp/email — ahi_risk_threshold.
Sincronizacion CMMS
Sincronizacion bidireccional con sistemas CMMS externos como SAP PM, Maximo o integraciones personalizadas para unificar la planificacion predictiva con los sistemas patrimoniales.
KPIs Predictivos
Metricas de valor del mantenimiento predictivo incluyendo tiempo anomalia-a-OT, tasa de falsos positivos, porcentaje de OT auto-creadas, downtime no planeado y precision de RUL.