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

Anexo 17 · Biblioteca de KPIs

Etapa: Fases 5.1 y 5.2
NDA OBLIGATORIO ACTIVO PROPIO

ANEXO 17

Biblioteca de KPIs FARO

Este anexo corresponde a la Fase 5 — Medición, etapa “Biblioteca de KPIs”. Es una de las piezas centrales de FARO Connect, porque define qué se mide, cómo se mide, con qué fórmula, desde qué fuente, con qué frecuencia, quién responde y qué decisión habilita.


1. Objetivo del anexo

El objetivo de la Biblioteca de KPIs FARO es construir una base ordenada, técnica y ejecutiva de indicadores que permita medir la empresa de forma coherente.

La pregunta central es:

¿Qué indicadores necesita FARO para entender si la empresa está sana, tensionada o perdiendo control?

Un KPI en FARO no debe ser solo un número bonito en una pantalla.

Debe tener:

nombre
objetivo
fórmula
fuente de datos
área responsable
frecuencia
umbral
interpretación
riesgo si se desvía
tensiones relacionadas
acciones sugeridas
impacto en FARO Score

Porque medir por medir es deporte corporativo. FARO mide para dirigir.


2. Tesis del Anexo 17

La tesis es:

FARO Connect no puede detectar tensiones, generar alertas, recomendar acciones ni calcular score si antes no tiene una biblioteca sólida de KPIs.

Los KPIs son la base de la lectura ejecutiva.

La cadena es:

Datos normalizados
→ KPIs
→ Señales
→ Reglas
→ Alertas
→ Tensiones
→ Diagnóstico
→ Prioridad
→ Acción
→ Seguimiento
→ FARO Score

Sin KPIs bien definidos, todo lo demás queda flojo.

Ejemplo:

Si no se mide margen bruto:
FARO no puede detectar margen deteriorado.

Si no se mide días de cobranza:
FARO no puede detectar caja débil.

Si no se mide stock crítico:
FARO no puede anticipar quiebres.

Si no se mide cumplimiento de acciones:
FARO no puede saber si la empresa ejecuta.

3. Qué es un KPI para FARO

Para FARO, un KPI es una unidad de medición ejecutiva.

No es solo una métrica.

Un KPI debe conectar:

Dato
+ fórmula
+ área
+ responsable
+ objetivo
+ umbral
+ lectura
+ tensión posible
+ acción posible
+ impacto en score

Ejemplo:

{
  "kpi_code": "gross_margin_rate",
  "nombre": "Margen bruto",
  "area": "Comercial / Finanzas",
  "formula": "(ventas_netas - costo_ventas) / ventas_netas",
  "fuentes": ["ventas", "costos", "productos"],
  "responsable": "Gerente Comercial",
  "consultados": ["Finanzas", "Compras"],
  "frecuencia": "diaria / semanal",
  "umbral_rojo": "< 20%",
  "umbral_amarillo": "20% - 25%",
  "umbral_verde": "> 25%",
  "tensiones_relacionadas": [
    "margen_deteriorado",
    "crecimiento_no_rentable",
    "comision_desalineada"
  ],
  "acciones_sugeridas": [
    "auditar_descuentos",
    "revisar_costos",
    "actualizar_politica_comercial"
  ]
}

4. Diferencia entre métrica, KPI y KPI FARO

Concepto Qué es Ejemplo
Métrica Dato medido. Ventas del mes.
KPI Indicador clave para gestión. Margen bruto.
KPI FARO Indicador con fórmula, fuente, responsable, umbral, tensión y acción. Margen bruto con alerta, responsable y acción sugerida.

Un KPI FARO no termina en el número. Termina en una decisión o acción.


5. Volumen recomendado de KPIs FARO

Para una primera biblioteca seria:

300 a 400 KPIs iniciales

Escalable a:

1.000+ KPIs

Distribución sugerida:

Familia KPI Cantidad inicial Escalable
Comercial 50-80 200+
Finanzas 50-80 200+
Stock 40-70 150+
Compras 30-60 150+
RRHH 30-60 150+
Operaciones 40-70 200+
Dirección / Workflow 30-60 150+
Clientes 30-50 150+
Proveedores 20-40 100+
Industria específica 50-150 500+

La clave no es tener mil KPIs desde el día uno. La clave es tener los primeros 50 bien elegidos. El resto se escala.


6. Estructura estándar de un KPI FARO

Cada KPI debería tener esta ficha:

