← Volver al índice de anexos
Macrobloque 4·Inteligencia·Anexo 26 / 40

Anexo 26 · Recomendaciones FARO

Etapa: Fase 7.2
NDA RECOMENDADO ACTIVO PROPIO

ANEXO 26

Recomendaciones FARO

Este anexo corresponde a la Fase 7 — Decisión, etapa “Recomendaciones FARO”. Es la capa donde FARO Connect toma diagnósticos priorizados y los convierte en sugerencias concretas de decisión, acción, revisión, validación o escalamiento.


1. Objetivo del anexo

El objetivo del Anexo 26 — Recomendaciones FARO es responder:

¿Qué conviene hacer ahora, según el diagnóstico, la prioridad, la confianza y el contexto de la empresa?

Hasta acá FARO ya hizo esto:

Datos
→ KPIs
→ Señales
→ Reglas
→ Alertas
→ Tensiones
→ Diagnóstico
→ Confianza
→ Priorización

Ahora falta el paso clave:

¿Y entonces qué hacemos?

Ejemplo:

Diagnóstico:
Crecimiento no rentable.

Prioridad:
P2 — Alta.

Confianza:
0.84 — alta.

Recomendación FARO:
Auditar operaciones con descuento mayor al 8%, revisar fórmula de comisión para incluir margen y cobranza, y priorizar cobranza de clientes grandes.

Una recomendación FARO no debe ser un consejo liviano. Debe ser una salida accionable, trazable y defendible.


2. Tesis del Anexo 26

La tesis es:

FARO Connect no debe limitarse a decir qué está pasando. Debe recomendar qué hacer, con qué prioridad, con qué responsable, con qué plazo y con qué nivel de confianza.

Un dashboard tradicional dice:

Margen bajo.

FARO debe decir:

El margen está bajo por descuentos altos. Se recomienda auditar operaciones con descuento mayor al 8%, revisar autorizaciones comerciales y analizar margen por vendedor, producto y cliente. Responsable sugerido: Gerente Comercial. Plazo: 72 horas.

La diferencia es brutal.

El dashboard informa. FARO orienta decisión.


3. Qué es una recomendación FARO

Una recomendación FARO es una sugerencia estructurada de acción o decisión basada en evidencia.

Debe incluir:

diagnóstico origen
tensión relacionada
prioridad
confianza
acción sugerida
responsable
áreas consultadas
vencimiento
impacto esperado
riesgo de no actuar
nivel de automatización permitido
requiere aprobación o no
impacto en FARO Score

Ejemplo:

{
  "recommendation_code": "REC_COMMERCIAL_001",
  "title": "Auditar descuentos altos",
  "origin_diagnosis": "crecimiento_no_rentable",
  "priority": "P2",
  "confidence": 0.84,
  "recommended_action": "Auditar operaciones con descuento mayor al 8%",
  "responsible_role": "Gerente Comercial",
  "consulted_roles": ["Finanzas", "RRHH"],
  "due_hours": 72,
  "expected_impact": {
    "gross_margin": "+2 a +4 puntos",
    "discount_rate": "-3 a -5 puntos"
  },
  "requires_approval": false,
  "automation_level": "crear_accion_sugerida"
}

4. Diferencia entre diagnóstico, recomendación y acción

Concepto Qué responde Ejemplo
Diagnóstico Qué está pasando. Crecimiento no rentable.
Recomendación Qué conviene hacer. Auditar descuentos y revisar comisión.
Acción Tarea concreta asignada. Juan debe auditar ventas con descuento >8% antes del viernes.

La recomendación está entre el diagnóstico y la acción.

Diagnóstico → Recomendación → Acción → Seguimiento → Resultado

5. Tipos de recomendaciones FARO

FARO debería manejar distintas familias de recomendaciones.

Tipo de recomendación Qué hace Ejemplo
Correctiva Corrige un problema actual. Auditar descuentos altos.
Preventiva Evita un problema futuro. Anticipar reposición antes de quiebre.
Validación Pide revisar datos antes de actuar. Completar costos faltantes.
Escalamiento Eleva el tema a un superior. Escalar acción crítica vencida.
Política Sugiere cambiar una regla de gestión. Ajustar política de crédito.
Proceso Mejora circuito operativo. Implementar aprobación de descuentos.
Estructural Cambia diseño organizativo o modelo. Rediseñar comisión comercial.
Financiera Protege caja o rentabilidad. Reprogramar pagos y priorizar cobranza.
Comercial Mejora ventas, margen o clientes. Reenfocar mix de productos rentables.
Data quality Mejora datos para decidir mejor. Normalizar productos y costos.

6. Biblioteca inicial de recomendaciones FARO

Una base seria debería tener:

200 a 400 recomendaciones iniciales

Escalable a:

1.000+ recomendaciones por industria, tensión, KPI, alerta, diagnóstico y tipo de acción.

Distribución inicial sugerida:

Familia Cantidad inicial
Comercial 40-70
Finanzas 40-70
Stock / Compras 40-80
RRHH / incentivos 25-50
Operaciones 30-60
Dirección / workflow 30-60
Calidad de datos 20-40
Clientes 20-40
Proveedores 20-40
Industria específica 80-200

Para MVP conviene arrancar con:

30 a 60 recomendaciones críticas

Bien diseñadas, no 400 frases de consultor con corbata y poca calle.


7. Estructura estándar de una recomendación FARO

