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

Anexo 19 · Señales FARO

Etapa: Fase 5.4
DECK PARCIAL ACTIVO PROPIO

ANEXO 19

Señales FARO

Este anexo corresponde a la Fase 5 — Medición, etapa “Señales FARO”. Es la capa que toma los KPIs ya calculados y evaluados contra objetivos/umbrales, y detecta movimientos relevantes, desvíos, tendencias, anomalías o combinaciones iniciales que pueden transformarse luego en reglas, alertas, tensiones, recomendaciones y acciones.


1. Objetivo del anexo

El objetivo de las Señales FARO es identificar cuándo un KPI o conjunto de KPIs empieza a mostrar un comportamiento relevante.

La pregunta central es:

¿Qué movimiento del negocio merece atención antes de convertirse en alerta o tensión?

Ejemplo:

KPI:
Margen bruto = 21%

Objetivo:
28%

Umbral:
Amarillo entre 20% y 25%

Señal FARO:
Margen bruto bajo objetivo y con caída de 7 puntos respecto al mes anterior.

La señal todavía no necesariamente exige una acción inmediata. Pero sí le dice a FARO:

“Acá está pasando algo. Prestá atención.”

2. Tesis del Anexo 19

La tesis es:

FARO Connect no debe esperar a que el problema explote. Debe detectar señales tempranas.

Un dashboard tradicional muestra el resultado.

FARO debe detectar el movimiento.

Ejemplo:

Dashboard:
Stock actual: 320 unidades.

FARO:
Stock actual todavía está por encima del mínimo, pero la velocidad de venta subió 40% y los días de cobertura caen por debajo del plazo proveedor en 5 días. Señal temprana de stock crítico.

Ahí está la diferencia.

FARO no mira solamente el número. Mira:

valor actual
objetivo
umbral
variación
tendencia
velocidad del cambio
recurrencia
relación con otros KPIs
calidad del dato
impacto potencial

3. Diferencia entre KPI, señal, alerta y tensión

Concepto Qué es Ejemplo
KPI Indicador calculado. Margen bruto 21%.
Señal Movimiento relevante del KPI. Margen cayó 7 puntos.
Regla Condición lógica que evalúa la señal. Si margen < 22% y descuento > 10%.
Alerta Aviso formal de riesgo. Margen crítico con descuento alto.
Tensión Contradicción entre variables. Ventas suben, margen baja y cobranza empeora.
Acción Tarea concreta derivada. Auditar descuentos mayores al 8%.

La señal es el primer aviso. La alerta es el aviso formal. La tensión es la lectura sistémica.


4. Qué es una señal FARO

Una señal FARO es un evento analítico que indica que algo cambió, se desvió, aceleró, empeoró, mejoró o se volvió incoherente con el comportamiento esperado.

Ejemplos:

Ventas suben 18%.
Margen cae 7 puntos.
Días de cobranza aumentan 10 días.
Stock crítico sube de 4% a 13%.
Acciones vencidas superan 20%.
Proveedor baja cumplimiento de 92% a 70%.
Descuento promedio duplica el objetivo.

Cada señal debe responder:

Qué cambió.
Cuánto cambió.
Contra qué se compara.
Qué área afecta.
Qué KPI toca.
Qué tan confiable es.
Qué puede significar.
Qué regla puede activar.
Qué tensión podría anticipar.

5. Tipos de señales FARO

FARO debería manejar varios tipos de señales.

Tipo de señal Qué detecta Ejemplo
Señal de desvío KPI fuera de objetivo. Margen bajo objetivo.
Señal de umbral KPI cruza verde/amarillo/rojo. Stock crítico pasa a rojo.
Señal de variación Cambio fuerte entre períodos. Gastos suben 18%.
Señal de tendencia Movimiento sostenido. Cobranza empeora 3 meses seguidos.
Señal de aceleración Cambio cada vez más rápido. Mora crece cada semana más.
Señal de anomalía Valor raro frente al histórico. Descuento de 40% en venta normal.
Señal de recurrencia Problema repetido. Tarea vencida por tercera vez.
Señal cruzada Dos o más KPIs se mueven juntos. Ventas suben y margen baja.
Señal de calidad de dato Dato poco confiable. Costos incompletos en 25% de ventas.
Señal predictiva Riesgo futuro probable. Stock cubrirá menos días que plazo proveedor.