{
  "kpi_code": "discount_rate",
  "nombre": "Descuento promedio",
  "descripcion": "Mide el porcentaje promedio de descuento aplicado sobre precio de lista.",
  "area": "Comercial",
  "modulo": "Comercial",
  "formula": "descuento_total / venta_lista_total",
  "fuentes": ["fact_sales", "dim_product", "dim_employee"],
  "dimensiones": ["producto", "cliente", "vendedor", "sucursal", "canal"],
  "frecuencia": "diaria",
  "responsable": "Gerente Comercial",
  "aprobador": "Dirección",
  "umbral_verde": "<= 6%",
  "umbral_amarillo": "6% - 10%",
  "umbral_rojo": "> 10%",
  "tensiones_relacionadas": [
    "margen_deteriorado",
    "crecimiento_no_rentable"
  ],
  "acciones_sugeridas": [
    "auditar_descuentos_altos",
    "revisar_politica_de_aprobacion"
  ],
  "impacto_score": "comercial",
  "nivel": "Base / Pro"
}

7. Campos obligatorios por KPI

Campo Para qué sirve
Código KPI Identificador único.
Nombre Lectura humana.
Área Quién lo gestiona.
Módulo Dónde vive en FARO.
Fórmula Cómo se calcula.
Fuente de datos De dónde sale.
Dimensiones Por dónde se puede analizar.
Frecuencia Cada cuánto se mide.
Responsable Quién responde.
Umbral Cuándo está bien, alerta o crítico.
Tensión relacionada Qué contradicción puede activar.
Acción sugerida Qué hacer si se desvía.
Impacto en Score Cómo afecta FARO Score.

8. Categorías de KPIs FARO

8.1 KPIs de resultado

Miden qué pasó.

ventas
margen
rentabilidad
caja
stock
gastos
productividad
cumplimiento

Ejemplo:

Ventas netas del mes.
Margen bruto.
Caja disponible.
Stock valorizado.

8.2 KPIs de tendencia

Miden cómo viene cambiando.

variación de ventas
variación de margen
variación de gastos
variación de cobranza
variación de stock crítico

Ejemplo:

Margen bruto cae 7 puntos contra mes anterior.

8.3 KPIs de riesgo

Miden probabilidad de problema.

mora
stock crítico
cliente riesgoso
proveedor incumplidor
tareas vencidas
dependencia de persona clave

8.4 KPIs de ejecución

Miden si la empresa hace lo que decide.

acciones cerradas
acciones vencidas
tiempo de cierre
reincidencia
escalamientos
cumplimiento por responsable

8.5 KPIs de calidad de datos

Miden si FARO puede confiar en la información.

completitud
consistencia
trazabilidad
actualización
duplicados
calidad por módulo

9. KPIs comerciales

9.1 KPIs comerciales base

KPI Fórmula Lectura
Ventas netas suma de ventas netas Volumen real vendido.
Margen bruto (ventas netas - costo) / ventas netas Rentabilidad comercial.
Descuento promedio descuento total / venta lista Presión comercial sobre precio.
Ticket promedio ventas netas / cantidad de operaciones Valor promedio por operación.
Venta por vendedor ventas netas / vendedor Producción comercial individual.
Margen por vendedor margen bruto por vendedor Calidad de venta por vendedor.
Venta por cliente ventas netas por cliente Concentración comercial.
Venta por producto ventas netas por producto Mix comercial.
Conversión comercial ventas cerradas / oportunidades Efectividad comercial.
Comisión sobre margen comisión / margen bruto generado Calidad del incentivo.

9.2 Fórmula: margen bruto

Margen bruto = (ventas_netas - costo_ventas) / ventas_netas
def margen_bruto(ventas_netas, costo_ventas):
    if ventas_netas == 0:
        return 0
    return (ventas_netas - costo_ventas) / ventas_netas

9.3 Fórmula: descuento promedio

Descuento promedio = descuento_total / venta_lista_total
def descuento_promedio(venta_lista_total, venta_neta_total):
    if venta_lista_total == 0:
        return 0
    descuento_total = venta_lista_total - venta_neta_total
    return descuento_total / venta_lista_total

9.4 Tensiones comerciales asociadas

KPI Tensión posible
Ventas suben + margen baja Crecimiento no rentable.
Descuento promedio alto Margen deteriorado.
Comisión alta + margen bajo Comisión desalineada.
Venta por cliente alta + mora alta Cliente grande riesgoso.
Venta de productos bajo margen sube Mix comercial débil.

10. KPIs financieros

10.1 KPIs financieros base

KPI Fórmula Lectura
Caja disponible saldo bancos + efectivo Liquidez inmediata.
Días de cobranza promedio días entre venta y cobro Velocidad de recuperación de caja.
Mora total suma deuda vencida Riesgo financiero.
Mora % deuda vencida / cuentas por cobrar Calidad de cartera.
Cuentas por cobrar suma saldos pendientes Caja futura.
Cuentas por pagar suma obligaciones pendientes Compromiso financiero.
Gasto sobre ventas gastos operativos / ventas netas Peso de estructura.
Flujo operativo cobros operativos - pagos operativos Salud de caja operativa.
Rentabilidad operativa resultado operativo / ventas Resultado real del negocio.
Endeudamiento operativo deuda / ventas o deuda / EBITDA Riesgo financiero.