{
  "recommendation_code": "REC_STOCK_001",
  "title": "Anticipar reposición de producto crítico",
  "description": "El producto aún supera el stock mínimo, pero los días de cobertura son menores al plazo de reposición.",
  "origin_type": "diagnosis",
  "origin_code": "riesgo_futuro_stock_critico",
  "related_tension": "stock_critico_comercial",
  "related_kpis": [
    "stock_actual",
    "dias_cobertura",
    "plazo_proveedor",
    "venta_promedio_diaria"
  ],
  "priority_level": "P2",
  "confidence_min": 0.75,
  "responsible_role": "Responsable de Compras",
  "consulted_roles": ["Stock", "Comercial"],
  "recommended_action": "Generar reposición preventiva o activar proveedor alternativo.",
  "due_hours": 48,
  "expected_impact": {
    "stockout_risk": "reducir",
    "ventas_perdidas": "evitar"
  },
  "requires_approval": false,
  "automation_level": "crear_tarea",
  "score_impact_expected": "+2 a +4"
}

8. Campos obligatorios de una recomendación

Campo Para qué sirve
recommendation_code Identificador único.
title Nombre claro.
description Explicación ejecutiva.
origin_type Viene de KPI, señal, alerta, tensión o diagnóstico.
origin_code Código del origen.
related_tension Tensión vinculada.
related_kpis KPIs que la sustentan.
priority_level Prioridad P1-P5.
confidence_min Confianza mínima requerida.
responsible_role Responsable sugerido.
consulted_roles Áreas consultadas.
recommended_action Qué hacer.
due_hours Plazo sugerido.
expected_impact Qué se espera mejorar.
requires_approval Si requiere aprobación humana.
automation_level Qué puede automatizar FARO.
score_impact_expected Impacto esperado en FARO Score.

9. Niveles de recomendación

FARO debería clasificar recomendaciones según fuerza y permiso de ejecución.

Nivel Significado Ejemplo
Observación Solo mirar evolución. Margen levemente bajo.
Validación Revisar datos antes de actuar. Costos incompletos.
Sugerencia Acción recomendada, no obligatoria. Revisar descuentos.
Acción recomendada Conviene crear tarea. Auditar ventas bajo margen.
Acción prioritaria Debe ejecutarse con plazo. Reposición de producto crítico.
Escalamiento Debe subir a Dirección. Caja bajo mínimo.
Decisión ejecutiva Requiere aprobación. Cambiar política de comisión.

10. Fórmula de fuerza de recomendación

Fuerza recomendación =
prioridad del diagnóstico × 25%
+ confianza del diagnóstico × 20%
+ impacto esperado × 20%
+ urgencia × 15%
+ bajo riesgo de implementación × 10%
+ evidencia histórica de efectividad × 10%

Código:

def fuerza_recomendacion(
    prioridad_diagnostico,
    confianza_diagnostico,
    impacto_esperado,
    urgencia,
    bajo_riesgo,
    efectividad_historica
):
    return round(
        prioridad_diagnostico * 0.25 +
        confianza_diagnostico * 0.20 +
        impacto_esperado * 0.20 +
        urgencia * 0.15 +
        bajo_riesgo * 0.10 +
        efectividad_historica * 0.10,
        2
    )

Lectura:

Score Salida
85-100 Acción prioritaria / escalamiento.
65-84 Acción recomendada.
45-64 Sugerencia o validación.
25-44 Observación.
<25 No recomendar todavía.

11. Recomendación según confianza

La confianza define qué tan fuerte debe ser la recomendación.

Confianza Salida recomendada
0.85 - 1.00 Recomendar acción concreta.
0.70 - 0.84 Recomendar acción con observación.
0.50 - 0.69 Recomendar validación previa.
< 0.50 No recomendar acción; mejorar datos.

Código:

def tipo_recomendacion_por_confianza(confianza):
    if confianza >= 0.85:
        return "accion_concreta"
    if confianza >= 0.70:
        return "accion_con_observacion"
    if confianza >= 0.50:
        return "validacion_previa"
    return "mejorar_datos"

Ejemplo:

Margen bajo con confianza 0.88:
Auditar descuentos.

Margen bajo con confianza 0.58:
Completar costos y recalcular margen antes de decidir.

12. Recomendaciones comerciales

12.1 Crecimiento no rentable

Diagnóstico:

Ventas suben, margen baja, descuentos suben y cobranza empeora.

Recomendaciones:

Auditar operaciones con descuento mayor al 8%.
Revisar margen por vendedor, cliente, producto y canal.
Revisar fórmula de comisión para incluir margen y cobranza.
Limitar descuentos sin autorización.
Priorizar cobranza de clientes de alto volumen.

Código:

def recomendar_crecimiento_no_rentable(ctx):
    recomendaciones = []

    if ctx["descuento_promedio"] > 0.10:
        recomendaciones.append("auditar_descuentos_altos")

    if ctx["margen_var"] < -0.05:
        recomendaciones.append("analizar_margen_por_producto_vendedor_cliente")

    if ctx["dias_cobranza_var"] > 7:
        recomendaciones.append("priorizar_cobranza_clientes_grandes")

    if ctx.get("comision_var", 0) > 0 and ctx["margen_var"] < 0:
        recomendaciones.append("revisar_formula_comision_por_margen_y_cobranza")

    return recomendaciones

12.2 Margen deteriorado por descuentos

Recomendaciones:

Crear autorización obligatoria para descuentos superiores al umbral.
Auditar ventas con margen bajo.
Revisar lista de precios.
Analizar descuentos por vendedor.
Bloquear descuentos automáticos sin margen mínimo.

Código:

def recomendar_margen_descuento(margen, descuento):
    if margen < 0.20 and descuento > 0.10:
        return {
            "recommendation": "auditar_y_limitar_descuentos_altos",
            "responsible": "Gerente Comercial",
            "due_hours": 72,
            "requires_approval": False
        }

    return None

12.3 Cliente grande poco rentable

Recomendaciones:

Revisar margen real del cliente.
Revisar condiciones de crédito.
Recalcular rentabilidad ajustada por cobranza.
Renegociar precio o plazo.
Limitar nuevas ventas a condición de pago parcial.