6. Estructura estándar de una señal FARO

Cada señal debería guardarse como un evento estructurado.

{
  "signal_id": "SIG_2026_001",
  "signal_code": "gross_margin_drop",
  "kpi_code": "gross_margin_rate",
  "area": "Comercial",
  "current_value": 0.21,
  "previous_value": 0.28,
  "variation": -0.07,
  "target": 0.28,
  "status": "amarillo",
  "severity": "alta",
  "confidence": 0.84,
  "detected_at": "2026-05-27T10:00:00",
  "description": "Margen bruto cayó 7 puntos contra el período anterior.",
  "possible_alerts": [
    "margin_below_threshold"
  ],
  "possible_tensions": [
    "margen_deteriorado",
    "crecimiento_no_rentable"
  ]
}

7. Biblioteca inicial de señales FARO

Una base inicial seria debería tener:

100 a 200 señales base

Escalable a:

500+ señales por industria, módulo, KPI, proceso y combinación de variables.

Distribución sugerida:

Familia de señales Cantidad inicial
Comerciales 25-40
Financieras 25-40
Stock / Compras 25-40
RRHH 15-30
Operaciones 20-40
Dirección / Workflow 20-40
Calidad de datos 15-30
Industria específica 40-100

8. Fórmula general de variación

Variación = valor_actual - valor_anterior
def variacion(valor_actual, valor_anterior):
    return valor_actual - valor_anterior

Ejemplo:

Margen anterior: 28%
Margen actual: 21%

Variación = -7 puntos

9. Fórmula de variación porcentual

Variación porcentual = (valor_actual - valor_anterior) / valor_anterior
def variacion_porcentual(valor_actual, valor_anterior):
    if valor_anterior == 0:
        return None
    return (valor_actual - valor_anterior) / valor_anterior

Ejemplo:

Ventas anteriores: $80M
Ventas actuales: $100M

Variación = +25%

10. Fórmula de desvío contra objetivo

Desvío = valor_actual - objetivo
def desvio_vs_objetivo(valor_actual, objetivo):
    return valor_actual - objetivo

Ejemplo:

Margen actual: 21%
Objetivo: 28%
Desvío: -7 puntos

11. Fórmula de severidad de señal

No todas las señales tienen la misma gravedad.

Severidad señal =
magnitud del desvío × 35%
+ impacto del KPI × 25%
+ velocidad del cambio × 15%
+ recurrencia × 15%
+ confianza del dato × 10%
def severidad_senal(magnitud, impacto_kpi, velocidad, recurrencia, confianza):
    score = (
        magnitud * 0.35 +
        impacto_kpi * 0.25 +
        velocidad * 0.15 +
        recurrencia * 0.15 +
        confianza * 0.10
    )

    if score >= 80:
        return "critica"
    elif score >= 60:
        return "alta"
    elif score >= 40:
        return "media"
    return "baja"

12. Señales comerciales

12.1 Señales base

Señal Qué detecta Posible lectura
Ventas suben fuerte Crecimiento mayor al esperado. Puede ser positivo o riesgoso.
Ventas caen Pérdida de volumen. Problema comercial o de demanda.
Margen cae Deterioro de rentabilidad. Descuentos, costos o mix débil.
Descuento sube Mayor presión comercial. Riesgo de margen.
Ticket promedio baja Menor valor por operación. Venta fragmentada o menor calidad.
Vendedor vende con margen bajo Venta de mala calidad. Incentivo o control débil.
Cliente concentra ventas Dependencia comercial. Riesgo por concentración.
Canal pierde margen Canal poco rentable. Revisar costo y política comercial.