10.2 Fórmula: días de cobranza

Días de cobranza = fecha_cobro - fecha_venta
def dias_cobranza(fecha_venta, fecha_cobro):
    return (fecha_cobro - fecha_venta).days

Promedio:

def promedio_dias_cobranza(cobranzas):
    if not cobranzas:
        return 0
    return sum(cobranzas) / len(cobranzas)

10.3 Fórmula: gasto sobre ventas

Gasto sobre ventas = gastos_operativos / ventas_netas
def gasto_sobre_ventas(gastos_operativos, ventas_netas):
    if ventas_netas == 0:
        return 0
    return gastos_operativos / ventas_netas

10.4 Tensiones financieras asociadas

KPI Tensión posible
Ventas altas + caja baja Caja débil con ventas altas.
Días de cobranza suben Cobranza lenta.
Gastos suben más que ventas Estructura sobredimensionada.
Mora alta en clientes grandes Cliente grande riesgoso.
Pagos urgentes + caja baja Estrés financiero operativo.

11. KPIs de stock

11.1 KPIs base de stock

KPI Fórmula Lectura
Stock actual cantidad disponible Existencia real.
Stock valorizado stock × costo unitario Capital inmovilizado.
Rotación de stock costo ventas / stock promedio Velocidad de movimiento.
Días de inventario stock actual / venta promedio diaria Cobertura.
Stock crítico productos bajo mínimo Riesgo de quiebre.
Stock inmovilizado productos sin movimiento / stock total Capital parado.
Quiebre de stock productos sin disponibilidad Pérdida potencial de ventas.
Exactitud de inventario coincidencia físico vs sistema Confiabilidad.
Cobertura por producto stock / demanda diaria Días disponibles.
Stock por sucursal stock segmentado por unidad Gestión territorial.

11.2 Fórmula: rotación de stock

Rotación de stock = costo de ventas / stock promedio
def rotacion_stock(costo_ventas, stock_promedio):
    if stock_promedio == 0:
        return 0
    return costo_ventas / stock_promedio

11.3 Fórmula: días de cobertura

Días de cobertura = stock_actual / venta_promedio_diaria
def dias_cobertura(stock_actual, venta_promedio_diaria):
    if venta_promedio_diaria == 0:
        return None
    return stock_actual / venta_promedio_diaria

11.4 Fórmula: stock crítico

def es_stock_critico(stock_actual, stock_minimo):
    return stock_actual < stock_minimo

Con plazo proveedor:

def evaluar_stock_critico(stock_actual, venta_promedio_diaria, plazo_reposicion):
    if venta_promedio_diaria == 0:
        return False

    dias_cobertura = stock_actual / venta_promedio_diaria
    return dias_cobertura < plazo_reposicion

11.5 Tensiones de stock asociadas

KPI Tensión posible
Stock crítico alto Stock crítico comercial.
Stock valorizado alto + rotación baja Stock inmovilizado.
Stock total alto + quiebres altos Stock mal compuesto.
Compras urgentes altas Compras reactivas.
Diferencia físico-sistema alta Baja confiabilidad de inventario.

12. KPIs de compras

12.1 KPIs base de compras

KPI Fórmula Lectura
Compras totales suma compras Volumen comprado.
Precio promedio de compra total comprado / unidades Costo de reposición.
Variación de costo costo actual vs costo anterior Presión sobre margen.
Plazo promedio proveedor días entre orden y recepción Velocidad de abastecimiento.
Cumplimiento proveedor entregas en plazo / entregas totales Calidad del proveedor.
Compras urgentes compras urgentes / compras totales Planificación débil.
Dependencia proveedor compras proveedor / compras totales Riesgo de concentración.
Órdenes pendientes órdenes no recibidas Riesgo operativo.
Recepción con diferencia recepciones observadas / total Problemas de control.
Ahorro por negociación precio lista - precio negociado Gestión de compras.

12.2 Fórmula: cumplimiento proveedor

Cumplimiento proveedor = entregas_en_plazo / entregas_totales
def cumplimiento_proveedor(entregas_en_plazo, entregas_totales):
    if entregas_totales == 0:
        return 0
    return entregas_en_plazo / entregas_totales

12.3 Fórmula: dependencia proveedor

Dependencia proveedor = compras_al_proveedor / compras_totales
def dependencia_proveedor(compras_proveedor, compras_totales):
    if compras_totales == 0:
        return 0
    return compras_proveedor / compras_totales

12.4 Tensiones asociadas