Código:

def recomendar_cliente_grande_riesgoso(concentracion, margen, dias_mora):
    if concentracion > 0.15 and margen < 0.20 and dias_mora > 30:
        return {
            "recommendation": "revisar_condiciones_cliente_clave",
            "actions": [
                "calcular_rentabilidad_ajustada_por_cobranza",
                "renegociar_condiciones",
                "definir_limite_credito"
            ],
            "requires_approval": True,
            "approver": "Dirección"
        }

    return None

13. Recomendaciones financieras

13.1 Caja bajo mínimo

Recomendaciones:

Priorizar cobranza inmediata.
Revisar pagos no críticos.
Reprogramar compromisos negociables.
Suspender compras no urgentes.
Activar seguimiento diario de caja.
Revisar clientes con deuda vencida.

Código:

def recomendar_caja_bajo_minimo(caja_actual, caja_minima):
    if caja_actual < caja_minima:
        return {
            "recommendation": "plan_caja_urgente",
            "priority": "P1",
            "responsible": "Finanzas",
            "due_hours": 24,
            "actions": [
                "priorizar_cobranza",
                "reprogramar_pagos_no_criticos",
                "revisar_compras_no_urgentes",
                "actualizar_cashflow_7_dias"
            ],
            "requires_approval": True,
            "approver": "Dirección"
        }

    return None

13.2 Cobranza lenta

Recomendaciones:

Segmentar clientes por mora e importe.
Priorizar clientes de alto saldo.
Cambiar condición de venta en clientes riesgosos.
Asignar responsable de cobranza por cliente.
Revisar incentivos comerciales vinculados a cobro.

Código:

def recomendar_cobranza_lenta(dias_cobranza, objetivo=30):
    if dias_cobranza > objetivo:
        return {
            "recommendation": "plan_recuperacion_cobranza",
            "responsible": "Finanzas",
            "consulted": ["Comercial"],
            "actions": [
                "rankear_clientes_por_deuda_vencida",
                "contactar_top_10_clientes_morosos",
                "revisar_condiciones_credito",
                "vincular_comision_a_cobro"
            ]
        }

    return None

13.3 Gasto desalineado

Recomendaciones:

Abrir gasto por área y centro de costo.
Separar gastos operativos de gastos de Directorio.
Detectar gastos recurrentes crecientes.
Congelar gastos discrecionales.
Definir presupuesto mensual por área.

Código:

def recomendar_gasto_desalineado(gastos_var, ventas_var):
    if gastos_var > ventas_var and gastos_var > 0.10:
        return {
            "recommendation": "auditoria_gastos_por_area",
            "responsible": "Finanzas",
            "actions": [
                "abrir_gastos_por_centro_costo",
                "identificar_gastos_recurrentes_crecientes",
                "separar_gastos_directorio",
                "definir_tope_gasto_por_area"
            ]
        }

    return None

14. Recomendaciones de stock

14.1 Stock crítico comercial

Recomendaciones:

Activar reposición urgente.
Buscar proveedor alternativo.
Redistribuir stock entre sucursales.
Priorizar venta a clientes estratégicos.
Revisar mínimos por producto crítico.

Código:

def recomendar_stock_critico(producto_critico, dias_cobertura, plazo_proveedor):
    if producto_critico and dias_cobertura < plazo_proveedor:
        return {
            "recommendation": "reposicion_preventiva_producto_critico",
            "priority": "P2",
            "responsible": "Compras",
            "consulted": ["Stock", "Comercial"],
            "due_hours": 48,
            "actions": [
                "emitir_orden_reposicion",
                "consultar_proveedor_alternativo",
                "revisar_stock_en_sucursales",
                "ajustar_stock_minimo"
            ]
        }

    return None

14.2 Stock inmovilizado

Recomendaciones:

Liquidar productos sin rotación.
Redistribuir entre sucursales.
Bloquear nuevas compras de productos lentos.
Armar promoción controlada por margen.
Revisar causa de baja rotación.

Código:

def recomendar_stock_inmovilizado(stock_inmovilizado_ratio):
    if stock_inmovilizado_ratio > 0.20:
        return {
            "recommendation": "plan_reduccion_stock_inmovilizado",
            "responsible": "Stock / Comercial",
            "consulted": ["Finanzas"],
            "actions": [
                "listar_productos_sin_movimiento",
                "bloquear_compras_productos_lentos",
                "definir_promocion_con_margen_minimo",
                "redistribuir_stock_por_sucursal"
            ]
        }

    return None

14.3 Stock mal compuesto

Recomendaciones:

Separar productos críticos, lentos y de oportunidad.
Redefinir mínimos y máximos.
Revisar compras por rotación real.
Bloquear reposición de productos lentos.
Activar compras de productos clave.

Código:

def recomendar_stock_mal_compuesto(stock_total_var, rotacion_var, quiebres):
    if stock_total_var > 0.10 and rotacion_var < -0.10 and quiebres > 0:
        return {
            "recommendation": "redefinir_mix_stock",
            "responsible": "Stock",
            "consulted": ["Compras", "Comercial", "Finanzas"],
            "actions": [
                "clasificar_productos_abc",
                "definir_minimos_por_rotacion",
                "priorizar_productos_clave",
                "reducir_lentos"
            ]
        }

    return None

15. Recomendaciones de compras y proveedores

15.1 Proveedor crítico

Recomendaciones:

Buscar proveedor alternativo.
Homologar segundo proveedor.
Renegociar plazo y condiciones.
Revisar dependencia por producto.
Aumentar stock de seguridad temporal.

Código:

def recomendar_proveedor_critico(cumplimiento, dependencia, alternativa):
    if cumplimiento < 0.75 and dependencia > 0.40:
        acciones = [
            "renegociar_plazo_y_cumplimiento",
            "revisar_productos_criticos_asociados"
        ]

        if not alternativa:
            acciones.append("homologar_proveedor_alternativo")

        return {
            "recommendation": "mitigar_riesgo_proveedor_critico",
            "responsible": "Compras",
            "consulted": ["Stock", "Dirección"],
            "actions": acciones
        }

    return None

15.2 Compras reactivas

Recomendaciones:

Implementar planificación de reposición.
Definir mínimos y máximos por producto.
Cruzar rotación, plazo proveedor y stock actual.
Reducir compras urgentes.
Crear tablero de compras próximas.

Código:

def recomendar_compras_reactivas(compras_urgentes_ratio):
    if compras_urgentes_ratio > 0.20:
        return {
            "recommendation": "crear_plan_reposicion",
            "responsible": "Compras",
            "consulted": ["Stock"],
            "actions": [
                "calcular_minimos_maximos",
                "generar_alertas_reposicion",
                "revisar_compras_urgentes_recurrentes",
                "armar_calendario_compras"
            ]
        }

    return None

16. Recomendaciones de RRHH e incentivos

16.1 Comisión desalineada

Recomendaciones:

Recalcular comisión considerando margen.
Condicionar parte de la comisión al cobro.
Simular escenarios antes de cambiar fórmula.
Separar comisión por producto, cliente o tipo de operación.
Evitar castigar demasiado al vendedor si el margen depende de costos externos.

Código:

def recomendar_comision_desalineada(comision_var, margen_var, cobranza_var):
    if comision_var > 0 and (margen_var < 0 or cobranza_var > 0):
        return {
            "recommendation": "redisenar_comision_con_simulacion",
            "responsible": "Comercial / RRHH",
            "consulted": ["Finanzas", "Dirección"],
            "requires_approval": True,
            "actions": [
                "simular_comision_por_margen",
                "incluir_factor_cobranza",
                "definir_piso_de_margen",
                "validar_impacto_en_motivacion"
            ]
        }

    return None

Regla prudente:

FARO puede recomendar revisar comisiones. No debe cambiar comisiones automáticamente. Ahí se toca conducta humana, y si se hace mal, se compra un problema nuevo con factura mensual.


16.2 Productividad baja

Recomendaciones:

Medir productividad por rol.
Comparar carga real vs resultado.
Detectar responsables saturados.
Reasignar tareas.
Revisar capacitación o proceso.

Código:

def recomendar_productividad_baja(productividad, objetivo):
    if productividad < objetivo:
        return {
            "recommendation": "analizar_productividad_por_rol",
            "responsible": "RRHH / Responsable de área",
            "actions": [
                "comparar_productividad_por_rol",
                "revisar_carga_de_trabajo",
                "detectar_cuellos_de_botella",
                "definir_plan_mejora"
            ]
        }

    return None

17. Recomendaciones de operaciones y workflow

17.1 Dirección sin ejecución

Recomendaciones:

Toda decisión debe generar acción.
Toda acción debe tener responsable.
Toda acción debe tener vencimiento.
Toda acción debe tener KPI afectado.
Acciones críticas vencidas deben escalar automáticamente.
No cerrar acciones sin evidencia.

Código:

def recomendar_direccion_sin_ejecucion(ratio_acciones, ratio_vencidas):
    if ratio_acciones < 0.70 or ratio_vencidas > 0.20:
        return {
            "recommendation": "activar_workflow_obligatorio",
            "responsible": "Gerencia General",
            "actions": [
                "obligar_responsable_por_accion",
                "definir_vencimiento",
                "asociar_kpi_o_tension",
                "escalar_acciones_criticas_vencidas",
                "cerrar_solo_con_evidencia"
            ],
            "requires_approval": False
        }

    return None

17.2 Acción crítica vencida

Recomendaciones:

Escalar al superior.
Pedir estado inmediato.
Reasignar si no hay avance.
Actualizar vencimiento con motivo.
Impactar FARO Score si persiste.

Código:

def recomendar_accion_critica_vencida(accion):
    if accion["prioridad"] == "critica" and accion["dias_vencida"] >= 1:
        return {
            "recommendation": "escalar_accion_critica",
            "responsible": accion["responsable"],
            "escalate_to": "Gerencia General",
            "due_hours": 24,
            "actions": [
                "solicitar_estado_inmediato",
                "definir_plan_cierre",
                "reasignar_si_no_hay_avance"
            ]
        }

    return None

18. Recomendaciones de calidad de datos

18.1 Margen no confiable

Recomendaciones:

Completar costos faltantes.
Normalizar productos.
Validar tabla maestra de productos.
Recalcular margen.
Recién después decidir política comercial.

Código:

def recomendar_mejorar_datos_margen(score_calidad_costos):
    if score_calidad_costos < 0.70:
        return {
            "recommendation": "corregir_datos_para_margen",
            "responsible": "Data Owner / Comercial / Compras",
            "actions": [
                "completar_costos_faltantes",
                "normalizar_productos",
                "validar_maestro_productos",
                "recalcular_margen"
            ],
            "blocks_sensitive_decision": True
        }

    return None

18.2 Stock no confiable

Recomendaciones:

Actualizar inventario.
Conciliar físico vs sistema.
Identificar productos con diferencias.
Bloquear diagnóstico fuerte de stock hasta validar.

Código:

def recomendar_validar_stock(score_calidad_stock):
    if score_calidad_stock < 0.70:
        return {
            "recommendation": "validar_stock_antes_de_decidir",
            "responsible": "Stock",
            "actions": [
                "conciliar_stock_fisico_sistema",
                "actualizar_movimientos_pendientes",
                "reprocesar_kpis_stock"
            ]
        }

    return None

19. Recomendaciones por industria

19.1 Construcción / insumos

Recomendaciones típicas:

Auditar descuentos por vendedor y producto.
Revisar comisión por margen y cobranza.
Priorizar stock crítico de cemento, hierro y productos de alta rotación.
Evaluar canjes con modelo financiero.
Crear política de referidos.
Separar ventas a obra, mostrador y cuenta corriente.
Definir mínimos por sucursal y familia.

19.2 Retail

Revisar promociones por margen incremental.
Redistribuir stock entre sucursales.
Liquidar productos lentos con margen mínimo.
Priorizar productos estrella sin quiebre.
Analizar ticket promedio por sucursal.

19.3 Salud

Redistribuir agenda de profesionales saturados.
Revisar costo por prestación.
Reducir tiempos de espera.
Priorizar insumos críticos.
Analizar rentabilidad por servicio.

19.4 Logística

Rediseñar rutas no rentables.
Renegociar tarifas con clientes deficitarios.
Controlar combustible por kilómetro.
Aumentar mantenimiento preventivo.
Revisar utilización de flota.

19.5 Hotelería

Recalibrar tarifas si ocupación alta y ADR bajo.
Reducir dependencia de canales caros.
Priorizar mantenimiento en habitaciones con reclamos.
Analizar RevPAR por canal.

19.6 Shopping / real estate

Revisar locatarios morosos clave.
Renegociar renta o condiciones.
Analizar mix comercial por zona.
Activar plan para locales vacantes.
Cruzar tráfico con ventas de locatarios.

20. Recomendaciones sensibles

Hay recomendaciones que siempre deben requerir aprobación humana.

Recomendación Requiere aprobación
Bloquear cliente
Cambiar fórmula de comisión
Modificar política de crédito
Aprobar o rechazar canje
Despedir, sancionar o modificar rol
Cambiar proveedor crítico Sí, según impacto
Suspender compras Sí, si afecta operación
Reestructurar área
Cambiar precios masivamente

Regla:

FARO recomienda. Dirección aprueba cuando el impacto es sensible, humano, legal, financiero o estratégico.


21. Nivel de automatización de recomendaciones

Nivel Qué permite Ejemplo
Solo lectura Mostrar recomendación. Observar tendencia.
Crear tarea sugerida Usuario aprueba creación. Revisar descuento.
Crear tarea automática FARO crea acción. Validar dato faltante.
Escalar automático FARO escala por regla. Acción crítica vencida.
Bloqueo preventivo FARO bloquea flujo técnico. KPI no confiable.
Decisión humana obligatoria FARO no ejecuta. Bloquear cliente.

Código:

def nivel_automatizacion(tipo_recomendacion, sensibilidad):
    if sensibilidad == "alta":
        return "decision_humana_obligatoria"

    if tipo_recomendacion == "validacion_datos":
        return "crear_tarea_automatica"

    if tipo_recomendacion == "accion_vencida":
        return "escalar_automatico"

    if tipo_recomendacion == "operativa":
        return "crear_tarea_sugerida"

    return "solo_lectura"

22. Recomendación y responsable

Cada recomendación debe tener RACI.

Ejemplo:

Recomendación R A C I
Auditar descuentos Gerente Comercial Dirección Finanzas Administración
Priorizar cobranza Finanzas Dirección Comercial Administración
Reponer producto crítico Compras Dirección Stock / Comercial Sucursal
Rediseñar comisión Comercial / RRHH Dirección Finanzas Vendedores
Validar costos Data Owner / Compras Dirección Comercial Finanzas
Evaluar canje Finanzas / Dirección Directorio Legal / Comercial Administración

23. Recomendación y vencimiento

Prioridad Vencimiento recomendado
P1 24 horas o menos
P2 48 a 72 horas
P3 7 días
P4 15 a 30 días
P5 Observación

Código:

def vencimiento_recomendacion(priority_level):
    if priority_level == "P1":
        return 24
    if priority_level == "P2":
        return 72
    if priority_level == "P3":
        return 7 * 24
    if priority_level == "P4":
        return 30 * 24
    return None

24. Recomendación e impacto esperado

Una recomendación debe estimar qué busca mejorar.

Ejemplo:

{
  "recommendation": "auditar_descuentos_altos",
  "expected_impact": {
    "discount_rate": "-3 a -5 puntos",
    "gross_margin": "+2 a +4 puntos",
    "cash_risk": "reducir",
    "score": "+2 a +5 puntos"
  }
}

Código conceptual:

def estimar_impacto_recomendacion(tipo):
    impactos = {
        "auditar_descuentos_altos": {
            "gross_margin": "+2 a +4 puntos",
            "discount_rate": "-3 a -5 puntos"
        },
        "priorizar_cobranza": {
            "cash": "mejora esperada",
            "days_sales_outstanding": "-5 a -10 dias"
        },
        "reponer_stock_critico": {
            "stockout_risk": "reduce",
            "lost_sales": "reduce"
        }
    }

    return impactos.get(tipo, {})

25. Recomendación y riesgo de no actuar

Toda recomendación importante debe explicar el costo de no hacer nada.

Ejemplo:

Si no se auditan descuentos:
el margen puede seguir deteriorándose y la empresa puede crecer sin rentabilidad.

Si no se repone stock crítico:
pueden perderse ventas y clientes por falta de disponibilidad.

Si no se corrigen costos:
FARO seguirá calculando margen con baja confianza.

Código:

def riesgo_no_actuar(recommendation_code):
    riesgos = {
        "auditar_descuentos_altos": "continuar deteriorando margen",
        "priorizar_cobranza": "aumentar tension de caja",
        "reponer_stock_critico": "perder ventas por quiebre",
        "validar_costos": "decidir con margen no confiable",
        "redisenar_comision": "seguir premiando ventas no rentables"
    }

    return riesgos.get(recommendation_code, "riesgo_no_definido")