12.2 Ejemplo: señal de margen deteriorado

def senal_margen_deteriorado(margen_actual, margen_anterior, caida_minima=0.05):
    caida = margen_actual - margen_anterior

    if caida <= -caida_minima:
        return {
            "senal": "margen_deteriorado",
            "variacion": caida,
            "severidad": "alta",
            "lectura": "El margen cayó de forma relevante contra el período anterior."
        }

    return None

12.3 Ejemplo: señal de descuento alto

def senal_descuento_alto(descuento_promedio, umbral=0.10):
    if descuento_promedio > umbral:
        return {
            "senal": "descuento_promedio_alto",
            "valor": descuento_promedio,
            "lectura": "El descuento promedio supera el umbral permitido.",
            "posible_tension": "margen_deteriorado"
        }

    return None

13. Señales financieras

13.1 Señales base

Señal Qué detecta Posible lectura
Días de cobranza suben Cobranza más lenta. Riesgo de caja.
Mora aumenta Cartera deteriorada. Cliente riesgoso.
Caja baja Liquidez insuficiente. Estrés financiero.
Gastos crecen más que ventas Estructura pesada. Rentabilidad en riesgo.
Cuentas por pagar vencidas Compromisos atrasados. Riesgo proveedor / financiero.
Flujo operativo negativo Sale más caja de la que entra. Riesgo operativo.
Cliente grande con mora Volumen con riesgo. Bloqueo o condición.

13.2 Ejemplo: señal de cobranza lenta

def senal_cobranza_lenta(dias_actual, dias_objetivo=30):
    if dias_actual > dias_objetivo:
        return {
            "senal": "cobranza_lenta",
            "dias_actual": dias_actual,
            "desvio": dias_actual - dias_objetivo,
            "posible_tension": "caja_debil_con_ventas_altas"
        }

    return None

13.3 Ejemplo: gastos creciendo más que ventas

def senal_gasto_crece_mas_que_ventas(ventas_var, gastos_var):
    if gastos_var > ventas_var:
        return {
            "senal": "gastos_crecen_mas_que_ventas",
            "ventas_variacion": ventas_var,
            "gastos_variacion": gastos_var,
            "posible_tension": "estructura_sobredimensionada"
        }

    return None

14. Señales de stock

14.1 Señales base

Señal Qué detecta Posible lectura
Stock bajo mínimo Producto crítico. Riesgo de quiebre.
Cobertura menor al plazo proveedor Reposición tardía. Stock crítico futuro.
Stock total sube y rotación baja Capital parado. Stock inmovilizado.
Quiebres repetidos Faltantes frecuentes. Mala reposición.
Diferencia físico-sistema Inventario poco confiable. Riesgo operativo.
Producto sin movimiento Stock muerto. Capital inmovilizado.

14.2 Señal de cobertura insuficiente

def senal_cobertura_insuficiente(stock_actual, venta_promedio_diaria, plazo_proveedor):
    if venta_promedio_diaria == 0:
        return None

    dias_cobertura = stock_actual / venta_promedio_diaria

    if dias_cobertura < plazo_proveedor:
        return {
            "senal": "cobertura_insuficiente",
            "dias_cobertura": dias_cobertura,
            "plazo_proveedor": plazo_proveedor,
            "posible_tension": "stock_critico_comercial"
        }

    return None

14.3 Señal de stock inmovilizado

def senal_stock_inmovilizado(dias_sin_movimiento, umbral_dias=90):
    if dias_sin_movimiento >= umbral_dias:
        return {
            "senal": "stock_inmovilizado",
            "dias_sin_movimiento": dias_sin_movimiento,
            "lectura": "Producto sin rotación relevante.",
            "posible_tension": "capital_inmovilizado"
        }

    return None

15. Señales de compras y proveedores

15.1 Señales base