KPI Tensión posible
Cumplimiento proveedor bajo Proveedor crítico.
Dependencia alta Riesgo de abastecimiento.
Compras urgentes altas Compras reactivas.
Costo de compra sube Margen futuro en riesgo.
Órdenes pendientes críticas Stock crítico futuro.

13. KPIs de RRHH

13.1 KPIs base de RRHH

KPI Fórmula Lectura
Dotación total cantidad empleados Tamaño de estructura.
Costo laboral total sueldos + cargas + variables Peso de personas.
Costo laboral sobre ventas costo laboral / ventas Eficiencia de estructura.
Productividad por empleado ventas o tareas / empleado Producción por persona.
Ausentismo horas ausentes / horas esperadas Disponibilidad del equipo.
Rotación de personal bajas / dotación promedio Estabilidad.
Comisiones totales suma comisiones Costo variable comercial.
Comisión sobre margen comisión / margen generado Calidad del incentivo.
Tareas cumplidas por responsable tareas cerradas / asignadas Ejecución.
Dependencia de persona clave procesos críticos concentrados Riesgo organizativo.

13.2 Fórmula: costo laboral sobre ventas

Costo laboral sobre ventas = costo_laboral_total / ventas_netas
def costo_laboral_sobre_ventas(costo_laboral_total, ventas_netas):
    if ventas_netas == 0:
        return 0
    return costo_laboral_total / ventas_netas

13.3 Fórmula: comisión sobre margen

Comisión sobre margen = comision_pagada / margen_bruto_generado
def comision_sobre_margen(comision_pagada, margen_generado):
    if margen_generado == 0:
        return 0
    return comision_pagada / margen_generado

13.4 Tensiones asociadas

KPI Tensión posible
Costo laboral sobre ventas alto Costo laboral desalineado.
Comisión alta + margen bajo Comisión desalineada.
Productividad baja Productividad invisible.
Ausentismo alto Ausentismo operativo.
Procesos concentrados Dependencia de persona clave.

14. KPIs de operaciones

14.1 KPIs base de operaciones

KPI Fórmula Lectura
Tareas abiertas cantidad tareas pendientes Carga operativa.
Tareas vencidas vencidas / total Incumplimiento.
Tiempo promedio de cierre fecha cierre - fecha creación Velocidad de ejecución.
Cumplimiento SLA procesos en plazo / procesos totales Calidad operativa.
Reclamos abiertos reclamos sin resolver Riesgo cliente.
Reclamos reincidentes reclamos repetidos / total Problema de causa raíz.
Entregas a tiempo entregas en plazo / entregas totales Cumplimiento operativo.
Reprocesos tareas reprocesadas / total Calidad de proceso.
Capacidad utilizada carga utilizada / capacidad total Saturación.
Cuellos de botella tareas acumuladas por etapa Fricción operativa.

14.2 Fórmula: cumplimiento de tareas

Cumplimiento = tareas_cerradas_en_fecha / tareas_asignadas
def cumplimiento_tareas(tareas_cerradas_en_fecha, tareas_asignadas):
    if tareas_asignadas == 0:
        return 1
    return tareas_cerradas_en_fecha / tareas_asignadas

14.3 Fórmula: tasa de vencimiento

Tasa de vencimiento = tareas_vencidas / tareas_totales
def tasa_vencimiento(tareas_vencidas, tareas_totales):
    if tareas_totales == 0:
        return 0
    return tareas_vencidas / tareas_totales

14.4 Tensiones asociadas

KPI Tensión posible
Tareas vencidas altas Dirección sin ejecución.
Reclamos reincidentes Operación-cliente desalineada.
Tiempo de cierre alto Cuello de botella.
SLA bajo Sobrecarga operativa.
Reprocesos altos Baja calidad operativa.

15. KPIs de dirección y workflow

15.1 KPIs base de dirección

KPI Fórmula Lectura
Decisiones tomadas cantidad decisiones Volumen directivo.
Acciones creadas acciones derivadas Bajada a ejecución.
Acciones cerradas acciones cerradas / creadas Cumplimiento.
Acciones vencidas vencidas / creadas Riesgo de ejecución.
Tiempo de cierre promedio días cierre Velocidad.
Reincidencia de problemas problemas repetidos / total Aprendizaje débil.
Acciones sin responsable acciones sin dueño / total Accountability débil.
Acciones sin KPI asociado acciones sin KPI / total Acción sin medición.
Escalamientos tareas escaladas / críticas Gestión de bloqueo.
FARO Score modelo compuesto Salud ejecutiva.

15.2 Fórmula: ratio de ejecución directiva

Ratio de ejecución = acciones_cerradas / decisiones_tomadas
def ratio_ejecucion(decisiones_tomadas, acciones_cerradas):
    if decisiones_tomadas == 0:
        return 0
    return acciones_cerradas / decisiones_tomadas

15.3 Fórmula: acciones sin responsable