26. Recomendación y FARO Score

Las recomendaciones pueden tener impacto esperado en FARO Score.

Ejemplo:

Cerrar acción P1 en plazo: +3 puntos.
Resolver tensión de stock crítico: +4 puntos.
Reducir descuento y mejorar margen: +5 puntos.
Corregir calidad de datos crítica: +2 puntos de confianza del Score.

Código:

def score_impacto_recomendacion(recommendation_code):
    mapa = {
        "auditar_descuentos_altos": 4,
        "priorizar_cobranza": 5,
        "reponer_stock_critico": 4,
        "validar_costos": 2,
        "activar_workflow_obligatorio": 5,
        "redisenar_comision": 6
    }

    return mapa.get(recommendation_code, 0)

27. Recomendación y simulación

Algunas recomendaciones deben simularse antes de ejecutar.

Ejemplos:

Cambiar fórmula de comisión.
Modificar política de crédito.
Aceptar canje.
Subir precios.
Cambiar proveedor crítico.
Reducir stock de una familia.

Regla:

Si la recomendación afecta margen, conducta comercial, caja o relaciones sensibles, conviene simular antes de ejecutar.

Código conceptual:

def requiere_simulacion(recommendation_code):
    recomendaciones_con_simulacion = {
        "redisenar_comision",
        "cambiar_politica_credito",
        "evaluar_canje",
        "subir_precios_masivo",
        "cambiar_proveedor_critico"
    }

    return recommendation_code in recomendaciones_con_simulacion

28. Recomendaciones conflictivas

A veces dos recomendaciones chocan.

Ejemplo:

Comercial recomienda vender más.
Finanzas recomienda restringir crédito.
Stock recomienda no vender producto crítico sin reposición.

FARO debe detectar conflicto.

Código:

def detectar_conflicto_recomendaciones(recomendaciones):
    codigos = set(r["recommendation_code"] for r in recomendaciones)

    conflictos = []

    if "aumentar_ventas_credito" in codigos and "restringir_credito" in codigos:
        conflictos.append("conflicto_comercial_financiero")

    if "liquidar_stock" in codigos and "proteger_margen" in codigos:
        conflictos.append("conflicto_stock_margen")

    return conflictos

Salida FARO:

Hay conflicto entre crecer ventas a crédito y proteger caja. Dirección debe definir prioridad: volumen o liquidez.

Esto es muy valioso, porque las empresas no fallan solo por falta de datos; fallan por objetivos cruzados.


29. Motor de recomendaciones FARO

Flujo recomendado:

Diagnóstico priorizado
→ validar confianza
→ identificar tensión
→ buscar recomendaciones aplicables
→ filtrar por industria
→ filtrar por sensibilidad
→ estimar impacto
→ definir responsable
→ definir vencimiento
→ decidir automatización
→ generar recomendación
→ convertir en acción si corresponde

Código conceptual:

def motor_recomendaciones(diagnostico, biblioteca_recomendaciones):
    recomendaciones = []

    for rec in biblioteca_recomendaciones:
        if diagnostico["confidence"] < rec.get("confidence_min", 0.70):
            continue

        if diagnostico["diagnosis_code"] not in rec.get("applicable_diagnoses", []):
            continue

        if diagnostico["industry"] not in rec.get("industry_scope", ["all"]):
            continue

        recomendaciones.append({
            "recommendation_code": rec["recommendation_code"],
            "title": rec["title"],
            "priority": diagnostico["priority_level"],
            "responsible": rec["responsible_role"],
            "due_hours": vencimiento_recomendacion(diagnostico["priority_level"]),
            "requires_approval": rec["requires_approval"],
            "automation_level": rec["automation_level"],
            "expected_impact": rec.get("expected_impact")
        })

    return recomendaciones

30. Tabla SQL de biblioteca de recomendaciones

CREATE TABLE recommendation_library (
    recommendation_code TEXT PRIMARY KEY,
    title TEXT NOT NULL,
    description TEXT,
    recommendation_type TEXT,
    applicable_diagnoses JSONB,
    applicable_tensions JSONB,
    applicable_alerts JSONB,
    related_kpis JSONB,
    industry_scope JSONB,
    confidence_min NUMERIC DEFAULT 0.70,
    default_priority TEXT,
    responsible_role TEXT,
    consulted_roles JSONB,
    suggested_due_hours INTEGER,
    expected_impact JSONB,
    risk_of_inaction TEXT,
    requires_approval BOOLEAN DEFAULT false,
    approver_role TEXT,
    automation_level TEXT,
    score_impact_expected NUMERIC,
    active BOOLEAN DEFAULT true,
    version TEXT DEFAULT '1.0',
    created_at TIMESTAMP DEFAULT now(),
    updated_at TIMESTAMP DEFAULT now()
);

31. Tabla SQL de recomendaciones generadas

CREATE TABLE recommendation_events (
    recommendation_event_id TEXT PRIMARY KEY,
    recommendation_code TEXT NOT NULL,
    company_id TEXT,
    branch_id TEXT,
    area_id TEXT,
    responsible_id TEXT,
    origin_type TEXT,
    origin_id TEXT,
    diagnosis_id TEXT,
    tension_event_id TEXT,
    alert_id TEXT,
    priority_level TEXT,
    confidence NUMERIC,
    title TEXT,
    recommendation_text TEXT,
    expected_impact JSONB,
    risk_of_inaction TEXT,
    requires_approval BOOLEAN,
    approver_id TEXT,
    automation_level TEXT,
    status TEXT DEFAULT 'suggested',
    created_at TIMESTAMP DEFAULT now(),
    accepted_at TIMESTAMP,
    rejected_at TIMESTAMP,
    converted_to_action_at TIMESTAMP
);

32. Tabla SQL de feedback de recomendaciones

