← Volver al índice de anexos
Macrobloque 5a·Ejecución + Control·Anexo 29 / 40

Anexo 29 · Biblioteca de acciones

Etapa: Fase 8.1
DECK PARCIAL

ANEXO 29

Biblioteca de Acciones FARO

Este anexo corresponde a la Fase 8 — Ejecución, etapa “Biblioteca de acciones”. Es la capa donde FARO Connect transforma recomendaciones, Action Guides, diagnósticos, tensiones y alertas en acciones concretas, asignables, medibles y cerrables.

Hasta ahora FARO puede decir:

Qué está pasando.
Por qué está pasando.
Qué prioridad tiene.
Qué conviene hacer.
Cómo conviene hacerlo.

El Anexo 29 responde:

¿Qué acción concreta se crea, quién la hace, cuándo vence, qué evidencia debe cargar y cómo se mide si funcionó?


1. Objetivo del anexo

El objetivo de la Biblioteca de Acciones FARO es definir un catálogo estructurado de acciones posibles para que FARO no recomiende de forma genérica.

No alcanza con decir:

Revisar descuentos.

Una acción FARO debe ser:

Auditar operaciones de los últimos 30 días con descuento mayor al 8%, separadas por vendedor, cliente, producto y sucursal, calculando impacto en margen y comisión. Responsable: Gerente Comercial. Vencimiento: 72 horas. Evidencia: informe cargado en FARO.

Eso sí es una acción.


2. Tesis del Anexo 29

La tesis es:

FARO Connect no dirige si no transforma inteligencia en acciones concretas.

La cadena completa sería:

Dato
→ KPI
→ Señal
→ Regla
→ Alerta
→ Tensión
→ Diagnóstico
→ Prioridad
→ Recomendación
→ Action Guide
→ Acción
→ Responsable
→ Vencimiento
→ Evidencia
→ Seguimiento
→ Resultado
→ Aprendizaje

Si la cadena se corta antes de la acción, FARO queda como analista. Si llega a acción y seguimiento, FARO se convierte en sistema de dirección.


3. Qué es una acción FARO

Una acción FARO es una tarea ejecutiva u operativa creada para resolver, validar, prevenir o escalar una situación detectada por el sistema.

Debe tener:

título claro
origen
responsable
prioridad
vencimiento
pasos
evidencia requerida
KPI afectado
estado
criterio de cierre
impacto esperado
seguimiento posterior

Ejemplo:

{
  "action_code": "ACT_COMMERCIAL_001",
  "title": "Auditar descuentos altos",
  "origin": "crecimiento_no_rentable",
  "responsible_role": "Gerente Comercial",
  "priority": "P2",
  "due_hours": 72,
  "required_evidence": [
    "informe_descuentos",
    "resumen_por_vendedor",
    "propuesta_politica"
  ],
  "kpis_to_monitor": [
    "descuento_promedio",
    "margen_bruto",
    "comision_sobre_margen"
  ],
  "closure_criteria": [
    "informe_presentado",
    "politica_definida",
    "accion_posterior_creada_si_corresponde"
  ]
}

4. Diferencia entre recomendación, guía y acción

Concepto Qué responde Ejemplo
Recomendación Qué conviene hacer. Auditar descuentos.
Action Guide Cómo hacerlo paso a paso. Exportar ventas, calcular margen, separar por vendedor.
Acción Tarea asignada con responsable y vencimiento. Gerente Comercial debe presentar auditoría en 72 horas.

La acción es donde FARO deja de ser diagnóstico y se vuelve ejecución.


5. Tipos de acciones FARO

Tipo de acción Para qué sirve Ejemplo
Correctiva Resolver un problema actual. Auditar descuentos altos.
Preventiva Evitar un problema futuro. Reponer producto antes del quiebre.
Validación Confirmar o corregir datos. Completar costos faltantes.
Escalamiento Subir un tema a Dirección. Escalar acción crítica vencida.
Análisis Profundizar diagnóstico. Analizar margen por vendedor.
Simulación Evaluar escenarios antes de decidir. Simular nueva comisión.
Política Crear o modificar regla interna. Definir política de descuentos.
Proceso Cambiar forma de trabajo. Implementar workflow obligatorio.
Seguimiento Medir si algo mejoró. Revisar margen 30 días después.
Bloqueo / control Frenar una operación riesgosa. Bloquear diagnóstico por baja calidad de datos.

6. Biblioteca inicial de acciones FARO

Una biblioteca seria debería arrancar con:

300 a 500 acciones iniciales

Escalable a:

1.000+ acciones por industria, módulo, tensión, diagnóstico y recomendación.

Distribución sugerida:

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

Para MVP:

40 a 80 acciones críticas bien diseñadas

Mejor pocas acciones bien cerradas que 500 tareas huérfanas con olor a comité eterno.


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

{
  "action_code": "ACT_FINANCE_001",
  "title": "Priorizar cobranza de clientes críticos",
  "description": "Gestionar cobranza de clientes con mayor deuda vencida e impacto en caja.",
  "action_type": "correctiva",
  "origin_type": "diagnosis",
  "origin_code": "caja_debil_con_ventas_altas",
  "related_tension": "caja_debil_con_ventas_altas",
  "related_recommendation": "priorizar_cobranza",
  "related_action_guide": "AG_FINANCE_001",
  "area": "Finanzas",
  "responsible_role": "Responsable de Finanzas",
  "approver_role": "Dirección",
  "consulted_roles": ["Comercial", "Administración"],
  "priority_level": "P1",
  "due_hours": 24,
  "required_data": [
    "cuentas_por_cobrar",
    "clientes",
    "deuda_vencida",
    "dias_mora"
  ],
  "required_evidence": [
    "ranking_clientes_morosos",
    "plan_cobranza",
    "resultado_gestion"
  ],
  "kpis_to_monitor": [
    "caja_disponible",
    "dias_cobranza",
    "mora_total"
  ],
  "expected_impact": {
    "cash": "mejorar",
    "collection_days": "reducir"
  },
  "closure_criteria": [
    "clientes_priorizados",
    "plan_ejecutado",
    "resultado_cobranza_registrado"
  ],
  "automation_level": "crear_tarea_automatica"
}