Acciones sin responsable = acciones_sin_responsable / acciones_totales
def acciones_sin_responsable(acciones_sin_responsable, acciones_totales):
    if acciones_totales == 0:
        return 0
    return acciones_sin_responsable / acciones_totales

15.4 Tensiones asociadas

KPI Tensión posible
Muchas decisiones + pocas acciones Dirección sin ejecución.
Acciones vencidas altas Accountability débil.
Problemas reincidentes Aprendizaje débil.
Acciones sin KPI Gestión sin medición.
Escalamientos altos Cuello de botella directivo.

16. KPIs de clientes

16.1 KPIs base de clientes

KPI Fórmula Lectura
Ventas por cliente suma ventas cliente Volumen.
Margen por cliente margen cliente / ventas cliente Rentabilidad.
Mora por cliente deuda vencida cliente Riesgo.
Días de cobranza cliente promedio días cobro Calidad de cobro.
Frecuencia de compra compras por período Fidelidad.
Ticket promedio cliente ventas / operaciones Valor.
Reclamos por cliente reclamos / operaciones Calidad percibida.
Cliente concentrado ventas cliente / ventas totales Dependencia comercial.
Rentabilidad ajustada por cobranza margen - costo financiero Rentabilidad real.
Riesgo cliente FARO score compuesto Riesgo integral.

16.2 Fórmula: concentración de cliente

Concentración cliente = ventas_cliente / ventas_totales
def concentracion_cliente(ventas_cliente, ventas_totales):
    if ventas_totales == 0:
        return 0
    return ventas_cliente / ventas_totales

16.3 Tensión asociada

KPI Tensión posible
Cliente vende mucho + margen bajo Cliente grande poco rentable.
Cliente vende mucho + mora alta Cliente grande riesgoso.
Reclamos altos Cliente en riesgo.
Concentración alta Dependencia comercial.

17. KPIs de proveedores

17.1 KPIs base de proveedores

KPI Fórmula Lectura
Compras por proveedor compras proveedor / total Dependencia.
Cumplimiento en plazo entregas en plazo / total Confiabilidad.
Variación precio proveedor precio actual vs anterior Presión de costo.
Reclamos proveedor entregas observadas / total Calidad.
Plazo promedio entrega promedio días entrega Abastecimiento.
Dependencia crítica compras proveedor crítico / total Riesgo.
Proveedor alternativo disponible sí/no Resiliencia.
Score proveedor FARO compuesto Salud de relación.

17.2 Fórmula: score proveedor simple

Score proveedor =
cumplimiento × 40%
+ calidad × 25%
+ estabilidad_precio × 20%
+ plazo × 15%
def score_proveedor(cumplimiento, calidad, estabilidad_precio, plazo):
    return round(
        cumplimiento * 0.40 +
        calidad * 0.25 +
        estabilidad_precio * 0.20 +
        plazo * 0.15,
        2
    )

18. KPIs de calidad de datos

18.1 KPIs base

KPI Fórmula Lectura
Completitud campos completos / requeridos Cobertura.
Validez registros válidos / totales Formato correcto.
Consistencia coincidencias / comparaciones Cruce entre fuentes.
Trazabilidad registros con origen / total Auditoría.
Duplicados duplicados / total Limpieza.
Actualización registros actualizados / total Frescura del dato.
Calidad módulo score compuesto Preparación del módulo.

18.2 Fórmula: score calidad de datos

Score calidad =
completitud × 25%
+ validez × 20%
+ consistencia × 20%
+ trazabilidad × 15%
+ actualización × 10%
+ unicidad × 10%
def score_calidad_datos(completitud, validez, consistencia, trazabilidad, actualizacion, unicidad):
    return round(
        completitud * 0.25 +
        validez * 0.20 +
        consistencia * 0.20 +
        trazabilidad * 0.15 +
        actualizacion * 0.10 +
        unicidad * 0.10,
        2
    )

19. KPIs por industria

19.1 Construcción / insumos

KPIs prioritarios:

ventas netas
margen bruto
descuento promedio
días de cobranza
stock crítico
stock inmovilizado
rotación
comisión sobre margen
cliente grande riesgoso
compras urgentes
costo logístico sobre venta
canjes pendientes de evaluación
referidos pagados

KPIs específicos:

KPI Fórmula / lectura
Margen por familia de material margen por cemento, hierro, sanitarios, grifería, etc.
Stock crítico por producto clave productos alta rotación bajo mínimo.
Canje sobre ventas ventas por canje / ventas totales.
Referidos sobre margen comisión referido / margen generado.
Comisión ajustada por cobranza comisión ponderada por cobro efectivo.

19.2 Retail

ticket promedio
ventas por sucursal
margen por categoría
rotación
quiebre producto estrella
promoción sobre margen
merma
devoluciones
conversión
stock por sucursal