CREATE TABLE recommendation_feedback (
    feedback_id TEXT PRIMARY KEY,
    recommendation_event_id TEXT NOT NULL,
    feedback_type TEXT NOT NULL,
    result_description TEXT,
    impact_measured JSONB,
    accepted_by TEXT,
    rejected_reason TEXT,
    created_at TIMESTAMP DEFAULT now()
);

Valores posibles:

accepted
rejected
converted_to_action
effective
not_effective
partially_effective
needs_adjustment

33. Estados de una recomendación

Estado Significado
Suggested FARO la sugirió.
Reviewed Responsable la revisó.
Accepted Fue aceptada.
Rejected Fue rechazada con motivo.
Needs validation Requiere validar datos.
Needs approval Requiere aprobación superior.
Converted to action Pasó a tarea concreta.
In progress Ya se está ejecutando.
Measured Se midió resultado.
Closed Ciclo cerrado.

34. Ejemplo completo: recomendación comercial

Diagnóstico

Crecimiento no rentable.

Prioridad

P2 — Alta.

Confianza

0.84 — alta.

Recomendación FARO

Auditar operaciones con descuento mayor al 8%, revisar margen por vendedor y producto, y recalibrar comisión para incluir margen y cobranza.

Responsable

R: Gerente Comercial
A: Dirección
C: Finanzas, RRHH
I: Administración

Vencimiento

72 horas para auditoría inicial.
15 días para propuesta de ajuste de comisión.

Impacto esperado

Reducir descuento promedio.
Recuperar margen.
Mejorar calidad de venta.
Evitar comisión sobre operaciones no rentables.

35. Ejemplo completo: recomendación de stock

Diagnóstico

Riesgo futuro de stock crítico.

Datos

Stock actual: 180
Stock mínimo: 150
Venta diaria: 45
Plazo proveedor: 7 días
Cobertura: 4 días

Recomendación

Activar reposición preventiva y consultar proveedor alternativo, porque la cobertura actual no alcanza para cubrir el plazo de reposición.

Responsable

Compras.

Plazo

48 horas.

Impacto esperado

Evitar quiebre de producto clave.
Reducir ventas perdidas.
Proteger satisfacción del cliente.

36. Ejemplo completo: recomendación financiera

Diagnóstico

Caja débil con ventas altas.

Recomendación

Priorizar cobranza de clientes con mayor deuda vencida, revisar pagos no críticos de la semana y actualizar flujo de caja a 7 y 30 días.

Responsable

Finanzas.

Aprobador

Dirección.

Plazo

24 horas.

Impacto esperado

Mejorar liquidez inmediata.
Reducir riesgo de incumplimiento.
Alinear ventas con caja.

37. Ejemplo completo: recomendación de calidad de datos

Diagnóstico

Margen no confiable por costos incompletos.

Recomendación

Completar costos unitarios faltantes, normalizar productos sin maestro y recalcular margen antes de tomar decisiones comerciales.

Responsable

Data Owner + Compras + Comercial.

Plazo

7 días.

Impacto esperado

Aumentar confianza del KPI margen.
Mejorar calidad del diagnóstico.
Evitar decisiones comerciales con información débil.

38. Recomendación explicada para un socio técnico

Para convencer técnicamente, hay que explicarlo así:

La recomendación no nace de una frase libre de IA.
Nace de una cadena estructurada:

1. KPIs calculados.
2. Señales detectadas.
3. Reglas activadas.
4. Alertas generadas.
5. Tensiones detectadas.
6. Diagnóstico ejecutivo.
7. Confianza del diagnóstico.
8. Priorización.
9. Biblioteca de recomendaciones.
10. Filtro por industria, sensibilidad y aprobación.
11. Conversión a acción.

La IA puede ayudar a redactar mejor, pero no debe inventar la recomendación.

Arquitectura correcta:

Motor FARO decide la lógica.
IA redacta la explicación.
Humano aprueba lo sensible.
Workflow ejecuta.
Score mide resultado.

39. Prompt interno para IA explicativa

Actúa como analista ejecutivo FARO.

Con base únicamente en el payload estructurado recibido, redacta una recomendación ejecutiva clara, concreta y accionable.

No inventes causas, datos ni acciones.
Distingue hechos de hipótesis.
Incluye:
1. Qué recomienda FARO.
2. Por qué lo recomienda.
3. Qué impacto busca.
4. Responsable sugerido.
5. Plazo sugerido.
6. Si requiere aprobación.
7. Nivel de confianza.

Payload:
{recommendation_payload}

Regla:

La IA redacta la recomendación; la biblioteca FARO define qué recomendación corresponde.


40. Ejemplo de payload de recomendación

{
  "diagnosis": "crecimiento_no_rentable",
  "priority": "P2",
  "confidence": 0.84,
  "industry": "construction_supplies",
  "kpis": {
    "sales_variation": 0.18,
    "margin_variation": -0.07,
    "discount_rate": 0.12,
    "days_to_collect": 43
  },
  "recommended_actions": [
    "auditar_descuentos_altos",
    "revisar_comision",
    "priorizar_cobranza"
  ],
  "responsible": "Gerente Comercial",
  "consulted": ["Finanzas", "RRHH"],
  "due_hours": 72
}

Salida esperada:

FARO recomienda auditar las operaciones con descuento mayor al 8%, revisar la fórmula de comisión y priorizar la cobranza de clientes grandes. La recomendación se basa en una tensión de crecimiento no rentable: las ventas crecieron 18%, pero el margen cayó 7 puntos, el descuento promedio llegó a 12% y los días de cobranza subieron a 43. Responsable sugerido: Gerente Comercial. Plazo inicial: 72 horas. Confianza: alta.

41. Recomendaciones y aprendizaje

FARO debe medir si la recomendación funcionó.