Señal Qué detecta Posible lectura
Proveedor demora más Plazo de entrega sube. Riesgo de abastecimiento.
Cumplimiento proveedor cae Menor confiabilidad. Proveedor crítico.
Compras urgentes aumentan Mala planificación. Compras reactivas.
Costo de compra sube Margen futuro en riesgo. Actualizar precios.
Dependencia de proveedor aumenta Concentración de abastecimiento. Riesgo operativo.
Recepciones con diferencia Problemas de control. Auditoría de compras.

15.2 Señal de proveedor crítico

def senal_proveedor_critico(cumplimiento, dependencia):
    if cumplimiento < 0.75 and dependencia > 0.40:
        return {
            "senal": "proveedor_critico",
            "cumplimiento": cumplimiento,
            "dependencia": dependencia,
            "posible_tension": "proveedor_critico",
            "accion_sugerida": "buscar_proveedor_alternativo"
        }

    return None

16. Señales de RRHH

16.1 Señales base

Señal Qué detecta Posible lectura
Comisión sube más que margen Incentivo desalineado. Comisión mal diseñada.
Ausentismo sube Menor disponibilidad. Riesgo operativo.
Costo laboral sube más que ventas Estructura pesada. Costo laboral desalineado.
Productividad cae Menor resultado por persona. Productividad invisible.
Tareas vencidas por responsable Débil ejecución. Accountability débil.
Dependencia de persona clave Riesgo de continuidad. Proceso frágil.

16.2 Señal de comisión desalineada

def senal_comision_desalineada(comision_var, margen_var):
    if comision_var > 0 and margen_var < 0:
        return {
            "senal": "comision_desalineada",
            "lectura": "Las comisiones crecen mientras el margen se deteriora.",
            "posible_tension": "comision_comercial_desalineada"
        }

    return None

17. Señales de operaciones y workflow

17.1 Señales base

Señal Qué detecta Posible lectura
Tareas vencidas suben Ejecución débil. Dirección sin ejecución.
Tiempo de cierre aumenta Lento avance. Cuello de botella.
Reclamos reincidentes Problema no resuelto. Causa raíz pendiente.
SLA cae Promesa operativa incumplida. Sobrecarga operativa.
Acciones sin responsable Falta de accountability. Gestión débil.
Acciones cerradas sin impacto medido Cierre administrativo, no real. Aprendizaje débil.

17.2 Señal de dirección sin ejecución

def senal_direccion_sin_ejecucion(decisiones, acciones_creadas, acciones_vencidas):
    if decisiones == 0:
        return None

    ratio_acciones = acciones_creadas / decisiones
    ratio_vencidas = acciones_vencidas / acciones_creadas if acciones_creadas else 0

    if ratio_acciones < 0.70 or ratio_vencidas > 0.20:
        return {
            "senal": "direccion_sin_ejecucion",
            "ratio_acciones": ratio_acciones,
            "ratio_vencidas": ratio_vencidas,
            "posible_tension": "direccion_sin_ejecucion"
        }

    return None

18. Señales de calidad de datos

Las señales de calidad de datos son fundamentales porque FARO no debe actuar con falsa seguridad.

Señal Qué detecta Consecuencia
Campo crítico incompleto Falta costo, cliente, producto, responsable. Bloquea KPIs avanzados.
Duplicados altos Clientes, productos o proveedores repetidos. KPIs distorsionados.
Dato desactualizado Stock o costos viejos. Decisiones débiles.
Baja trazabilidad No se sabe origen. Baja confianza.
Inconsistencia entre fuentes ERP ≠ banco / stock físico ≠ sistema. Validación necesaria.
Carga atrasada Datos llegan tarde. Score desactualizado.

18.1 Señal de costo faltante

def senal_costo_faltante(registros_sin_costo, registros_totales):
    if registros_totales == 0:
        return None

    ratio = registros_sin_costo / registros_totales

    if ratio > 0.15:
        return {
            "senal": "costo_unitario_incompleto",
            "ratio": ratio,
            "impacto": "margen_no_confiable",
            "requiere_validacion": True
        }

    return None