8. Campos obligatorios de una acción

Campo Para qué sirve
action_code Identificador único de acción.
title Nombre claro.
description Qué debe hacerse.
action_type Correctiva, preventiva, validación, etc.
origin_type Alerta, tensión, diagnóstico, recomendación o guía.
origin_code Código del origen.
area Área responsable.
responsible_role Responsable principal.
approver_role Aprobador si corresponde.
consulted_roles Áreas consultadas.
priority_level P1 a P5.
due_hours Plazo sugerido.
required_data Datos necesarios.
required_evidence Evidencia para cerrar.
kpis_to_monitor KPIs afectados.
expected_impact Impacto esperado.
closure_criteria Criterio de cierre.
automation_level Qué puede automatizar FARO.

9. Estados de una acción FARO

Estado Significado
Created Acción creada.
Assigned Tiene responsable.
Accepted Responsable la aceptó.
In progress En ejecución.
Waiting data Falta información.
Waiting approval Requiere aprobación.
Waiting evidence Falta evidencia.
Blocked Tiene bloqueo.
Escalated Fue escalada.
Completed Fue completada.
Measured Se midió impacto.
Closed Cerrada con evidencia.
Rejected Rechazada con motivo.
Cancelled Cancelada formalmente.
Overdue Vencida.
Recurring Recurrente.

Regla sana:

Una acción no está cerrada porque alguien dijo “listo”. Está cerrada cuando cumple criterio de cierre y deja evidencia.


10. Prioridad de acciones

La prioridad de una acción nace de:

prioridad del diagnóstico
urgencia
impacto esperado
riesgo de no actuar
confianza
vencimiento
dependencias

Fórmula:

Prioridad acción =
prioridad origen × 30%
+ urgencia × 20%
+ impacto esperado × 20%
+ riesgo de no actuar × 15%
+ dependencia de otras acciones × 10%
+ confianza × 5%

Código:

def prioridad_accion(
    prioridad_origen,
    urgencia,
    impacto_esperado,
    riesgo_no_actuar,
    dependencia,
    confianza
):
    return round(
        prioridad_origen * 0.30 +
        urgencia * 0.20 +
        impacto_esperado * 0.20 +
        riesgo_no_actuar * 0.15 +
        dependencia * 0.10 +
        confianza * 0.05,
        2
    )

11. Vencimiento por prioridad

Prioridad Vencimiento recomendado
P1 — Crítica 24 horas o menos
P2 — Alta 48 a 72 horas
P3 — Media 7 días
P4 — Baja 15 a 30 días
P5 — Observación Sin vencimiento operativo o revisión periódica

Código:

def vencimiento_accion(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

12. Acciones comerciales

12.1 Biblioteca base comercial

Acción Origen típico Responsable Prioridad
Auditar descuentos altos Margen deteriorado Gerente Comercial P2
Revisar margen por vendedor Comisión desalineada Gerente Comercial P2
Definir autorización de descuentos Descuento alto recurrente Dirección Comercial P2
Revisar margen por cliente Cliente poco rentable Comercial / Finanzas P2
Analizar mix de productos Mix débil Comercial P3
Revisar canal no rentable Canal bajo margen Comercial P3
Suspender descuentos automáticos Margen crítico Dirección P1/P2
Crear política comercial Reincidencia comercial Dirección P2
Segmentar clientes por rentabilidad Cliente riesgoso Comercial / Finanzas P2
Recalcular precios mínimos Margen bajo Comercial / Compras P2

12.2 Acción: auditar descuentos altos

{
  "action_code": "ACT_COMMERCIAL_DISCOUNT_AUDIT",
  "title": "Auditar descuentos mayores al umbral",
  "action_type": "correctiva",
  "origin": "margen_deteriorado_por_descuentos",
  "responsible_role": "Gerente Comercial",
  "consulted_roles": ["Finanzas", "Administración"],
  "priority_level": "P2",
  "due_hours": 72,
  "required_evidence": [
    "listado_operaciones_descuento_alto",
    "analisis_margen_por_operacion",
    "propuesta_politica_descuentos"
  ],
  "kpis_to_monitor": [
    "descuento_promedio",
    "margen_bruto",
    "venta_por_vendedor"
  ]
}

Código de detección:

def crear_accion_auditar_descuentos(descuento_promedio, margen_bruto):
    if descuento_promedio > 0.10 and margen_bruto < 0.22:
        return {
            "action_code": "ACT_COMMERCIAL_DISCOUNT_AUDIT",
            "title": "Auditar descuentos mayores al umbral",
            "priority": "P2",
            "responsible": "Gerente Comercial",
            "due_hours": 72
        }

    return None

13. Acciones financieras

13.1 Biblioteca base financiera

Acción Origen típico Responsable Prioridad
Priorizar cobranza crítica Caja débil Finanzas P1
Proyectar caja 7 días Caja bajo mínimo Finanzas P1
Reprogramar pagos no críticos Estrés financiero Finanzas / Dirección P1
Revisar clientes morosos Mora alta Finanzas P2
Ajustar política de crédito Cobranza lenta Dirección / Finanzas P2
Separar gastos por centro de costo Gasto desalineado Finanzas P3
Congelar gastos discrecionales Caja crítica Dirección P1
Revisar flujo operativo Flujo negativo Finanzas P2
Auditar gastos sin documento Control de gastos Finanzas P3
Crear presupuesto por área Gasto recurrente alto Finanzas P3

13.2 Acción: priorizar cobranza crítica

def crear_accion_cobranza_critica(caja_actual, caja_minima):
    if caja_actual < caja_minima:
        return {
            "action_code": "ACT_FINANCE_COLLECTION_PRIORITY",
            "title": "Priorizar cobranza de clientes críticos",
            "priority": "P1",
            "responsible": "Finanzas",
            "due_hours": 24,
            "required_evidence": [
                "ranking_deuda_vencida",
                "plan_cobranza_7_dias",
                "resultado_contacto_clientes"
            ]
        }

    return None

SQL sugerido:

SELECT
    customer_id,
    SUM(amount_due) AS deuda_total,
    SUM(CASE WHEN due_date < CURRENT_DATE THEN amount_due ELSE 0 END) AS deuda_vencida,
    MAX(CURRENT_DATE - due_date) AS dias_mora_max
FROM accounts_receivable
WHERE status <> 'paid'
GROUP BY customer_id
ORDER BY deuda_vencida DESC;

14. Acciones de stock e inventario

14.1 Biblioteca base stock

Acción Origen típico Responsable Prioridad
Activar reposición preventiva Stock crítico futuro Compras P2
Validar stock físico Baja confianza stock Stock P2
Redistribuir stock entre sucursales Stock mal compuesto Stock P3
Bloquear compra de productos lentos Stock inmovilizado Compras P3
Liquidar stock inmovilizado Capital parado Comercial / Stock P3
Definir mínimos por producto Quiebres repetidos Stock / Compras P2
Revisar rotación por familia Stock alto/bajo Stock P3
Activar proveedor alternativo Proveedor crítico Compras P2
Crear alerta de cobertura Riesgo de quiebre Stock P2
Auditar diferencias físico-sistema Inventario no confiable Stock P2

14.2 Acción: activar reposición preventiva

def crear_accion_reposicion_preventiva(producto_critico, dias_cobertura, plazo_proveedor):
    if producto_critico and dias_cobertura < plazo_proveedor:
        return {
            "action_code": "ACT_STOCK_PREVENTIVE_REPLENISHMENT",
            "title": "Activar reposición preventiva de producto crítico",
            "priority": "P2",
            "responsible": "Compras",
            "consulted": ["Stock", "Comercial"],
            "due_hours": 48,
            "required_evidence": [
                "orden_compra",
                "confirmacion_proveedor",
                "fecha_estimada_reposicion"
            ]
        }

    return None

15. Acciones de compras y proveedores

15.1 Biblioteca base compras

Acción Origen típico Responsable Prioridad
Homologar proveedor alternativo Proveedor crítico Compras P2
Renegociar plazo proveedor Demora proveedor Compras P2
Revisar dependencia proveedor Concentración alta Compras / Dirección P3
Auditar compras urgentes Compras reactivas Compras P3
Crear plan de reposición Compras reactivas Compras / Stock P2
Revisar variación de costo Costo creciente Compras / Finanzas P2
Validar recepción con diferencia Control compras Stock / Compras P2
Revisar órdenes pendientes Riesgo abastecimiento Compras P2
Negociar precio por volumen Margen futuro en riesgo Compras P3
Definir proveedor estratégico Dependencia crítica Dirección / Compras P2

15.2 Acción: homologar proveedor alternativo

def crear_accion_proveedor_alternativo(cumplimiento, dependencia, alternativa_disponible):
    if cumplimiento < 0.75 and dependencia > 0.40 and not alternativa_disponible:
        return {
            "action_code": "ACT_SUPPLIER_ALTERNATIVE",
            "title": "Homologar proveedor alternativo",
            "priority": "P2",
            "responsible": "Compras",
            "due_hours": 72,
            "required_evidence": [
                "lista_proveedores_alternativos",
                "comparativo_precio_plazo",
                "recomendacion_final"
            ]
        }

    return None

16. Acciones de RRHH e incentivos

16.1 Biblioteca base RRHH

Acción Origen típico Responsable Prioridad
Simular nueva comisión Comisión desalineada Comercial / RRHH P2
Revisar comisión por margen Margen bajo Comercial / RRHH P2
Analizar productividad por rol Productividad baja RRHH P3
Revisar ausentismo operativo Ausentismo alto RRHH P3
Detectar persona clave Riesgo organizativo RRHH / Dirección P3
Reasignar tareas vencidas Accountability débil Gerencia P2
Definir RACI por proceso Falta de responsables Gerencia / RRHH P2
Revisar costo laboral Costo desalineado RRHH / Finanzas P3
Crear plan de cobertura Ausentismo crítico RRHH / Operaciones P2
Validar fórmula variable Comisión sensible Dirección P2

16.2 Acción: simular nueva comisión

def crear_accion_simular_comision(comision_var, margen_var):
    if comision_var > 0 and margen_var < 0:
        return {
            "action_code": "ACT_HR_COMMISSION_SIMULATION",
            "title": "Simular nueva fórmula de comisión",
            "priority": "P2",
            "responsible": "Comercial / RRHH",
            "approver": "Dirección",
            "due_hours": 7 * 24,
            "required_evidence": [
                "simulacion_por_vendedor",
                "impacto_en_margen",
                "impacto_en_variable",
                "riesgo_comercial"
            ],
            "requires_approval": True
        }

    return None

17. Acciones de operaciones y workflow

17.1 Biblioteca base operaciones

Acción Origen típico Responsable Prioridad
Crear acción por decisión Decisión sin acción Gerencia P2
Escalar acción crítica vencida Acción vencida Gerencia P1
Reasignar tarea bloqueada Bloqueo operativo Responsable superior P2
Revisar cuello de botella Demora recurrente Operaciones P2
Analizar reclamo reincidente Reclamos repetidos Operaciones P2
Medir cierre de acción Cierre sin evidencia Gerencia P3
Crear comité de seguimiento Tensión recurrente Dirección P2
Definir SLA interno Incumplimiento operativo Operaciones P3
Auditar reprocesos Baja calidad operativa Operaciones P3
Crear tablero de vencimientos Accountability débil Gerencia P2

17.2 Acción: escalar acción crítica vencida

def crear_accion_escalamiento(accion):
    if accion["priority"] == "P1" and accion["status"] != "closed" and accion["days_overdue"] >= 1:
        return {
            "action_code": "ACT_WORKFLOW_ESCALATE_CRITICAL",
            "title": "Escalar acción crítica vencida",
            "priority": "P1",
            "responsible": "Gerencia General",
            "due_hours": 24,
            "related_action_id": accion["action_id"],
            "required_evidence": [
                "motivo_vencimiento",
                "nuevo_plan_cierre",
                "responsable_confirmado"
            ]
        }

    return None

18. Acciones de calidad de datos

18.1 Biblioteca base data quality

Acción Origen típico Responsable Prioridad
Completar costos faltantes Margen no confiable Data Owner / Compras P2
Normalizar productos Producto sin maestro Data Owner P2
Unificar clientes duplicados Mora distorsionada Administración P2
Conciliar stock físico-sistema Stock no confiable Stock P2
Validar cuentas bancarias Finanzas no confiable Finanzas P2
Reprocesar KPI Dato corregido Data Owner P3
Corregir códigos de vendedor Comisión no confiable RRHH / Comercial P3
Crear diccionario de campos Falta de estándar Data Owner P3
Validar fuente de datos Baja trazabilidad Sistemas P2
Bloquear diagnóstico sensible Confianza baja FARO / Dirección P1/P2

18.2 Acción: completar costos faltantes

def crear_accion_completar_costos(score_calidad_costos):
    if score_calidad_costos < 0.70:
        return {
            "action_code": "ACT_DATA_COMPLETE_COSTS",
            "title": "Completar costos faltantes para recalcular margen",
            "priority": "P2",
            "responsible": "Data Owner / Compras",
            "due_hours": 7 * 24,
            "required_evidence": [
                "productos_sin_costo_identificados",
                "costos_completados",
                "margen_recalculado",
                "confianza_kpi_actualizada"
            ]
        }

    return None

19. Acciones para clientes

19.1 Biblioteca base clientes

Acción Origen típico Responsable Prioridad
Revisar límite de crédito Cliente moroso Finanzas P2
Calcular rentabilidad por cliente Cliente grande riesgoso Finanzas / Comercial P2
Renegociar condición comercial Margen bajo cliente Comercial P2
Exigir pago parcial Mora crítica Finanzas / Dirección P1/P2
Suspender venta a crédito Riesgo alto Dirección P1/P2
Crear plan de cobranza cliente Mora recurrente Finanzas P2
Revisar reclamos por cliente Cliente en riesgo Operaciones P3
Segmentar cliente estratégico Concentración alta Dirección P3
Validar datos del cliente Cliente duplicado Administración P3
Analizar costo de servir Cliente poco rentable Comercial / Operaciones P3

19.2 Acción: revisar crédito de cliente grande

def crear_accion_revisar_credito_cliente(concentracion, dias_mora, margen_cliente):
    if concentracion > 0.15 and dias_mora > 30 and margen_cliente < 0.20:
        return {
            "action_code": "ACT_CUSTOMER_CREDIT_REVIEW",
            "title": "Revisar crédito y condiciones de cliente grande riesgoso",
            "priority": "P2",
            "responsible": "Finanzas",
            "consulted": ["Comercial", "Dirección"],
            "requires_approval": True,
            "due_hours": 72,
            "required_evidence": [
                "ficha_cliente",
                "deuda_vencida",
                "margen_cliente",
                "propuesta_condicion"
            ]
        }

    return None

20. Acciones para canjes

20.1 Biblioteca base canjes

Acción Origen típico Responsable Prioridad
Registrar propuesta de canje Canje pendiente Comercial P2
Valuar activo recibido Canje Finanzas P2
Validar documentación legal Canje sensible Legal / Dirección P1/P2
Simular valor neto del canje Canje mal evaluado Finanzas P2
Comparar contra venta normal Canje Dirección / Finanzas P2
Aprobar/rechazar canje Decisión sensible Directorio P1/P2
Renegociar condiciones Canje desfavorable Comercial P2
Registrar riesgo del canje Control Finanzas / Legal P2
Medir liquidez del activo Canje aceptado Finanzas P3
Cerrar canje con evidencia Cierre Administración P3

20.2 Acción: simular canje

def crear_accion_simular_canje(valor_operacion, requiere_activo_no_liquido):
    if valor_operacion > 0 and requiere_activo_no_liquido:
        return {
            "action_code": "ACT_EXCHANGE_SIMULATION",
            "title": "Simular valor neto de canje",
            "priority": "P2",
            "responsible": "Finanzas / Dirección",
            "consulted": ["Comercial", "Legal"],
            "requires_approval": True,
            "due_hours": 72,
            "required_evidence": [
                "valuacion_activo",
                "costo_materiales",
                "factor_liquidez",
                "riesgo_legal",
                "comparativo_venta_normal"
            ]
        }

    return None

21. Acciones para referidos

21.1 Biblioteca base referidos

Acción Origen típico Responsable Prioridad
Identificar referido Venta referida Comercial P3
Registrar origen de venta Trazabilidad Comercial P3
Calcular comisión sobre margen Referido erosiona margen Finanzas P2
Aprobar pago de referido Comisión sensible Dirección P2
Crear política de referidos Referidos sin control Dirección Comercial P2
Bloquear pago sin trazabilidad Riesgo control Finanzas P2
Medir ventas por referido Gestión comercial Comercial P3
Validar documentación Control Administración P3

Código:

def crear_accion_validar_referido(comision_referido, margen_operacion, referido_identificado):
    if margen_operacion == 0:
        return None

    ratio = comision_referido / margen_operacion

    if not referido_identificado or ratio > 0.25:
        return {
            "action_code": "ACT_REFERRAL_VALIDATE",
            "title": "Validar referido y comisión sobre margen",
            "priority": "P2",
            "responsible": "Comercial / Finanzas",
            "requires_approval": True,
            "required_evidence": [
                "referido_identificado",
                "operacion_asociada",
                "margen_operacion",
                "comision_solicitada",
                "aprobacion"
            ]
        }

    return None

22. Acciones por industria

22.1 Construcción / insumos

Auditar descuentos por vendedor.
Revisar margen por familia: cemento, hierro, sanitarios, grifería.
Activar reposición de productos de alta rotación.
Validar canjes con modelo financiero.
Registrar referidos y comisiones externas.
Revisar ventas a obra con cobranza lenta.
Definir mínimos por sucursal.
Revisar flete que erosiona margen.

22.2 Retail

Revisar promociones por margen incremental.
Redistribuir stock entre sucursales.
Liquidar productos lentos.
Priorizar producto estrella sin quiebre.
Auditar merma.
Analizar ticket promedio por sucursal.

22.3 Salud

Revisar agenda de profesionales saturados.
Reducir tiempos de espera.
Auditar costo por prestación.
Validar insumos críticos.
Revisar reclamos reincidentes.

22.4 Logística

Rediseñar ruta no rentable.
Auditar costo por kilómetro.
Revisar combustible por unidad.
Reprogramar mantenimiento preventivo.
Analizar SLA incumplidos.

22.5 Hotelería

Revisar tarifa por canal.
Reducir dependencia de canal caro.
Analizar RevPAR.
Priorizar mantenimiento en habitaciones con reclamos.
Revisar cancelaciones.

22.6 Shopping / real estate

Revisar locatario moroso.
Analizar vacancia por zona.
Revisar renta por m².
Analizar tráfico vs conversión.
Revisar mix comercial.

23. Acciones automáticas vs acciones con aprobación

Acción Automatización recomendada
Crear tarea de validación de datos Automática
Escalar acción crítica vencida Automática
Crear tarea de reposición preventiva Automática o sugerida
Auditar descuentos altos Sugerida / automática según confianza
Reprogramar pagos Requiere aprobación
Bloquear cliente Requiere aprobación
Cambiar comisión Requiere aprobación
Aprobar canje Requiere aprobación
Modificar precios masivamente Requiere aprobación
Acciones sensibles de RRHH Requiere aprobación siempre

Regla:

FARO automatiza ejecución operativa. No automatiza decisiones sensibles sin gobierno humano.


24. Dependencias entre acciones

Una acción puede depender de otra.

Ejemplos:

No se puede revisar comisión si no se calculó margen por vendedor.
No se puede aceptar canje si no se valuó el activo.
No se puede cerrar diagnóstico de margen si faltan costos.
No se puede aprobar reposición si no se validó stock físico.

Código:

def accion_puede_iniciarse(accion, acciones_completadas):
    dependencias = accion.get("dependencies", [])

    return all(dep in acciones_completadas for dep in dependencias)

Ejemplo JSON:

{
  "action_code": "ACT_HR_COMMISSION_SIMULATION",
  "dependencies": [
    "ACT_COMMERCIAL_MARGIN_BY_SELLER",
    "ACT_FINANCE_COLLECTION_BY_SELLER"
  ]
}

25. Acciones recurrentes

Algunas acciones deben repetirse.

Ejemplos:

Revisar caja diaria.
Revisar stock crítico diario.
Revisar acciones vencidas semanalmente.
Revisar margen por vendedor mensual.
Revisar calidad de datos semanal.

Estructura:

{
  "action_code": "ACT_DAILY_CASH_REVIEW",
  "recurrence": {
    "frequency": "daily",
    "time": "09:00",
    "business_days_only": true
  }
}

SQL conceptual:

CREATE TABLE recurring_actions (
    recurring_action_id TEXT PRIMARY KEY,
    action_code TEXT NOT NULL,
    company_id TEXT,
    frequency TEXT,
    schedule_config JSONB,
    responsible_id TEXT,
    active BOOLEAN DEFAULT true,
    created_at TIMESTAMP DEFAULT now()
);

26. Acciones bloqueantes

Una acción bloqueante impide avanzar con una decisión.

Ejemplo:

No cambiar política comercial hasta recalcular margen confiable.
No aprobar canje hasta validar documentación legal.
No bloquear cliente hasta revisar rentabilidad ajustada.

Código:

def bloquear_decision_si_accion_pendiente(decision_code, acciones_pendientes):
    bloqueantes = [
        a for a in acciones_pendientes
        if a.get("blocks_decision") == decision_code
    ]

    if bloqueantes:
        return {
            "blocked": True,
            "reason": "Existen acciones bloqueantes pendientes.",
            "blocking_actions": bloqueantes
        }

    return {"blocked": False}

27. Evidencia requerida por acción

Tipos de evidencia:

archivo
captura
comentario
aprobación
cálculo
reporte
orden de compra
simulación
acta de reunión
validación de responsable
KPI recalculado

Ejemplo:

{
  "action_code": "ACT_DATA_COMPLETE_COSTS",
  "required_evidence": [
    {
      "type": "report",
      "name": "Listado de productos corregidos"
    },
    {
      "type": "kpi",
      "name": "Confianza KPI margen actualizada"
    }
  ]
}

Código:

def validar_evidencia_accion(required_evidence, uploaded_evidence):
    faltantes = []

    for evidencia in required_evidence:
        if evidencia not in uploaded_evidence:
            faltantes.append(evidencia)

    return {
        "complete": len(faltantes) == 0,
        "missing": faltantes
    }

28. Criterios de cierre

Una acción se cierra si cumple:

pasos completados
evidencia cargada
responsable validó
aprobador aprobó si corresponde
KPI recalculado si aplica
no quedan bloqueos

Código:

def puede_cerrar_accion(accion):
    condiciones = [
        accion.get("steps_completed", False),
        accion.get("evidence_complete", False),
        accion.get("responsible_validation", False),
        not accion.get("blocked", False)
    ]

    if accion.get("requires_approval"):
        condiciones.append(accion.get("approved", False))

    return all(condiciones)

29. Impacto de acciones en FARO Score

Las acciones impactan el Score por ejecución y resultado.

Evento Impacto
Acción P1 creada 0
Acción P1 aceptada +1
Acción P1 cerrada en plazo +3
Acción P1 vencida -5
Acción P2 cerrada en plazo +2
Acción sin evidencia 0
Acción que resuelve tensión +4 a +8
Acción recurrente vencida -3
Acción sensible rechazada con motivo válido 0
Acción falsa positiva corregida +1 por aprendizaje

Código:

def impacto_accion_score(priority, status, resolved_tension=False):
    if status == "overdue":
        return -5 if priority == "P1" else -3

    if status == "closed_with_evidence":
        impacto = 3 if priority == "P1" else 2

        if resolved_tension:
            impacto += 4

        return impacto

    if status == "accepted":
        return 1

    return 0

30. Medición posterior de acciones

Toda acción relevante debe medir resultado.

Ejemplo:

Acción:
Auditar descuentos altos.

Medición 30 días:
descuento promedio antes: 12%
descuento promedio después: 8%
margen antes: 21%
margen después: 24%

Código:

def medir_impacto_accion(kpi_before, kpi_after):
    impacto = {}

    for kpi, valor_antes in kpi_before.items():
        valor_despues = kpi_after.get(kpi)

        if valor_despues is not None:
            impacto[kpi] = valor_despues - valor_antes

    return impacto

31. Tabla SQL de biblioteca de acciones

CREATE TABLE action_library (
    action_code TEXT PRIMARY KEY,
    title TEXT NOT NULL,
    description TEXT,
    action_type TEXT,
    applicable_alerts JSONB,
    applicable_tensions JSONB,
    applicable_diagnoses JSONB,
    applicable_recommendations JSONB,
    applicable_action_guides JSONB,
    industry_scope JSONB,
    area_id TEXT,
    responsible_role TEXT,
    approver_role TEXT,
    consulted_roles JSONB,
    default_priority TEXT,
    default_due_hours INTEGER,
    required_data JSONB,
    required_evidence JSONB,
    kpis_to_monitor JSONB,
    expected_impact JSONB,
    closure_criteria JSONB,
    dependencies JSONB,
    blocks_decisions JSONB,
    automation_level TEXT,
    sensitive BOOLEAN DEFAULT false,
    active BOOLEAN DEFAULT true,
    version TEXT DEFAULT '1.0',
    created_at TIMESTAMP DEFAULT now(),
    updated_at TIMESTAMP DEFAULT now()
);

32. Tabla SQL de acciones generadas

CREATE TABLE action_events (
    action_id TEXT PRIMARY KEY,
    action_code TEXT NOT NULL,
    company_id TEXT,
    branch_id TEXT,
    area_id TEXT,
    responsible_id TEXT,
    approver_id TEXT,
    origin_type TEXT,
    origin_id TEXT,
    alert_id TEXT,
    tension_event_id TEXT,
    diagnosis_id TEXT,
    recommendation_event_id TEXT,
    action_guide_event_id TEXT,
    title TEXT NOT NULL,
    description TEXT,
    priority_level TEXT,
    status TEXT DEFAULT 'created',
    due_date TIMESTAMP,
    required_evidence JSONB,
    uploaded_evidence JSONB,
    kpis_to_monitor JSONB,
    expected_impact JSONB,
    closure_criteria JSONB,
    score_impact NUMERIC,
    created_at TIMESTAMP DEFAULT now(),
    accepted_at TIMESTAMP,
    completed_at TIMESTAMP,
    closed_at TIMESTAMP
);

33. Tabla SQL de historial de acciones

CREATE TABLE action_status_history (
    id TEXT PRIMARY KEY,
    action_id TEXT NOT NULL,
    previous_status TEXT,
    new_status TEXT,
    changed_by TEXT,
    change_reason TEXT,
    changed_at TIMESTAMP DEFAULT now()
);

34. Tabla SQL de dependencias entre acciones

CREATE TABLE action_dependencies (
    id TEXT PRIMARY KEY,
    action_id TEXT NOT NULL,
    depends_on_action_id TEXT NOT NULL,
    dependency_type TEXT,
    required_status TEXT DEFAULT 'closed',
    created_at TIMESTAMP DEFAULT now()
);

Valores posibles de dependency_type:

must_finish_before_start
must_approve_before_start
blocks_closure
blocks_decision

35. Tabla SQL de medición de impacto

CREATE TABLE action_impact_measurements (
    measurement_id TEXT PRIMARY KEY,
    action_id TEXT NOT NULL,
    kpi_code TEXT NOT NULL,
    value_before NUMERIC,
    value_after NUMERIC,
    delta_value NUMERIC,
    delta_rate NUMERIC,
    measured_period_start DATE,
    measured_period_end DATE,
    interpretation TEXT,
    created_at TIMESTAMP DEFAULT now()
);

36. Motor de creación de acciones

Flujo recomendado:

Alerta / tensión / diagnóstico / recomendación / guía
→ buscar acciones aplicables
→ validar confianza
→ validar sensibilidad
→ asignar responsable
→ definir vencimiento
→ cargar evidencia requerida
→ crear acción
→ monitorear vencimiento
→ escalar si corresponde
→ medir impacto

Código conceptual:

def motor_acciones(evento_origen, biblioteca_acciones):
    acciones = []

    for accion in biblioteca_acciones:
        if evento_origen["code"] in accion.get("applicable_diagnoses", []):
            acciones.append(preparar_accion(evento_origen, accion))

        elif evento_origen["code"] in accion.get("applicable_tensions", []):
            acciones.append(preparar_accion(evento_origen, accion))

        elif evento_origen["code"] in accion.get("applicable_recommendations", []):
            acciones.append(preparar_accion(evento_origen, accion))

    return acciones


def preparar_accion(evento_origen, accion_template):
    return {
        "action_code": accion_template["action_code"],
        "title": accion_template["title"],
        "priority": evento_origen.get("priority_level", accion_template["default_priority"]),
        "responsible_role": accion_template["responsible_role"],
        "due_hours": accion_template["default_due_hours"],
        "required_evidence": accion_template["required_evidence"],
        "origin_code": evento_origen["code"]
    }

37. Motor de vencimientos y escalamiento

from datetime import datetime

def evaluar_vencimiento_accion(accion):
    if accion["status"] in ["closed", "cancelled", "rejected"]:
        return None

    if datetime.now() > accion["due_date"]:
        return {
            "action_id": accion["action_id"],
            "status": "overdue",
            "requires_escalation": accion["priority_level"] in ["P1", "P2"]
        }

    return None

Escalamiento:

def escalar_accion_vencida(accion):
    if accion["priority_level"] == "P1":
        return {
            "escalate_to": "Gerencia General",
            "message": "Acción crítica vencida requiere intervención inmediata."
        }

    if accion["priority_level"] == "P2":
        return {
            "escalate_to": "Responsable superior",
            "message": "Acción prioritaria vencida requiere revisión."
        }

    return None

38. Ejemplo completo: crecimiento no rentable

Diagnóstico

Crecimiento no rentable.

Recomendación

Auditar descuentos, revisar comisión y priorizar cobranza.

Acciones generadas

Acción Responsable Prioridad Vencimiento
Auditar descuentos > 8% Gerente Comercial P2 72 hs
Calcular margen por vendedor Comercial / Finanzas P2 72 hs
Revisar comisión sobre margen Comercial / RRHH P2 7 días
Priorizar cobranza clientes grandes Finanzas P2 72 hs
Presentar propuesta comercial Gerente Comercial P2 7 días

Evidencia requerida

Listado de operaciones auditadas.
Margen por vendedor.
Detalle de comisión.
Ranking de clientes con mora.
Propuesta de ajuste.

39. Ejemplo completo: caja crítica

Diagnóstico

Caja bajo mínimo operativo.

Acciones generadas

Acción Responsable Prioridad Vencimiento
Actualizar caja real Finanzas P1 6 hs
Proyectar caja 7 días Finanzas P1 12 hs
Priorizar cobranza Finanzas / Comercial P1 24 hs
Revisar pagos no críticos Finanzas / Dirección P1 24 hs
Reportar plan a Dirección Finanzas P1 24 hs

Criterio de cierre

Caja proyectada normalizada.
Plan aprobado.
Cobranzas priorizadas ejecutadas.
Pagos críticos ordenados.

40. Ejemplo completo: stock crítico futuro

Diagnóstico

Riesgo futuro de stock crítico.

Acciones generadas

Acción Responsable Prioridad Vencimiento
Validar stock físico Stock P2 24 hs
Consultar OC pendiente Compras P2 24 hs
Consultar proveedor actual Compras P2 24 hs
Evaluar proveedor alternativo Compras P2 48 hs
Emitir reposición preventiva Compras P2 48 hs

41. Ejemplo completo: margen no confiable

Diagnóstico

Margen no confiable por costos incompletos.

Acciones generadas

Acción Responsable Prioridad Vencimiento
Identificar productos sin costo Data Owner P2 24 hs
Completar costos unitarios Compras P2 7 días
Normalizar productos Data Owner P2 7 días
Recalcular margen Sistemas / Data P2 7 días
Actualizar confianza KPI FARO / Data P2 7 días

42. Acción explicada para socio técnico

La acción FARO no es una tarea manual improvisada.

Es una entidad estructurada que conecta:

origen analítico
regla que la disparó
diagnóstico asociado
recomendación asociada
responsable
plazo
estado
evidencia
dependencias
score
medición posterior
aprendizaje

Arquitectura correcta:

Motor de diagnóstico detecta.
Motor de recomendaciones sugiere.
Action Guide define paso a paso.
Motor de acciones crea tareas.
Workflow monitorea.
Evidencia valida cierre.
Score mide impacto.
Aprendizaje recalibra.

43. Prompt interno para IA explicativa

La IA puede redactar mejor la acción, pero no debe inventarla.

Actúa como analista ejecutivo FARO.

Con base únicamente en el payload estructurado recibido, redacta una acción clara, concreta y ejecutable.

No inventes datos ni responsables.
Incluye:
1. acción concreta,
2. origen,
3. responsable,
4. plazo,
5. evidencia requerida,
6. KPI afectado,
7. criterio de cierre,
8. riesgo de no actuar.

Payload:
{action_payload}

Regla:

La biblioteca define la acción. La IA solo la explica en lenguaje humano.


44. Testing de acciones

Test crear acción de descuento

def test_crear_accion_auditar_descuentos():
    accion = crear_accion_auditar_descuentos(
        descuento_promedio=0.12,
        margen_bruto=0.18
    )

    assert accion is not None
    assert accion["action_code"] == "ACT_COMMERCIAL_DISCOUNT_AUDIT"
    assert accion["priority"] == "P2"

Test no crear acción si no corresponde

def test_no_crear_accion_descuento_sano():
    accion = crear_accion_auditar_descuentos(
        descuento_promedio=0.04,
        margen_bruto=0.30
    )

    assert accion is None

Test cierre con aprobación

def test_accion_sensible_requiere_aprobacion():
    accion = {
        "steps_completed": True,
        "evidence_complete": True,
        "responsible_validation": True,
        "blocked": False,
        "requires_approval": True,
        "approved": False
    }

    assert puede_cerrar_accion(accion) is False

45. Errores comunes en acciones

Error Consecuencia
Acción sin responsable Nadie ejecuta.
Acción sin vencimiento Se posterga.
Acción sin evidencia Se cierra de palabra.
Acción demasiado genérica No se sabe qué hacer.
Acción sin KPI afectado No se mide impacto.
Acción sin origen No se entiende por qué existe.
Acción sensible automática Riesgo de conflicto o daño.
Acción sin seguimiento No hay aprendizaje.
Muchas acciones P1 Todo es urgente, nada es urgente.

46. Riesgos si no existe biblioteca de acciones

Riesgo Consecuencia
Recomendaciones no bajan a ejecución FARO queda en diagnóstico.
Cada usuario interpreta distinto Inconsistencia operativa.
No hay trazabilidad No se puede auditar.
No hay evidencia Cierres débiles.
No se mide impacto FARO no aprende.
No se escala vencimiento Se pierde accountability.
No se conecta con Score FARO Score queda decorativo.
Baja adopción El sistema informa, pero no conduce.

47. Output final del Anexo 29

Al finalizar este anexo, FARO debe tener definido:

1. Biblioteca inicial de acciones FARO.
2. Tipos de acciones.
3. Estructura estándar de acción.
4. Acciones por área.
5. Acciones por industria.
6. Acciones por diagnóstico.
7. Acciones por tensión.
8. Acciones por recomendación.
9. Acciones por Action Guide.
10. Acciones automáticas vs con aprobación.
11. Responsables y RACI.
12. Prioridad de acciones.
13. Vencimientos sugeridos.
14. Evidencia requerida.
15. Dependencias entre acciones.
16. Acciones bloqueantes.
17. Acciones recurrentes.
18. Criterios de cierre.
19. Impacto en FARO Score.
20. Medición posterior.
21. Tablas SQL de acciones.
22. Motor de creación de acciones.
23. Motor de vencimientos.
24. Motor de escalamiento.
25. Testing de acciones.
26. Uso controlado de IA explicativa.
27. Aprendizaje por efectividad de acciones.

48. Conexión con otros anexos

Próximo anexo Qué recibe desde Anexo 29
Anexo 21 — Alertas FARO Alertas que pueden generar acciones.
Anexo 22 — Biblioteca de tensiones Tensiones que requieren acciones.
Anexo 23 — Diagnóstico ejecutivo Diagnósticos que originan acciones.
Anexo 24 — Confianza del diagnóstico Confianza mínima para crear o sugerir acción.
Anexo 25 — Priorización ejecutiva Prioridad y vencimiento de acciones.
Anexo 26 — Recomendaciones FARO Recomendaciones traducidas a acciones.
Anexo 27 — Simulación de escenarios Escenarios aprobados que generan acciones.
Anexo 28 — FARO Action Guide Guías que se convierten en acciones concretas.
Anexo 30 — Responsables y RACI Dueños, aprobadores, consultados e informados.
Anexo 31 — Workflow y escalamiento Seguimiento, vencimientos y escalamiento.
Anexo 32 — Evidencia y cierre Evidencia requerida para cerrar acciones.
Anexo 35 — FARO Score Impacto de acciones abiertas, vencidas o resueltas.
Anexo 36 — Aprendizaje Resultado real de acciones para mejorar futuras decisiones.
Anexo 37Recalibración Ajuste de acciones según efectividad histórica.

La Biblioteca de Acciones FARO define las acciones concretas que el sistema puede crear o sugerir a partir de alertas, tensiones, diagnósticos, recomendaciones y Action Guides. Cada acción debe tener responsable, prioridad, vencimiento, evidencia, KPI afectado, criterio de cierre, seguimiento e impacto en FARO Score.

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