19.3 Salud

ocupación
turnos utilizados
ausentismo paciente
tiempo de espera
costo por prestación
margen por servicio
productividad profesional
reclamos
uso de insumos críticos

19.4 Logística

entregas a tiempo
costo por km
costo por entrega
combustible por km
utilización de flota
cumplimiento SLA
reclamos por entrega
rentabilidad por cliente
mantenimiento preventivo

19.5 Hotelería

ocupación
ADR
RevPAR
cancelaciones
costo por habitación ocupada
margen por canal
reclamos
tiempo de respuesta
mantenimiento por habitación

Fórmula:

RevPAR = ADR × ocupación
def revpar(adr, ocupacion):
    return adr * ocupacion

20. Umbrales de KPIs

Cada KPI debe tener umbrales.

Ejemplo: margen bruto para insumos de construcción.

Estado Umbral
Verde > 25%
Amarillo 20% - 25%
Rojo < 20%

Ejemplo: descuento promedio.

Estado Umbral
Verde <= 6%
Amarillo 6% - 10%
Rojo > 10%

Código:

def evaluar_umbral(valor, verde_min=None, amarillo_min=None, rojo_max=None):
    if verde_min is not None and valor >= verde_min:
        return "verde"
    if amarillo_min is not None and valor >= amarillo_min:
        return "amarillo"
    return "rojo"

21. KPI con confianza

FARO no debe mostrar solo el valor. También debe mostrar confianza.

Ejemplo:

{
  "kpi": "margen_bruto",
  "value": 0.21,
  "status": "rojo",
  "confidence": 0.78,
  "warning": "Costo unitario incompleto en 18% de registros"
}

La lectura sería:

Margen en rojo, pero con confianza media. Requiere completar costos para diagnóstico fuerte.

Esto es profesional. Lo otro es vender humo con decimales.


22. Cálculo de confianza del KPI

Confianza KPI =
calidad de datos × 40%
+ completitud de fuentes × 25%
+ trazabilidad × 20%
+ validación de fórmula × 15%
def confianza_kpi(calidad_datos, completitud_fuentes, trazabilidad, validacion_formula):
    return round(
        calidad_datos * 0.40 +
        completitud_fuentes * 0.25 +
        trazabilidad * 0.20 +
        validacion_formula * 0.15,
        2
    )

23. Tabla SQL de biblioteca de KPIs

CREATE TABLE kpi_library (
    kpi_code TEXT PRIMARY KEY,
    name TEXT NOT NULL,
    description TEXT,
    area_id TEXT,
    module TEXT,
    formula_text TEXT,
    formula_sql TEXT,
    frequency TEXT,
    responsible_role TEXT,
    approver_role TEXT,
    dimensions JSONB,
    data_sources JSONB,
    thresholds JSONB,
    related_tensions JSONB,
    suggested_actions JSONB,
    score_impact JSONB,
    industry_scope JSONB,
    level TEXT,
    active BOOLEAN DEFAULT true,
    created_at TIMESTAMP DEFAULT now(),
    updated_at TIMESTAMP DEFAULT now()
);

24. Tabla SQL de resultados KPI

CREATE TABLE kpi_results (
    kpi_result_id TEXT PRIMARY KEY,
    kpi_code TEXT NOT NULL,
    company_id TEXT,
    branch_id TEXT,
    area_id TEXT,
    responsible_id TEXT,
    period_start DATE,
    period_end DATE,
    value NUMERIC,
    target NUMERIC,
    status TEXT,
    confidence NUMERIC,
    source_load_ids JSONB,
    calculated_at TIMESTAMP DEFAULT now()
);

25. Ejemplo SQL: margen bruto

SELECT
    branch_id,
    DATE_TRUNC('month', sale_date) AS period,
    SUM(net_amount) AS ventas_netas,
    SUM(total_cost) AS costo_total,
    CASE 
        WHEN SUM(net_amount) = 0 THEN 0
        ELSE (SUM(net_amount) - SUM(total_cost)) / SUM(net_amount)
    END AS gross_margin_rate
FROM fact_sales
GROUP BY branch_id, DATE_TRUNC('month', sale_date);

26. Ejemplo SQL: días de cobranza promedio

SELECT
    customer_id,
    AVG(collection_date - sale_date) AS avg_days_to_collect
FROM fact_collections
WHERE collection_date IS NOT NULL
GROUP BY customer_id;

27. Ejemplo SQL: acciones vencidas

SELECT
    responsible_id,
    COUNT(*) FILTER (WHERE status <> 'closed' AND due_date < CURRENT_DATE) AS overdue_actions,
    COUNT(*) AS total_actions,
    CASE
        WHEN COUNT(*) = 0 THEN 0
        ELSE COUNT(*) FILTER (WHERE status <> 'closed' AND due_date < CURRENT_DATE)::NUMERIC / COUNT(*)
    END AS overdue_rate