Debe registrar:

recomendación emitida,
si fue aceptada,
si se convirtió en acción,
si se ejecutó,
cuánto tardó,
qué KPI cambió,
si la tensión se resolvió,
si el score mejoró,
si el usuario la rechazó y por qué.

Ejemplo:

{
  "recommendation": "auditar_descuentos_altos",
  "accepted": true,
  "converted_to_action": true,
  "result_30_days": {
    "discount_rate": "-4 puntos",
    "gross_margin": "+3 puntos"
  },
  "learning": "La recomendación fue efectiva para este contexto."
}

Esto alimenta el Anexo 36 — Aprendizaje.


42. Errores comunes en recomendaciones

Error Consecuencia
Recomendar “revisar” sin decir qué No se ejecuta nada.
Recomendar sin responsable Nadie responde.
Recomendar sin plazo Se posterga.
Recomendar sin confianza Se actúa con falsa seguridad.
Recomendar sin prioridad Todo parece igual de importante.
Recomendar acciones sensibles automáticamente Riesgo humano, legal o financiero.
Recomendar sin medir resultado No hay aprendizaje.
Recomendar igual para todas las industrias El sistema parece genérico.
Recomendar con IA libre sin reglas Bonito, pero peligroso.

43. Testing de recomendaciones

Test recomendación comercial

def test_recomendar_crecimiento_no_rentable():
    ctx = {
        "descuento_promedio": 0.12,
        "margen_var": -0.07,
        "dias_cobranza_var": 10,
        "comision_var": 0.15
    }

    recomendaciones = recomendar_crecimiento_no_rentable(ctx)

    assert "auditar_descuentos_altos" in recomendaciones
    assert "priorizar_cobranza_clientes_grandes" in recomendaciones
    assert "revisar_formula_comision_por_margen_y_cobranza" in recomendaciones

Test no recomendar con baja confianza

def test_no_recomendar_accion_fuerte_con_baja_confianza():
    confianza = 0.48

    tipo = tipo_recomendacion_por_confianza(confianza)

    assert tipo == "mejorar_datos"

Test recomendación sensible requiere aprobación

def test_comision_requiere_aprobacion():
    rec = recomendar_comision_desalineada(
        comision_var=0.15,
        margen_var=-0.07,
        cobranza_var=10
    )

    assert rec["requires_approval"] is True
    assert rec["responsible"] == "Comercial / RRHH"

44. Riesgos si no existe esta capa

Riesgo Consecuencia
FARO diagnostica, pero no guía El usuario queda solo.
Alertas sin acción El sistema informa, pero no conduce.
Recomendaciones genéricas Baja adopción.
Acciones mal sugeridas Se pierde confianza.
Automatización imprudente Riesgo operativo o humano.
Sin medición posterior FARO no aprende.
Sin aprobación en temas sensibles Riesgo legal, financiero o cultural.
Sin personalización por industria El sistema parece un dashboard más.

45. Output final del Anexo 26

Al finalizar este anexo, FARO debe tener definido:

1. Biblioteca inicial de recomendaciones.
2. Tipos de recomendaciones.
3. Estructura estándar de recomendación.
4. Recomendaciones por diagnóstico.
5. Recomendaciones por tensión.
6. Recomendaciones por alerta.
7. Recomendaciones por área.
8. Recomendaciones por industria.
9. Recomendaciones según confianza.
10. Recomendaciones según prioridad.
11. Recomendaciones sensibles.
12. Niveles de automatización.
13. Responsable y RACI por recomendación.
14. Vencimientos sugeridos.
15. Impacto esperado.
16. Riesgo de no actuar.
17. Relación recomendación → acción.
18. Relación recomendación → simulación.
19. Relación recomendación → FARO Score.
20. Tablas SQL de recomendaciones.
21. Motor de recomendaciones.
22. Feedback de recomendaciones.
23. Testing de recomendaciones.
24. Uso controlado de IA explicativa.
25. Aprendizaje por efectividad de recomendaciones.

46. Conexión con otros anexos

Próximo anexo Qué recibe desde Anexo 26
Anexo 17 — Biblioteca de KPIs KPIs que sustentan recomendaciones.
Anexo 19 — Señales FARO Señales que anticipan acciones posibles.
Anexo 20 — Reglas de negocio Condiciones que activan recomendaciones.
Anexo 21 — Alertas FARO Alertas que originan recomendaciones.
Anexo 22 — Biblioteca de tensiones Tensiones que determinan qué conviene hacer.
Anexo 23 — Diagnóstico ejecutivo Diagnósticos que se traducen en recomendaciones.
Anexo 24 — Confianza del diagnóstico Nivel de seguridad para recomendar.
Anexo 25 — Priorización ejecutiva Orden y fuerza de cada recomendación.
Anexo 27 — Simulación de escenarios Validación previa de recomendaciones sensibles.
Anexo 28 — FARO Action Guide Traducción de recomendaciones en guía operativa.
Anexo 29 — Biblioteca de acciones Acciones concretas derivadas de recomendaciones.
Anexo 31 — Workflow y escalamiento Ejecución, seguimiento y escalamiento.
Anexo 35 — FARO Score Impacto esperado y real de recomendaciones.
Anexo 36 — Aprendizaje Medición de efectividad para mejorar futuras recomendaciones.
Anexo 37Recalibración Ajuste de recomendaciones según resultados reales.

Las Recomendaciones FARO son la capa que transforma diagnósticos priorizados en sugerencias concretas de decisión o acción. Cada recomendación debe indicar qué hacer, por qué hacerlo, quién responde, qué plazo tiene, qué impacto se espera, qué confianza tiene, si requiere aprobación y cómo puede afectar el FARO Score.

Versión 1.0 · Última revisión: 2026-05-28 Anexo 26 de 40 · Fase 7.2