19. Señales cruzadas

Las señales cruzadas son las más valiosas, porque empiezan a anticipar tensiones.

Ejemplo 1: crecimiento no rentable

Ventas suben
+ margen baja
+ descuentos suben
= señal cruzada de crecimiento riesgoso

Código:

def senal_cruzada_crecimiento_riesgoso(ventas_var, margen_var, descuento_var):
    condiciones = [
        ventas_var > 0.15,
        margen_var < -0.05,
        descuento_var > 0.04
    ]

    if sum(condiciones) >= 2:
        return {
            "senal": "crecimiento_riesgoso",
            "posible_tension": "crecimiento_no_rentable",
            "severidad": "alta"
        }

    return None

Ejemplo 2: stock mal compuesto

Stock total sube
+ rotación baja
+ quiebres aumentan
= señal cruzada de stock mal compuesto
def senal_cruzada_stock_mal_compuesto(stock_var, rotacion_var, quiebres):
    if stock_var > 0.10 and rotacion_var < -0.10 and quiebres > 0:
        return {
            "senal": "stock_mal_compuesto",
            "posible_tension": "stock_mal_compuesto",
            "severidad": "alta"
        }

    return None

Ejemplo 3: cliente grande riesgoso

Venta por cliente alta
+ margen bajo
+ mora alta
= señal cruzada de cliente riesgoso
def senal_cliente_grande_riesgoso(concentracion_cliente, margen_cliente, dias_mora):
    if concentracion_cliente > 0.15 and margen_cliente < 0.20 and dias_mora > 30:
        return {
            "senal": "cliente_grande_riesgoso",
            "posible_tension": "cliente_grande_riesgoso",
            "accion_sugerida": "revisar_credito_y_condiciones"
        }

    return None

20. Señales tempranas

Una señal temprana detecta riesgo antes de que el KPI esté en rojo.

Ejemplo:

Stock todavía no está bajo mínimo,
pero la velocidad de venta aumentó y el proveedor demora más que la cobertura disponible.

Código:

def senal_temprana_stock(stock_actual, stock_minimo, venta_promedio_diaria, plazo_proveedor):
    if venta_promedio_diaria == 0:
        return None

    dias_cobertura = stock_actual / venta_promedio_diaria

    if stock_actual > stock_minimo and dias_cobertura < plazo_proveedor:
        return {
            "senal": "stock_critico_futuro",
            "dias_cobertura": dias_cobertura,
            "lectura": "El stock aún no está bajo mínimo, pero no cubre el plazo de reposición.",
            "accion_sugerida": "anticipar_reposicion"
        }

    return None

Esto es muy FARO: no mirar solo el incendio, mirar el humo.


21. Señales de mejora

FARO también debe detectar mejoras. No todo es castigo corporativo.

Señal Qué detecta
Margen mejora Recuperación de rentabilidad.
Cobranza mejora Mejor flujo de caja.
Stock crítico baja Mejor abastecimiento.
Acciones vencidas bajan Mejor ejecución.
Calidad de datos sube Mayor confiabilidad.
Proveedor mejora cumplimiento Menor riesgo operativo.

Ejemplo:

def senal_mejora_margen(margen_actual, margen_anterior, mejora_minima=0.03):
    if margen_actual - margen_anterior >= mejora_minima:
        return {
            "senal": "margen_en_recuperacion",
            "lectura": "El margen muestra mejora relevante.",
            "impacto_score": "positivo"
        }

    return None

Esto sirve para que FARO también refuerce buenas prácticas.


22. Señales y frecuencia

No todas las señales deben evaluarse con la misma frecuencia.

Tipo de señal Frecuencia recomendada
Ventas diaria
Margen diaria / semanal
Caja diaria
Cobranza diaria / semanal
Stock crítico diaria / varias veces al día
Compras diaria / semanal
Gastos semanal / mensual
RRHH semanal / mensual
Workflow tiempo real / diaria
Calidad de datos por carga / diaria
FARO Score diaria / semanal