FROM action_workflow
GROUP BY responsible_id;

28. Relación KPI → señal → alerta → tensión

Ejemplo:

KPI:
Margen bruto = 21%

Señal:
Margen cayó 7 puntos.

Regla:
Si margen < 22% y descuento > 10%, alerta crítica.

Alerta:
Margen crítico con descuento alto.

Tensión:
Crecimiento no rentable.

Acción:
Auditar descuentos mayores al 8%.

Esto demuestra que el KPI no queda aislado. Alimenta dirección.


29. KPI y FARO Score

Cada KPI puede afectar el FARO Score.

Ejemplo:

KPI Impacto score
Margen bruto en rojo -6 puntos
Días de cobranza críticos -5 puntos
Stock crítico alto -5 puntos
Acciones vencidas críticas -4 puntos
Calidad de datos baja -3 puntos
Acciones cerradas en fecha +3 puntos
Margen recuperado +4 puntos

Código simple:

def impacto_kpi_score(kpi_status, peso):
    if kpi_status == "verde":
        return peso
    if kpi_status == "amarillo":
        return 0
    if kpi_status == "rojo":
        return -peso
    return 0

30. Gobernanza de KPIs

Los KPIs deben tener dueños. Si no, nadie responde.

KPI Responsable Aprobador
Ventas netas Comercial Dirección
Margen bruto Comercial + Finanzas Dirección
Días de cobranza Finanzas Dirección
Stock crítico Stock Dirección / Operaciones
Compras urgentes Compras Dirección
Comisión sobre margen Comercial + RRHH Dirección
Acciones vencidas Responsable de área Gerencia General
FARO Score Dirección Directorio

Regla sana:

Todo KPI relevante debe tener dueño. KPI sin dueño es decoración.


31. Frecuencia de medición

KPI Frecuencia recomendada
Ventas diaria
Margen diaria / semanal
Stock crítico diaria
Caja diaria
Cobranza diaria / semanal
Gastos semanal / mensual
RRHH semanal / mensual
Acciones tiempo real / diaria
FARO Score diaria / semanal
Calidad de datos por carga / semanal

32. Niveles FARO por KPI

Nivel Tipo de KPIs
Base / Lite ventas, margen, caja, stock, acciones simples.
Pro KPIs por área, sucursal, responsable, alertas y tensiones iniciales.
Enterprise KPIs multiárea, multiempresa, score por módulo, workflows.
Neural KPIs predictivos, relaciones avanzadas, simulación, aprendizaje.

33. KPIs que conviene activar primero

Para una implementación inicial sólida:

1. Ventas netas
2. Margen bruto
3. Descuento promedio
4. Días de cobranza
5. Mora total
6. Stock crítico
7. Rotación de stock
8. Stock inmovilizado
9. Comisión sobre margen
10. Acciones vencidas
11. Cumplimiento de acciones
12. Gasto sobre ventas
13. Caja disponible
14. Compras urgentes
15. Cumplimiento proveedor

Con esos 15, FARO ya puede detectar varias tensiones serias.


34. Ejemplo completo: KPI Margen bruto

Ficha

{
  "kpi_code": "gross_margin_rate",
  "nombre": "Margen bruto",
  "area": "Comercial / Finanzas",
  "formula": "(ventas_netas - costo_ventas) / ventas_netas",
  "fuentes": ["fact_sales", "dim_product"],
  "dimensiones": ["producto", "cliente", "vendedor", "sucursal", "canal"],
  "frecuencia": "diaria / semanal",
  "responsable": "Gerente Comercial",
  "consultados": ["Finanzas", "Compras"],
  "umbral_verde": "> 25%",
  "umbral_amarillo": "20% - 25%",
  "umbral_rojo": "< 20%",
  "tensiones": [
    "margen_deteriorado",
    "crecimiento_no_rentable",
    "comision_desalineada"
  ],
  "acciones": [
    "auditar_descuentos",
    "revisar_costos",
    "ajustar_politica_de_precios"
  ]
}

Lectura ejecutiva

El margen bruto indica si la empresa está vendiendo con rentabilidad suficiente. Si cae mientras las ventas suben, FARO debe analizar descuentos, costos, mix de productos, comisiones y cobranza.

35. Ejemplo completo: KPI Stock crítico

Ficha

{
  "kpi_code": "critical_stock_rate",
  "nombre": "Stock crítico",
  "area": "Stock / Compras",
  "formula": "productos_bajo_minimo / productos_totales",
  "fuentes": ["fact_inventory", "dim_product", "fact_sales"],
  "dimensiones": ["producto", "categoría", "sucursal", "proveedor"],
  "frecuencia": "diaria",
  "responsable": "Responsable de Stock",
  "consultados": ["Compras", "Comercial"],
  "tensiones": [
    "stock_critico_comercial",
    "compras_reactivas",
    "proveedor_critico"
  ],
  "acciones": [
    "activar_reposicion",
    "buscar_proveedor_alternativo",
    "priorizar_compra_producto_clave"
  ]
}

