ANEXO 35
FARO Score
Este anexo corresponde a la Fase 9 — Comunicación ejecutiva, etapa “FARO Score”. Es la capa donde FARO Connect sintetiza el estado real de la empresa en un indicador ejecutivo, dinámico y explicable.
El FARO Score no debe ser un promedio decorativo. Debe ser una lectura ejecutiva comprimida.
FARO Score responde: qué tan bien está funcionando la empresa como sistema de dirección, ejecución y control.
1. Objetivo del anexo
El objetivo del Anexo 35 — FARO Score es definir cómo FARO resume en un solo indicador:
KPIs
calidad de datos
alertas
tensiones
diagnósticos
confianza
prioridades
acciones
workflow
evidencia
seguimiento
impacto real
riesgos futuros
Ejemplo:
FARO Score actual: 74
Lectura:
La empresa está en zona operativa razonable, pero todavía con tensión financiera. Mejoró ejecución y stock, pero la cobranza sigue afectando caja.
Esto permite que Dirección entienda rápidamente:
Estamos bien.
Estamos mejorando.
Estamos empeorando.
Dónde duele.
Qué lo explica.
Qué hacer ahora.
2. Tesis del Anexo 35
La tesis es:
FARO Score no mide actividad. Mide calidad de dirección.
No sirve un score que diga:
Ventas subieron, entonces estamos bien.
Porque puede pasar esto:
ventas suben,
margen baja,
cobranza empeora,
stock se tensiona,
comisiones suben,
acciones vencen.
En ese caso, la empresa no está mejor. Está creciendo con riesgo.
FARO Score debe leer la empresa como sistema:
resultado comercial
rentabilidad
caja
stock
personas
ejecución
riesgo
datos
aprendizaje
3. Qué es FARO Score
FARO Score es un indicador compuesto, de 0 a 100, que resume la salud ejecutiva de la empresa.
Debe considerar:
1. Performance de KPIs.
2. Severidad de alertas.
3. Tensiones activas.
4. Diagnósticos críticos.
5. Prioridades abiertas.
6. Acciones vencidas.
7. Acciones cerradas con evidencia.
8. Impacto real medido.
9. Calidad de datos.
10. Confianza del sistema.
11. Riesgos futuros.
Ejemplo JSON:
{
"faro_score": 74,
"level": "salud razonable con observaciones",
"trend": "+6",
"confidence": 0.81,
"main_drivers_positive": [
"acciones P1 cerradas",
"stock crítico reducido",
"descuento promedio bajó"
],
"main_drivers_negative": [
"cobranza lenta",
"caja por debajo del mínimo",
"calidad de costos media"
]
}
4. Qué NO debe ser FARO Score
FARO Score no debe ser:
un promedio simple de KPIs,
un semáforo bonito,
un número arbitrario,
una calificación sin explicación,
un índice fijo igual para todas las industrias,
una métrica manipulable por cerrar tareas sin evidencia,
un número generado libremente por IA.
Ejemplo incorrecto:
Score = promedio de ventas, margen, stock y caja.
Eso es peligroso.
Ejemplo correcto:
Score = lectura ponderada por área, criticidad, confianza, tensión, ejecución, evidencia e impacto.
5. Escala FARO Score
| Score | Estado | Lectura ejecutiva |
|---|---|---|
| 90-100 | Excelente | Empresa controlada, ejecución fuerte, bajo riesgo. |
| 80-89 | Muy bueno | Sistema sano con desvíos menores. |
| 70-79 | Bueno con observaciones | Funciona, pero hay tensiones a monitorear. |
| 60-69 | Riesgo medio | Hay problemas importantes que requieren acción. |
| 45-59 | Riesgo alto | Tensiones relevantes, ejecución o caja comprometida. |
| 30-44 | Crítico | Riesgo sistémico, Dirección debe intervenir. |
| 0-29 | Emergencia | Situación severa o datos muy débiles para dirigir. |
Versión simple:
80+ = dirección sana
70-79 = atención selectiva
60-69 = riesgo controlable
45-59 = riesgo alto
<45 = intervención directiva
6. Componentes principales del FARO Score
El Score debería dividirse en 8 grandes componentes.
| Componente | Peso sugerido | Qué mide |
|---|---|---|
| Resultado económico | 18% | Ventas, margen, rentabilidad. |
| Caja y finanzas | 18% | Liquidez, cobranza, mora, flujo. |
| Operación / stock | 14% | Stock crítico, rotación, compras, proveedores. |
| Clientes / mercado | 10% | Clientes, concentración, mora, canales. |
| Personas / incentivos | 10% | Productividad, comisiones, dotación, ausentismo. |
| Ejecución / workflow | 15% | Acciones, vencimientos, evidencia, cierres. |
| Riesgo / tensiones | 10% | Tensiones activas, severidad, recurrencia. |
| Calidad de datos / confianza | 5% | Confiabilidad de la lectura. |
Fórmula base:
FARO Score =
resultado económico × 18%
+ caja y finanzas × 18%
+ operación/stock × 14%
+ clientes/mercado × 10%
+ personas/incentivos × 10%
+ ejecución/workflow × 15%
+ riesgo/tensiones × 10%
+ calidad de datos × 5%
Código:
def faro_score_base(
resultado_economico,
caja_finanzas,
operacion_stock,
clientes_mercado,
personas_incentivos,
ejecucion_workflow,
riesgo_tensiones,
calidad_datos
):
return round(
resultado_economico * 0.18 +
caja_finanzas * 0.18 +
operacion_stock * 0.14 +
clientes_mercado * 0.10 +
personas_incentivos * 0.10 +
ejecucion_workflow * 0.15 +
riesgo_tensiones * 0.10 +
calidad_datos * 0.05,
2
)
7. Score por área
FARO debe calcular primero scores parciales.
Score Comercial
Score Financiero
Score Stock / Compras
Score RRHH
Score Operaciones
Score Dirección / Ejecución
Score Data Quality
Ejemplo:
| Área | Score | Lectura |
|---|---|---|
| Comercial | 68 | Ventas suben, margen bajo. |
| Finanzas | 59 | Caja y cobranza tensionadas. |
| Stock | 76 | Mejoró cobertura, aún hay críticos. |
| RRHH | 72 | Comisión pendiente de revisión. |
| Ejecución | 81 | Buen cierre de acciones. |
| Datos | 74 | Costos con observaciones. |
Lectura FARO:
El Score general está limitado principalmente por Finanzas y Comercial. La ejecución mejora, pero todavía no alcanza para normalizar caja y margen.
8. Score comercial
Debe medir:
ventas netas,
margen bruto,
descuento promedio,
mix de productos,
ventas cobradas,
rentabilidad por cliente,
rentabilidad por vendedor,
canales,
comisiones comerciales.
Fórmula sugerida:
Score Comercial =
ventas vs objetivo × 20%
+ margen bruto × 25%
+ descuento controlado × 20%
+ calidad de clientes × 15%
+ mix rentable × 10%
+ cobranza asociada × 10%
Código:
def score_comercial(
ventas_objetivo,
margen_bruto,
descuento_controlado,
calidad_clientes,
mix_rentable,
cobranza_asociada
):
return round(
ventas_objetivo * 0.20 +
margen_bruto * 0.25 +
descuento_controlado * 0.20 +
calidad_clientes * 0.15 +
mix_rentable * 0.10 +
cobranza_asociada * 0.10,
2
)
Ejemplo de lectura:
Comercial vendió más, pero el Score baja porque el margen y los descuentos deterioraron la calidad de venta.
9. Score financiero
Debe medir:
caja disponible,
cobranza,
mora,
flujo operativo,
pagos próximos,
endeudamiento,
gastos,
canjes,
riesgo financiero.
Fórmula:
Score Financiero =
caja disponible × 25%
+ cobranza × 20%
+ mora controlada × 15%
+ flujo operativo × 15%
+ gasto controlado × 10%
+ riesgo financiero × 15%
Código:
def score_financiero(
caja_disponible,
cobranza,
mora_controlada,
flujo_operativo,
gasto_controlado,
riesgo_financiero
):
return round(
caja_disponible * 0.25 +
cobranza * 0.20 +
mora_controlada * 0.15 +
flujo_operativo * 0.15 +
gasto_controlado * 0.10 +
riesgo_financiero * 0.15,
2
)
Regla:
Si caja está crítica, el Score financiero no puede ser alto aunque las ventas sean buenas.
10. Score stock / compras
Debe medir:
stock crítico,
días de cobertura,
rotación,
stock inmovilizado,
proveedores,
compras urgentes,
órdenes pendientes,
diferencias físico-sistema.
Fórmula:
Score Stock =
stock crítico controlado × 25%
+ rotación sana × 20%
+ stock inmovilizado bajo × 15%
+ cobertura adecuada × 15%
+ cumplimiento proveedor × 15%
+ inventario confiable × 10%
Código:
def score_stock(
stock_critico_controlado,
rotacion_sana,
stock_inmovilizado_bajo,
cobertura_adecuada,
cumplimiento_proveedor,
inventario_confiable
):
return round(
stock_critico_controlado * 0.25 +
rotacion_sana * 0.20 +
stock_inmovilizado_bajo * 0.15 +
cobertura_adecuada * 0.15 +
cumplimiento_proveedor * 0.15 +
inventario_confiable * 0.10,
2
)
11. Score de ejecución / workflow
Este es clave. Mide si la empresa ejecuta.
Debe incluir:
acciones cerradas en plazo,
acciones vencidas,
acciones con evidencia,
acciones efectivas,
decisiones con acciones asociadas,
bloqueos,
escalamientos,
responsables sobrecargados.
Fórmula:
Score Ejecución =
cierre en plazo × 25%
+ evidencia válida × 20%
+ acciones efectivas × 25%
+ baja tasa de vencidas × 15%
+ decisiones con acción × 10%
+ baja sobrecarga × 5%
Código:
def score_ejecucion(
cierre_en_plazo,
evidencia_valida,
acciones_efectivas,
baja_tasa_vencidas,
decisiones_con_accion,
baja_sobrecarga
):
return round(
cierre_en_plazo * 0.25 +
evidencia_valida * 0.20 +
acciones_efectivas * 0.25 +
baja_tasa_vencidas * 0.15 +
decisiones_con_accion * 0.10 +
baja_sobrecarga * 0.05,
2
)
Lectura:
La empresa puede tener buenos KPIs, pero si no ejecuta acciones críticas, el Score debe bajar.
12. Score de tensiones
Las tensiones reducen el Score según severidad, confianza y recurrencia.
Ejemplo:
Crecimiento no rentable.
Caja débil.
Stock crítico.
Comisión desalineada.
Dirección sin ejecución.
Fórmula:
Penalización tensión =
severidad × 35%
+ recurrencia × 25%
+ impacto económico × 20%
+ áreas afectadas × 10%
+ confianza × 10%
Código:
def penalizacion_tension(
severidad,
recurrencia,
impacto_economico,
areas_afectadas,
confianza
):
return round(
severidad * 0.35 +
recurrencia * 0.25 +
impacto_economico * 0.20 +
areas_afectadas * 0.10 +
confianza * 0.10,
2
)
Aplicación:
def aplicar_penalizaciones(score_base, penalizaciones):
return max(0, round(score_base - sum(penalizaciones), 2))
Regla:
Una tensión sistémica debe pesar más que una alerta aislada.
13. Score de calidad de datos
El Score debe indicar si puede confiarse en los datos.
Score Data Quality =
completitud × 30%
+ trazabilidad × 25%
+ consistencia × 20%
+ actualización × 15%
+ unicidad/duplicados × 10%
Código:
def score_calidad_datos(
completitud,
trazabilidad,
consistencia,
actualizacion,
unicidad
):
return round(
completitud * 0.30 +
trazabilidad * 0.25 +
consistencia * 0.20 +
actualizacion * 0.15 +
unicidad * 0.10,
2
)
Ejemplo:
FARO Score: 74
Confianza del Score: media-alta, porque costos tiene datos incompletos en 12% de productos.
14. Confianza del FARO Score
El Score debe tener su propia confianza.
Confianza FARO Score =
calidad de datos general × 30%
+ cobertura de módulos críticos × 25%
+ confianza de KPIs críticos × 20%
+ actualización de fuentes × 15%
+ consistencia de tensiones × 10%
Código:
def confianza_faro_score(
calidad_datos_general,
cobertura_modulos,
confianza_kpis,
actualizacion_fuentes,
consistencia_tensiones
):
return round(
calidad_datos_general * 0.30 +
cobertura_modulos * 0.25 +
confianza_kpis * 0.20 +
actualizacion_fuentes * 0.15 +
consistencia_tensiones * 0.10,
2
)
Lectura:
| Confianza | Uso |
|---|---|
| 0.85-1.00 | Score fuerte. |
| 0.70-0.84 | Score confiable con observaciones. |
| 0.50-0.69 | Score orientativo. |
| <0.50 | No usar para decisión fuerte. |
15. Score bruto vs Score ajustado
FARO debería manejar dos valores:
Score bruto:
calculado con KPIs y componentes.
Score ajustado:
score bruto corregido por tensiones, confianza, acciones vencidas y riesgos críticos.
Ejemplo:
Score bruto: 78
Penalización por caja crítica: -6
Penalización por acción P1 vencida: -3
Ajuste por baja calidad de datos: -2
FARO Score final: 67
Código:
def faro_score_final(score_bruto, penalizaciones, bonificaciones=None):
bonificaciones = bonificaciones or []
score = score_bruto - sum(penalizaciones) + sum(bonificaciones)
return max(0, min(100, round(score, 2)))
16. Penalizaciones críticas
Algunos eventos deben penalizar fuerte.
| Evento | Penalización sugerida |
|---|---|
| Caja bajo mínimo operativo | -5 a -12 |
| Acción P1 vencida | -3 a -6 |
| Tensión crítica recurrente | -5 a -10 |
| Stock crítico producto clave | -3 a -7 |
| Diagnóstico con baja confianza usado para decidir | -4 |
| Datos críticos incompletos | -2 a -6 |
| Decisión aprobada sin acción | -4 |
| Cliente grande moroso sin plan | -3 a -7 |
| Canje alto sin evaluación | -5 a -10 |
Código:
def penalizacion_evento(event_code):
mapa = {
"cash_below_minimum": 8,
"p1_action_overdue": 5,
"critical_tension_recurring": 8,
"critical_stockout_risk": 6,
"low_confidence_sensitive_decision": 4,
"critical_data_missing": 5,
"decision_without_action": 4,
"large_customer_risk": 6,
"exchange_without_evaluation": 7
}
return mapa.get(event_code, 0)
17. Bonificaciones positivas
FARO también debe sumar por ejecución real.
| Evento | Bonificación |
|---|---|
| Acción P1 cerrada en plazo con evidencia | +2 a +4 |
| Tensión resuelta | +4 a +8 |
| KPI crítico normalizado | +2 a +5 |
| Calidad de datos corregida | +1 a +3 |
| Simulación acertada y decisión efectiva | +2 a +4 |
| Acción preventiva evitó riesgo | +2 a +5 |
| Reporte validado con decisiones ejecutadas | +1 a +3 |
Código:
def bonificacion_evento(event_code):
mapa = {
"p1_closed_with_evidence": 3,
"tension_resolved": 6,
"critical_kpi_normalized": 4,
"data_quality_fixed": 2,
"simulation_effective": 3,
"preventive_action_success": 4,
"report_decisions_executed": 2
}
return mapa.get(event_code, 0)
18. FARO Score por industria
El Score no puede pesar igual en todas las industrias.
18.1 Construcción / insumos
Pesos sugeridos:
| Componente | Peso |
|---|---|
| Comercial / margen | 20% |
| Caja / cobranza | 22% |
| Stock / compras | 18% |
| Clientes / obras | 10% |
| Comisiones / RRHH | 8% |
| Ejecución | 12% |
| Tensiones / riesgo | 7% |
| Datos | 3% |
Motivo:
En insumos de construcción, caja, margen, stock y cobranza son críticos. Vender mucho sin cobrar o sin margen es deporte extremo, no dirección.
18.2 Retail
Mayor peso:
rotación,
margen por categoría,
stock,
ticket promedio,
promociones,
merma,
sucursal.
18.3 Logística
Mayor peso:
SLA,
costo por kilómetro,
combustible,
flota,
mantenimiento,
rentabilidad por ruta.
18.4 Salud
Mayor peso:
ocupación,
tiempos de espera,
costo por prestación,
calidad,
uso de profesionales,
insumos críticos.
18.5 Hotelería
Mayor peso:
RevPAR,
ADR,
ocupación,
canales,
reclamos,
mantenimiento,
costo operativo.
19. FARO Score dinámico
Los pesos pueden variar según contexto.
Ejemplo:
Si caja está crítica:
aumenta peso financiero.
Si hay stock crítico:
aumenta peso stock/compras.
Si hay muchas acciones vencidas:
aumenta peso ejecución.
Si datos son débiles:
aumenta peso confianza.
Código conceptual:
def ajustar_pesos_contexto(pesos_base, contexto):
pesos = pesos_base.copy()
if contexto.get("cash_critical"):
pesos["caja_finanzas"] += 0.05
pesos["resultado_economico"] -= 0.03
pesos["clientes_mercado"] -= 0.02
if contexto.get("execution_weak"):
pesos["ejecucion_workflow"] += 0.05
pesos["personas_incentivos"] -= 0.02
pesos["clientes_mercado"] -= 0.03
return pesos
Regla:
El Score debe adaptarse al momento de la empresa sin perder trazabilidad.
20. FARO Score y tendencias
No basta con el valor actual. Hay que medir tendencia.
Score actual
Score anterior
variación
tendencia 7 días
tendencia 30 días
volatilidad
drivers
Código:
def tendencia_score(scores):
if len(scores) < 2:
return "sin_tendencia"
delta = scores[-1] - scores[0]
if delta > 5:
return "mejora_clara"
if delta > 0:
return "mejora_leve"
if delta < -5:
return "deterioro_claro"
if delta < 0:
return "deterioro_leve"
return "estable"
Ejemplo:
Score actual: 74
Hace 30 días: 68
Tendencia: mejora clara
21. Explicabilidad del Score
FARO debe explicar el número.
No alcanza:
Score: 74
Debe decir:
Score: 74
Sube por:
+ cierre de acciones P1,
+ mejora de stock crítico,
+ baja de descuentos.
Baja por:
- caja debajo del mínimo,
- cobranza lenta,
- costos con calidad media.
Código:
def explicar_score(score, drivers_positivos, drivers_negativos):
return {
"score": score,
"positive_drivers": drivers_positivos,
"negative_drivers": drivers_negativos,
"summary": "El Score refleja mejoras de ejecución, pero mantiene riesgos financieros."
}
22. FARO Score y colores
Color sugerido:
| Score | Color conceptual | Lectura |
|---|---|---|
| 80-100 | Verde / sano | Controlado |
| 70-79 | Azul-verde / estable | Bueno con foco |
| 60-69 | Ámbar | Riesgo medio |
| 45-59 | Naranja | Riesgo alto |
| <45 | Rojo | Crítico |
Pero cuidado:
No convertir FARO en un semáforo infantil. El color ayuda; la explicación dirige.
23. Score y alertas
El Score debe bajar cuando hay alertas críticas, pero no por ruido.
Regla:
Alertas aisladas de bajo impacto no deben mover fuerte el Score.
Alertas críticas recurrentes sí.
Fórmula:
Impacto alerta en Score =
severidad × recurrencia × confianza × impacto
Código:
def impacto_alerta_score(severidad, recurrencia, confianza, impacto):
return round(
severidad * recurrencia * confianza * impacto / 10000,
2
)
24. Score y acciones
El Score debe premiar ejecución real.
Ejemplo:
Acción creada: no suma.
Acción aceptada: suma poco.
Acción cerrada con evidencia: suma.
Acción efectiva medida: suma más.
Acción vencida: resta.
Código:
def impacto_accion_en_score(status, priority, effective=False):
if status == "overdue":
return -5 if priority == "P1" else -3
if status == "closed_with_evidence":
base = 3 if priority == "P1" else 2
return base + (2 if effective else 0)
if status == "accepted":
return 1
return 0
25. Score y evidencia
Cierres sin evidencia no deben sumar.
Regla:
Acción cerrada sin evidencia = no suma.
Acción cerrada con evidencia débil = suma poco.
Acción cerrada con evidencia fuerte + KPI mejorado = suma fuerte.
Código:
def impacto_evidencia_score(evidence_quality):
if evidence_quality >= 0.85:
return 3
if evidence_quality >= 0.70:
return 2
if evidence_quality >= 0.50:
return 0
return -1
26. Score y confianza
Si la confianza es baja, FARO debe mostrar advertencia.
Ejemplo:
FARO Score: 72
Confianza: 0.58 — media baja
Lectura:
El Score es orientativo. Costos y stock tienen datos incompletos.
Opciones:
1. Mostrar Score con advertencia.
2. Ajustar Score por baja confianza.
3. Bloquear decisiones fuertes hasta corregir datos.
Código:
def ajustar_score_por_confianza(score, confianza):
if confianza >= 0.70:
return score
if confianza >= 0.50:
return max(0, score - 3)
return max(0, score - 7)
27. Score y simulaciones
FARO debe poder mostrar Score futuro simulado.
Ejemplo:
Score actual: 68
Escenario A — auditar descuentos + cobrar clientes:
Score esperado: 76
Escenario B — solo empujar ventas:
Score esperado: 64
Escenario C — no hacer nada:
Score esperado: 60
Código:
def simular_score_futuro(score_actual, impactos_estimados):
return max(0, min(100, score_actual + sum(impactos_estimados)))
28. Score y “no hacer nada”
FARO debe mostrar impacto de no actuar.
Ejemplo:
Si no se corrige cobranza:
Score financiero puede caer 6 puntos.
Si no se repone stock crítico:
Score operativo puede caer 4 puntos.
Si no se ajustan descuentos:
Score comercial puede caer 5 puntos.
Esto es clave para Dirección:
No hacer nada también mueve el Score. Generalmente para abajo.
29. Score y aprendizaje
El Score debe mejorar su precisión con el tiempo.
FARO debe aprender:
qué acciones mejoraron realmente el Score,
qué recomendaciones no funcionaron,
qué tensiones se repiten,
qué pesos estaban mal calibrados,
qué indicadores predicen deterioro,
qué alertas eran ruido,
qué simulaciones fueron optimistas o conservadoras.
Ejemplo:
{
"learning": "La auditoría de descuentos mejoró margen en empresas con alta venta financiada, pero no mejoró caja si no se combinó con plan de cobranza.",
"score_adjustment": "Aumentar peso de cobranza en tensión crecimiento no rentable."
}
30. Score por usuario / responsable
FARO no debería convertir esto en ranking punitivo de personas, pero sí puede medir accountability.
Indicadores:
acciones cerradas,
acciones vencidas,
acciones efectivas,
evidencia cargada,
tiempo de respuesta,
bloqueos,
sobrecarga.
Lectura responsable:
El responsable comercial cerró acciones en plazo, pero la efectividad fue media porque el margen todavía no mejoró. El foco debe pasar de cumplimiento a impacto.
31. Score por sucursal
Ejemplo:
| Sucursal | Score | Comercial | Finanzas | Stock | Ejecución | Lectura |
|---|---|---|---|---|---|---|
| Mendoza | 78 | 80 | 74 | 76 | 82 | Sana |
| San Juan | 63 | 67 | 58 | 61 | 66 | Tensionada |
| Central | 72 | 70 | 73 | 75 | 71 | Estable |
Lectura:
San Juan requiere foco porque combina crecimiento, caja débil y stock crítico. No es solo un problema comercial.
32. Score y niveles de madurez
FARO Score también puede medir madurez de dirección.
| Nivel | Lectura |
|---|---|
| Nivel 1 | Empresa mide poco y actúa tarde. |
| Nivel 2 | Mide KPIs, pero ejecuta irregularmente. |
| Nivel 3 | Detecta alertas y crea acciones. |
| Nivel 4 | Ejecuta con evidencia y mide impacto. |
| Nivel 5 | Aprende, recalibra y anticipa. |
Ejemplo:
Score operativo 76, pero madurez FARO nivel 3:
la empresa ya detecta y actúa, pero todavía no mide impacto de forma consistente.
33. Score de versión Lite vs Full
FARO Lite
Debe calcular:
ventas,
margen básico,
caja,
stock,
acciones,
alertas simples,
calidad de datos básica.
No debe prometer diagnóstico profundo.
FARO Full
Debe incluir:
tensiones,
diagnósticos,
simulaciones,
recomendaciones,
workflow,
evidencia,
aprendizaje,
score dinámico.
FARO Neural
Debe incluir:
interdependencias,
modelos predictivos,
escenarios,
benchmarks,
aprendizaje avanzado,
recalibración de pesos.
34. Arquitectura técnica del FARO Score
Flujo:
datos normalizados
→ KPIs calculados
→ scores parciales
→ alertas y tensiones
→ penalizaciones / bonificaciones
→ confianza
→ score final
→ explicación
→ reporte
→ seguimiento
→ aprendizaje
Código conceptual:
def motor_faro_score(contexto):
score_bruto = faro_score_base(
resultado_economico=contexto["resultado_economico"],
caja_finanzas=contexto["caja_finanzas"],
operacion_stock=contexto["operacion_stock"],
clientes_mercado=contexto["clientes_mercado"],
personas_incentivos=contexto["personas_incentivos"],
ejecucion_workflow=contexto["ejecucion_workflow"],
riesgo_tensiones=contexto["riesgo_tensiones"],
calidad_datos=contexto["calidad_datos"]
)
penalizaciones = [
penalizacion_evento(e)
for e in contexto.get("negative_events", [])
]
bonificaciones = [
bonificacion_evento(e)
for e in contexto.get("positive_events", [])
]
score_final = faro_score_final(
score_bruto=score_bruto,
penalizaciones=penalizaciones,
bonificaciones=bonificaciones
)
confianza = confianza_faro_score(
contexto["calidad_datos_general"],
contexto["cobertura_modulos"],
contexto["confianza_kpis"],
contexto["actualizacion_fuentes"],
contexto["consistencia_tensiones"]
)
score_ajustado = ajustar_score_por_confianza(score_final, confianza)
return {
"score_bruto": score_bruto,
"score_final": score_ajustado,
"confidence": confianza,
"positive_drivers": contexto.get("positive_events", []),
"negative_drivers": contexto.get("negative_events", [])
}
35. Tabla SQL de FARO Score
CREATE TABLE faro_scores (
score_id TEXT PRIMARY KEY,
company_id TEXT NOT NULL,
branch_id TEXT,
area_id TEXT,
industry_id TEXT,
score_date DATE NOT NULL,
score_type TEXT NOT NULL,
raw_score NUMERIC,
adjusted_score NUMERIC,
confidence NUMERIC,
score_level TEXT,
score_trend TEXT,
positive_drivers JSONB,
negative_drivers JSONB,
explanation TEXT,
created_at TIMESTAMP DEFAULT now()
);
36. Tabla SQL de componentes del Score
CREATE TABLE faro_score_components (
component_id TEXT PRIMARY KEY,
score_id TEXT NOT NULL,
component_code TEXT NOT NULL,
component_name TEXT,
component_score NUMERIC,
component_weight NUMERIC,
weighted_value NUMERIC,
confidence NUMERIC,
explanation TEXT,
created_at TIMESTAMP DEFAULT now()
);
Componentes:
resultado_economico
caja_finanzas
operacion_stock
clientes_mercado
personas_incentivos
ejecucion_workflow
riesgo_tensiones
calidad_datos
37. Tabla SQL de drivers del Score
CREATE TABLE faro_score_drivers (
driver_id TEXT PRIMARY KEY,
score_id TEXT NOT NULL,
driver_type TEXT NOT NULL,
driver_code TEXT NOT NULL,
driver_title TEXT,
impact_value NUMERIC,
impact_direction TEXT,
related_entity_type TEXT,
related_entity_id TEXT,
explanation TEXT,
created_at TIMESTAMP DEFAULT now()
);
Valores:
positive
negative
neutral
risk
confidence_warning
38. Tabla SQL de reglas del Score
CREATE TABLE faro_score_rules (
rule_id TEXT PRIMARY KEY,
rule_code TEXT NOT NULL,
rule_name TEXT,
industry_scope JSONB,
component_code TEXT,
condition_json JSONB,
impact_type TEXT,
impact_value NUMERIC,
confidence_min NUMERIC,
active BOOLEAN DEFAULT true,
version TEXT DEFAULT '1.0',
created_at TIMESTAMP DEFAULT now(),
updated_at TIMESTAMP DEFAULT now()
);
39. Tabla SQL de pesos por industria
CREATE TABLE faro_score_weights (
weight_id TEXT PRIMARY KEY,
industry_id TEXT,
company_id TEXT,
component_code TEXT NOT NULL,
weight NUMERIC NOT NULL,
context_condition JSONB,
active BOOLEAN DEFAULT true,
version TEXT DEFAULT '1.0',
created_at TIMESTAMP DEFAULT now(),
updated_at TIMESTAMP DEFAULT now()
);
40. Tabla SQL de historial del Score
CREATE TABLE faro_score_history (
history_id TEXT PRIMARY KEY,
company_id TEXT NOT NULL,
branch_id TEXT,
area_id TEXT,
score_date DATE NOT NULL,
adjusted_score NUMERIC,
confidence NUMERIC,
score_delta NUMERIC,
main_positive_driver TEXT,
main_negative_driver TEXT,
created_at TIMESTAMP DEFAULT now()
);
41. Ejemplo completo: crecimiento no rentable
Datos
Ventas: +18%
Margen: 28% → 21%
Descuento: 6% → 12%
Días de cobranza: 32 → 43
Comisión: +15%
Acciones vencidas: 3
Lectura FARO
La empresa creció, pero el crecimiento no fue sano. El Score comercial baja por margen y descuento. El Score financiero baja por cobranza. El Score de ejecución baja por acciones vencidas.
Score
Score bruto: 76
Penalizaciones:
- crecimiento no rentable: -5
- cobranza lenta: -4
- acciones vencidas: -3
Bonificaciones:
+ acciones comerciales cerradas: +2
Score final: 66
Explicación
FARO Score 66: riesgo medio. La prioridad no es vender más, sino recuperar margen y caja.
42. Ejemplo completo: mejora por ejecución
Antes
FARO Score: 68
Stock crítico: alto
Acciones P1 vencidas: 2
Descuento promedio: 12%
Acciones
Reposición preventiva.
Auditoría de descuentos.
Plan de cobranza.
Cierre de P1 con evidencia.
Después
Stock crítico baja.
Descuento promedio baja a 8%.
Acciones P1 cerradas.
Caja mejora parcialmente.
Score
FARO Score: 74
Variación: +6
Lectura:
La empresa mejora porque ejecutó. Todavía no está sana del todo porque caja sigue tensionada.
43. Ejemplo completo: Score con baja confianza
FARO Score bruto: 78
Confianza: 0.58
Problema:
costos incompletos,
stock no conciliado,
clientes duplicados.
Score mostrado:
75 con advertencia.
Lectura:
El Score es orientativo. No usar para decisiones sensibles de margen, crédito o stock hasta corregir datos críticos.
44. FARO Score explicado para socio técnico
La explicación técnica es:
FARO Score no es IA opinando.
Es un motor de scoring compuesto que:
1. Calcula KPIs desde datos normalizados.
2. Calcula scores por área.
3. Aplica pesos por industria y contexto.
4. Penaliza alertas, tensiones y riesgos críticos.
5. Bonifica ejecución validada con evidencia.
6. Ajusta por confianza y calidad de datos.
7. Explica drivers positivos y negativos.
8. Guarda trazabilidad completa.
9. Se recalibra con resultados reales.
Esto es defendible ante un programador, un inversor o un Directorio. Si no se puede explicar el Score, no se puede vender como sistema serio.
45. Uso de IA en FARO Score
La IA puede ayudar a:
explicar el Score,
redactar narrativa ejecutiva,
resumir drivers,
traducir componentes técnicos,
generar reporte,
comparar períodos.
Pero no debe:
inventar el Score,
asignar pesos sin regla,
ocultar baja confianza,
inventar causas,
modificar resultados sin trazabilidad.
Prompt interno:
Actúa como analista ejecutivo FARO.
Con base únicamente en el payload estructurado recibido, redacta una explicación clara del FARO Score.
No inventes datos.
No agregues causas no presentes.
Distingue hechos, hipótesis y advertencias de confianza.
Incluye:
1. Score actual.
2. Variación.
3. Drivers positivos.
4. Drivers negativos.
5. Confianza.
6. Prioridad ejecutiva.
7. Recomendación de foco.
Payload:
{faro_score_payload}
46. Testing del FARO Score
Test score base
def test_faro_score_base():
score = faro_score_base(
resultado_economico=70,
caja_finanzas=60,
operacion_stock=80,
clientes_mercado=75,
personas_incentivos=70,
ejecucion_workflow=85,
riesgo_tensiones=65,
calidad_datos=80
)
assert 0 <= score <= 100
Test penalización crítica
def test_penalizacion_caja_critica():
penalizacion = penalizacion_evento("cash_below_minimum")
assert penalizacion >= 5
Test ajuste por confianza baja
def test_ajuste_score_confianza_baja():
score = ajustar_score_por_confianza(score=78, confianza=0.45)
assert score == 71
Test score final no supera 100
def test_score_final_maximo():
score = faro_score_final(
score_bruto=98,
penalizaciones=[],
bonificaciones=[10]
)
assert score == 100
47. Errores comunes en FARO Score
| Error | Consecuencia |
|---|---|
| Promediar KPIs sin lógica | Score engañoso. |
| No ponderar por industria | Lecturas genéricas. |
| No explicar drivers | El número pierde credibilidad. |
| No incluir ejecución | Score desconectado de gestión. |
| No incluir confianza | Decisiones con datos débiles. |
| Premiar cierre sin evidencia | Se incentiva maquillaje. |
| No penalizar tensiones recurrentes | Se ocultan problemas estructurales. |
| Cambiar pesos sin trazabilidad | Score manipulable. |
| Usar IA para inventar score | Riesgo técnico y comercial alto. |
48. Riesgos si no existe FARO Score
| Riesgo | Consecuencia |
|---|---|
| Dirección no tiene síntesis | Mucha información, poco foco. |
| No se ve evolución general | Difícil saber si mejora o empeora. |
| Reportes pierden fuerza | Falta indicador ejecutivo. |
| Acciones no conectan con impacto | Se mide actividad, no dirección. |
| Tensiones no se ponderan | Se tratan síntomas aislados. |
| No hay narrativa premium | FARO parece dashboard común. |
| Difícil vender producto | Falta elemento distintivo simple. |
49. Output final del Anexo 35
Al finalizar este anexo, FARO debe tener definido:
1. Definición formal de FARO Score.
2. Escala de 0 a 100.
3. Score bruto.
4. Score ajustado.
5. Componentes del Score.
6. Pesos generales.
7. Pesos por industria.
8. Score comercial.
9. Score financiero.
10. Score stock/compras.
11. Score ejecución/workflow.
12. Score calidad de datos.
13. Score de tensiones.
14. Confianza del Score.
15. Penalizaciones críticas.
16. Bonificaciones por ejecución.
17. Drivers positivos.
18. Drivers negativos.
19. Explicabilidad del Score.
20. Score por sucursal.
21. Score por área.
22. Score simulado futuro.
23. Score de no hacer nada.
24. Relación Score → reportes.
25. Relación Score → recomendaciones.
26. Relación Score → acciones.
27. Relación Score → aprendizaje.
28. Tablas SQL del Score.
29. Motor de cálculo.
30. Testing del Score.
31. Uso controlado de IA explicativa.
32. Recalibración futura del Score.
50. Conexión con otros anexos
| Próximo anexo | Qué recibe desde Anexo 35 |
|---|---|
| Anexo 17 — Biblioteca de KPIs | KPIs que alimentan el Score. |
| Anexo 18 — Objetivos y umbrales | Metas usadas para puntuar. |
| Anexo 19 — Señales FARO | Movimientos que afectan Score. |
| Anexo 20 — Reglas de negocio | Condiciones que impactan Score. |
| Anexo 21 — Alertas FARO | Alertas que penalizan o explican Score. |
| Anexo 22 — Biblioteca de tensiones | Tensiones que afectan Score. |
| Anexo 23 — Diagnóstico ejecutivo | Diagnósticos que explican variación. |
| Anexo 24 — Confianza del diagnóstico | Confianza usada para ajustar Score. |
| Anexo 25 — Priorización ejecutiva | Prioridades derivadas del Score. |
| Anexo 26 — Recomendaciones FARO | Recomendaciones para mejorar Score. |
| Anexo 27 — Simulación de escenarios | Score futuro simulado. |
| Anexo 29 — Biblioteca de acciones | Acciones que impactan Score. |
| Anexo 31 — Workflow y escalamiento | Ejecución que suma o resta. |
| Anexo 32 — Evidencia y cierre | Evidencia necesaria para sumar. |
| Anexo 33 — Seguimiento y medición | Impacto real en Score. |
| Anexo 34 — Reportes ejecutivos | Score comunicado a Dirección. |
| Anexo 36 — Aprendizaje | Ajuste del Score según resultados. |
| Anexo 37 — Recalibración | Revisión de pesos, reglas y penalizaciones. |
FARO Score es el indicador ejecutivo que sintetiza el estado real de la empresa combinando KPIs, alertas, tensiones, diagnósticos, ejecución, evidencia, riesgos, calidad de datos y confianza. No es un promedio simple: es una lectura ponderada y explicable de qué tan bien está funcionando la empresa como sistema de dirección.