23. Estados de una señal

Estado Significado
Detectada FARO identificó la señal.
Validada La señal tiene datos suficientes.
Observada La señal existe, pero con baja confianza.
Convertida en alerta Cumplió regla formal.
Agrupada en tensión Se combinó con otras señales.
Descartada No era relevante o era ruido.
Cerrada La condición dejó de existir.
Recurrente Aparece repetidamente.

24. Tabla SQL de señales FARO

CREATE TABLE signal_events (
    signal_id TEXT PRIMARY KEY,
    signal_code TEXT NOT NULL,
    company_id TEXT,
    branch_id TEXT,
    area_id TEXT,
    kpi_code TEXT,
    signal_type TEXT,
    current_value NUMERIC,
    previous_value NUMERIC,
    target_value NUMERIC,
    variation NUMERIC,
    variation_rate NUMERIC,
    status TEXT,
    severity TEXT,
    confidence NUMERIC,
    description TEXT,
    related_alerts JSONB,
    related_tensions JSONB,
    source_kpi_result_id TEXT,
    detected_at TIMESTAMP DEFAULT now(),
    closed_at TIMESTAMP
);

25. Tabla de biblioteca de señales

CREATE TABLE signal_library (
    signal_code TEXT PRIMARY KEY,
    name TEXT NOT NULL,
    description TEXT,
    signal_type TEXT,
    module TEXT,
    area_id TEXT,
    kpi_code TEXT,
    detection_logic JSONB,
    default_severity TEXT,
    related_alerts JSONB,
    related_tensions JSONB,
    suggested_actions JSONB,
    industry_scope JSONB,
    active BOOLEAN DEFAULT true,
    created_at TIMESTAMP DEFAULT now(),
    updated_at TIMESTAMP DEFAULT now()
);

26. Ejemplo de señal en biblioteca

{
  "signal_code": "gross_margin_drop",
  "name": "Caída de margen bruto",
  "description": "Detecta una caída relevante del margen bruto frente al período anterior.",
  "signal_type": "variacion",
  "module": "Comercial",
  "area_id": "AREA_COMERCIAL",
  "kpi_code": "gross_margin_rate",
  "detection_logic": {
    "condition": "current_value - previous_value <= -0.05"
  },
  "default_severity": "alta",
  "related_alerts": [
    "margin_drop_alert"
  ],
  "related_tensions": [
    "margen_deteriorado",
    "crecimiento_no_rentable"
  ],
  "suggested_actions": [
    "auditar_descuentos",
    "revisar_costos",
    "analizar_mix_productos"
  ],
  "industry_scope": [
    "construction_supplies",
    "retail",
    "manufacturing"
  ]
}

27. Motor de detección de señales

Flujo recomendado:

KPI calculado
→ comparación con objetivo
→ comparación con histórico
→ cálculo de variación
→ detección de tendencia
→ evaluación de severidad
→ cálculo de confianza
→ registro de señal
→ posible regla / alerta / tensión

Código conceptual:

def detectar_senales(kpi_result, kpi_history, target_config):
    senales = []

    valor_actual = kpi_result["value"]
    valor_anterior = kpi_history[-1]["value"] if kpi_history else None
    objetivo = target_config.get("target_value")

    if objetivo is not None:
        desvio = valor_actual - objetivo
        if desvio < 0:
            senales.append({
                "senal": "desvio_bajo_objetivo",
                "desvio": desvio
            })

    if valor_anterior is not None:
        variacion = valor_actual - valor_anterior
        if abs(variacion) >= target_config.get("variation_threshold", 0):
            senales.append({
                "senal": "variacion_relevante",
                "variacion": variacion
            })

    return senales

28. Señales y reglas de negocio

Una señal sola puede no activar alerta. Pero puede alimentar una regla.

Ejemplo:

Señal 1:
Margen cae.

Señal 2:
Descuento sube.