36. Ejemplo completo: KPI Cumplimiento de acciones

Ficha

{
  "kpi_code": "action_completion_rate",
  "nombre": "Cumplimiento de acciones",
  "area": "Dirección / Workflow",
  "formula": "acciones_cerradas_en_fecha / acciones_asignadas",
  "fuentes": ["action_workflow"],
  "dimensiones": ["responsable", "área", "prioridad", "tensión"],
  "frecuencia": "diaria",
  "responsable": "Gerencia General",
  "tensiones": [
    "direccion_sin_ejecucion",
    "accountability_debil"
  ],
  "acciones": [
    "escalar_tareas_vencidas",
    "reasignar_responsable",
    "revisar_comite_de_seguimiento"
  ]
}

37. Riesgos si no existe biblioteca de KPIs

Riesgo Consecuencia
KPIs mal definidos Dirección mira números equivocados.
Fórmulas inconsistentes Cada área mide distinto.
Sin fuente clara No se puede auditar.
Sin responsable Nadie responde por el desvío.
Sin umbrales No se sabe cuándo actuar.
Sin tensión asociada El KPI no genera diagnóstico.
Sin acción sugerida El KPI no baja a ejecución.
Sin confianza FARO parece seguro aunque el dato sea débil.
Sin versionado No se sabe cuándo cambió la fórmula.

38. Versionado de KPIs

Las fórmulas pueden cambiar. FARO debe versionarlas.

Ejemplo:

Margen v1:
(ventas - costo) / ventas

Margen v2:
(ventas - costo - descuentos adicionales) / ventas

Margen v3:
margen ajustado por cobranza y comisión

Tabla sugerida:

CREATE TABLE kpi_formula_versions (
    version_id TEXT PRIMARY KEY,
    kpi_code TEXT NOT NULL,
    version TEXT NOT NULL,
    formula_text TEXT,
    formula_sql TEXT,
    active_from DATE,
    active_to DATE,
    changed_by TEXT,
    change_reason TEXT,
    created_at TIMESTAMP DEFAULT now()
);

39. Output final del Anexo 17

Al finalizar este anexo, FARO debe tener definido:

1. Biblioteca inicial de 300 a 400 KPIs.
2. Estructura estándar de ficha KPI.
3. Fórmulas por KPI.
4. Fuentes de datos por KPI.
5. Dimensiones de análisis.
6. Responsables y aprobadores.
7. Frecuencia de medición.
8. Umbrales verde / amarillo / rojo.
9. KPIs por área.
10. KPIs por industria.
11. KPIs por versión FARO.
12. Relación KPI → señal.
13. Relación KPI → alerta.
14. Relación KPI → tensión.
15. Relación KPI → acción.
16. Relación KPI → FARO Score.
17. Score de confianza de KPI.
18. Versionado de fórmulas.
19. Gobernanza de KPIs.
20. KPIs iniciales recomendados para MVP.

40. Conexión con otros anexos

Próximo anexo Qué recibe desde Anexo 17
Anexo 14Modelo ejecutivo FARO Datos estructurados para calcular KPIs.
Anexo 15 — Modelo por industria KPIs específicos por rubro.
Anexo 16 — Relaciones entre datos KPIs conectados entre sí.
Anexo 18 — Objetivos y umbrales Metas, rangos y semáforos por KPI.
Anexo 19 — Señales FARO Variaciones y movimientos relevantes de KPIs.
Anexo 20 — Reglas de negocio Condiciones que usan KPIs como input.
Anexo 21 — Alertas FARO Alertas disparadas por KPIs fuera de rango.
Anexo 22 — Biblioteca de tensiones Tensiones construidas con combinaciones de KPIs.
Anexo 24 — Confianza del diagnóstico Confianza según calidad del KPI.
Anexo 25 — Priorización ejecutiva Priorización según criticidad de KPIs.
Anexo 29 — Biblioteca de acciones Acciones sugeridas según KPI desviado.
Anexo 35 — FARO Score KPIs como insumo principal del score.
Anexo 37Recalibración Ajuste de fórmulas, pesos y umbrales.

La Biblioteca de KPIs FARO define qué mide el sistema, cómo lo mide, de dónde sale el dato, quién responde, qué umbral activa alerta, qué tensión puede detectar y qué acción puede recomendar. No es una lista de indicadores: es la base técnica para transformar datos en dirección ejecutiva.

Versión 1.0 · Última revisión: 2026-05-28 Anexo 17 de 40 · Fases 5.1 y 5.2