Regla:
Si margen cae más de 5 puntos y descuento sube más de 4 puntos, activar alerta comercial.

Código:

def regla_alerta_margen_descuento(senales):
    codigos = [s["senal"] for s in senales]

    if "margen_deteriorado" in codigos and "descuento_promedio_alto" in codigos:
        return {
            "alerta": "margen_deteriorado_por_descuentos",
            "severidad": "alta",
            "responsable": "Gerente Comercial"
        }

    return None

29. Señales y tensiones

Una tensión se forma cuando varias señales se combinan.

Ejemplo:

Señales:
- ventas_suben
- margen_baja
- descuento_sube
- cobranza_empeora

Tensión:
crecimiento_no_rentable

Código:

def detectar_tension_desde_senales(senales):
    codigos = set(s["senal"] for s in senales)

    if {
        "ventas_suben",
        "margen_deteriorado",
        "descuento_promedio_alto"
    }.issubset(codigos):
        return {
            "tension": "crecimiento_no_rentable",
            "confianza": "alta",
            "acciones": [
                "auditar_descuentos",
                "revisar_comisiones",
                "analizar_cobranza"
            ]
        }

    return None

30. Señales y FARO Score

Las señales pueden afectar FARO Score de dos formas:

1. Directamente, si son críticas.
2. Indirectamente, si se convierten en alertas o tensiones.

Ejemplo:

Señal Impacto posible
Margen cae fuerte baja Score Comercial.
Cobranza empeora baja Score Financiero.
Stock crítico futuro baja Score Operativo preventivo.
Acciones vencidas suben baja Score de Ejecución.
Calidad de datos mejora sube confianza del Score.
Margen recupera mejora Score Comercial.

Código simple:

def impacto_senal_score(severidad, tipo):
    if tipo == "mejora":
        return 2

    if severidad == "critica":
        return -5
    if severidad == "alta":
        return -3
    if severidad == "media":
        return -1

    return 0

31. Ejemplo completo: señal comercial

Datos

Ventas: +18%
Margen anterior: 28%
Margen actual: 21%
Descuento anterior: 6%
Descuento actual: 12%

Señales FARO

Ventas suben fuerte.
Margen cae 7 puntos.
Descuento promedio duplica el objetivo.

Lectura

El crecimiento comercial no parece sano. Aumenta la venta, pero se deteriora el margen y crece la presión por descuentos.

Posible alerta

Margen deteriorado por descuentos.

Posible tensión

Crecimiento no rentable.

Acción sugerida

Auditar ventas con descuento mayor al 8%.
Revisar margen por vendedor.
Revisar política de comisión.

32. Ejemplo completo: señal de stock

Datos

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

Cálculo

Días de cobertura = 180 / 45 = 4 días

Señal FARO

Aunque el stock actual está por encima del mínimo, la cobertura es menor al plazo proveedor.

Lectura

Riesgo de stock crítico futuro. Si no se repone ahora, el producto puede quedar sin disponibilidad antes de recibir nueva mercadería.

Acción sugerida

Activar reposición preventiva.
Consultar proveedor alternativo.

33. Ejemplo completo: señal de dirección

Datos

Decisiones tomadas: 20
Acciones creadas: 12
Acciones vencidas: 6
Problemas reincidentes: 4

Señales FARO

Baja conversión de decisiones en acciones.
Alta proporción de acciones vencidas.
Problemas repetidos.

Lectura

La empresa decide más de lo que ejecuta. Hay riesgo de dirección sin seguimiento real.

Tensión posible

Dirección sin ejecución.

Acción sugerida

Activar workflow obligatorio con responsable, vencimiento, estado y medición posterior.

34. Señales por industria

Construcción / insumos

Descuento promedio alto.
Margen por producto clave cae.
Stock crítico en productos de alta rotación.
Cliente de obra con mora creciente.
Comisión comercial sube con margen bajo.
Canje pendiente sin evaluación financiera.
Referidos sin trazabilidad.

Retail

Promoción mueve venta pero baja margen.
Quiebre de producto estrella.
Sucursal con ticket promedio en caída.
Stock alto con rotación baja.
Merma creciente.

Salud

Ocupación alta con demora creciente.
Turnos perdidos.
Profesional saturado.
Costo por prestación sube.
Reclamos aumentan.

Logística

Costo por kilómetro sube.
SLA cae.
Combustible crece más que entregas.
Flota ociosa.
Mantenimiento reactivo aumenta.

Hotelería

Ocupación alta con tarifa baja.
Canal caro domina ventas.
Costo por habitación ocupada sube.
Reclamos aumentan.
Cancelaciones crecen.

35. Priorización de señales

No todas las señales deben escalar.

Prioridad señal =
severidad × 30%
+ impacto económico × 25%
+ recurrencia × 15%
+ relación con tensión crítica × 15%
+ confianza del dato × 10%
+ cercanía a vencimiento/impacto × 5%

Código:

def prioridad_senal(severidad, impacto, recurrencia, tension_critica, confianza, urgencia):
    return round(
        severidad * 0.30 +
        impacto * 0.25 +
        recurrencia * 0.15 +
        tension_critica * 0.15 +
        confianza * 0.10 +
        urgencia * 0.05,
        2
    )

36. Riesgos si no existe capa de señales

Riesgo Consecuencia
FARO detecta tarde El problema ya explotó.
KPIs quedan estáticos No se entiende tendencia.
Alertas son demasiado bruscas Falta etapa previa.
Tensiones pierden contexto No se sabe cómo empezó el problema.
Dirección recibe ruido Todo parece alerta.
No hay prevención Solo reacción.
Score baja sin explicación No se entiende qué movimiento lo afectó.

37. Output final del Anexo 19

Al finalizar este anexo, FARO debe tener definido:

1. Biblioteca inicial de señales FARO.
2. Tipos de señales.
3. Señales por KPI.
4. Señales por área.
5. Señales por industria.
6. Señales de desvío.
7. Señales de variación.
8. Señales de tendencia.
9. Señales tempranas.
10. Señales cruzadas.
11. Señales de calidad de datos.
12. Fórmulas de variación y desvío.
13. Severidad de señales.
14. Confianza de señales.
15. Priorización de señales.
16. Estados de señales.
17. Tabla de eventos de señales.
18. Relación señal → regla.
19. Relación señal → alerta.
20. Relación señal → tensión.
21. Relación señal → acción.
22. Relación señal → FARO Score.

38. Conexión con otros anexos

Próximo anexo Qué recibe desde Anexo 19
Anexo 17 — Biblioteca de KPIs KPIs calculados que generan señales.
Anexo 18 — Objetivos y umbrales Objetivos contra los que se detectan desvíos.
Anexo 20 — Reglas de negocio Señales que alimentan condiciones lógicas.
Anexo 21 — Alertas FARO Señales que se convierten en alertas.
Anexo 22 — Biblioteca de tensiones Señales cruzadas que forman tensiones.
Anexo 23 — Diagnóstico ejecutivo Señales interpretadas en lenguaje directivo.
Anexo 24 — Confianza del diagnóstico Confianza de señales según calidad de datos.
Anexo 25 — Priorización ejecutiva Señales ordenadas por impacto y urgencia.
Anexo 26 — Recomendaciones FARO Señales que orientan recomendaciones.
Anexo 29 — Biblioteca de acciones Acciones sugeridas según señal.
Anexo 35 — FARO Score Señales que explican subas y bajas del score.
Anexo 36 — Aprendizaje Historial de señales para aprender patrones.

Las Señales FARO son el primer nivel de inteligencia sobre los KPIs. Detectan desvíos, variaciones, tendencias, anomalías, señales tempranas y movimientos cruzados entre áreas. Una señal todavía no siempre es una alerta, pero le permite a FARO anticipar qué puede convertirse en problema, tensión, acción o impacto en el FARO Score.

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