ANEXO 32
Evidencia, validación y cierre FARO
Este anexo corresponde a la Fase 8 — Ejecución, etapa “Evidencia y cierre”. Es la capa donde FARO Connect define qué prueba debe existir para considerar que una acción, alerta, tensión, diagnóstico, recomendación, simulación o decisión fue realmente resuelta.
Hasta el Anexo 31, FARO ya puede:
crear acciones,
asignar responsables,
definir vencimientos,
controlar workflow,
escalar incumplimientos.
Pero falta una pregunta clave:
¿Cómo sabe FARO que algo fue realmente hecho, validado y cerrado?
Porque una cosa es marcar una tarea como “completada”. Otra cosa es demostrar que se ejecutó, dejó evidencia y generó impacto.
1. Objetivo del anexo
El objetivo del Anexo 32 — Evidencia, validación y cierre FARO es definir:
qué evidencia exige cada acción,
quién debe cargarla,
quién debe validarla,
qué criterios permiten cerrar,
qué pasa si falta evidencia,
qué evidencia no es suficiente,
cómo se mide el resultado posterior,
cómo se audita el cierre.
Ejemplo simple:
Acción:
Auditar descuentos mayores al 8%.
No alcanza con cerrar diciendo:
“Revisado”.
Evidencia requerida:
1. Listado de operaciones auditadas.
2. Análisis de margen por operación.
3. Resumen por vendedor.
4. Propuesta de corrección.
5. Validación de Dirección o Gerencia Comercial.
Criterio de cierre:
La auditoría fue presentada, validada y generó acción correctiva si correspondía.
2. Tesis del Anexo 32
La tesis es:
FARO Connect no debe permitir cierres declarativos. Debe exigir evidencia, validación y medición.
En muchas empresas pasa esto:
Se detecta problema.
Se crea acción.
Alguien dice “listo”.
La acción se cierra.
El problema vuelve al mes siguiente.
Eso no es gestión. Es teatro administrativo con planilla.
FARO debe funcionar distinto:
Acción creada
→ responsable ejecuta
→ evidencia cargada
→ evidencia validada
→ criterio de cierre cumplido
→ KPI medido
→ tensión resuelta o no
→ aprendizaje registrado
→ cierre formal
3. Qué es evidencia FARO
Una evidencia FARO es una prueba registrada que permite demostrar que una acción fue ejecutada, validada o medida.
Puede ser:
un archivo,
un reporte,
una captura,
un comentario validado,
una aprobación,
un KPI recalculado,
una orden emitida,
una simulación,
un acta,
una decisión,
una foto,
un registro del ERP,
un comprobante,
una conciliación,
un cambio de estado,
una medición posterior.
Ejemplo:
{
"evidence_id": "EVD_001",
"entity_type": "action",
"entity_id": "ACT_COMMERCIAL_DISCOUNT_AUDIT",
"evidence_type": "report",
"title": "Informe de auditoría de descuentos",
"uploaded_by": "Gerente Comercial",
"validated_by": "Dirección",
"validation_status": "approved"
}
4. Diferencia entre evidencia, validación y cierre
| Concepto | Qué significa | Ejemplo |
|---|---|---|
| Evidencia | Prueba cargada. | Informe de descuentos. |
| Validación | Alguien autorizado confirma que sirve. | Dirección aprueba informe. |
| Cierre | FARO permite terminar formalmente la acción. | Acción cerrada con evidencia y criterio cumplido. |
| Medición | Se evalúa si mejoró el KPI. | Descuento bajó de 12% a 8%. |
Regla:
Evidencia sin validación puede ser insuficiente.
Validación sin evidencia es débil.
Cierre sin medición puede ser incompleto.
5. Principio rector
Una acción no se cierra porque alguien trabajó. Se cierra porque dejó evidencia suficiente y cumplió el criterio de cierre.
Ejemplo malo:
Acción: revisar stock.
Cierre: hecho.
Ejemplo FARO:
Acción: validar stock físico de productos críticos.
Evidencia:
- conteo físico cargado,
- diferencia físico-sistema,
- ajuste realizado,
- responsable validó,
- stock crítico recalculado.
Cierre:
aprobado por Responsable de Stock.
6. Tipos de evidencia FARO
| Tipo de evidencia | Uso | Ejemplo |
|---|---|---|
| Documento | Informe formal. | PDF de auditoría. |
| Archivo de datos | Base exportada. | Excel de ventas auditadas. |
| Captura | Prueba visual. | Captura ERP / banco. |
| Registro interno | Dato dentro de FARO. | Cambio de estado. |
| Aprobación | Validación formal. | Dirección aprueba canje. |
| Comentario validado | Explicación con responsable. | Motivo de descarte. |
| KPI recalculado | Medición posterior. | Margen actualizado. |
| Orden / comprobante | Ejecución operativa. | Orden de compra. |
| Acta | Decisión de comité. | Acta de Dirección. |
| Simulación | Análisis previo. | Simulación de comisión. |
| Conciliación | Cruce de fuentes. | Banco vs contabilidad. |
| Foto / físico | Evidencia operativa. | Conteo de stock. |
7. Evidencia obligatoria por tipo de acción
| Tipo de acción | Evidencia mínima |
|---|---|
| Auditoría | Informe + base analizada + conclusión. |
| Reposición | Orden de compra + confirmación proveedor. |
| Cobranza | Ranking deuda + gestiones + resultado. |
| Validación de datos | Datos corregidos + KPI recalculado. |
| Cambio de política | Documento de política + aprobación. |
| Simulación | Supuestos + escenarios + resultado. |
| Canje | Valuación + documentación legal + aprobación. |
| Referidos | Identificación + operación + aprobación. |
| Comisión | Simulación + impacto + aprobación. |
| Workflow | Acción asociada + responsable + vencimiento. |
| Stock físico | Conteo + diferencias + ajuste. |
| Cliente riesgoso | Ficha cliente + deuda + decisión. |
8. Niveles de evidencia
No toda evidencia tiene el mismo peso.
| Nivel | Evidencia | Peso |
|---|---|---|
| Nivel 1 | Comentario simple | Bajo |
| Nivel 2 | Archivo o captura | Medio |
| Nivel 3 | Reporte estructurado | Alto |
| Nivel 4 | Aprobación formal | Muy alto |
| Nivel 5 | KPI recalculado + resultado medido | Máximo |
Ejemplo:
“Ya lo hablé” = nivel 1.
“Adjunto informe y KPI recalculado” = nivel 5.
FARO debe privilegiar evidencia fuerte. El “te lo juro por el comité” no escala bien.
9. Score de calidad de evidencia
FARO puede calcular un score para evaluar si la evidencia es suficiente.
Calidad evidencia =
completitud × 30%
+ trazabilidad × 25%
+ validación autorizada × 20%
+ relación con KPI × 15%
+ actualidad × 10%
Código:
def calidad_evidencia(
completitud,
trazabilidad,
validacion_autorizada,
relacion_kpi,
actualidad
):
return round(
completitud * 0.30 +
trazabilidad * 0.25 +
validacion_autorizada * 0.20 +
relacion_kpi * 0.15 +
actualidad * 0.10,
2
)
Lectura:
| Score | Lectura |
|---|---|
| 0.85 - 1.00 | Evidencia fuerte. |
| 0.70 - 0.84 | Evidencia suficiente. |
| 0.50 - 0.69 | Evidencia incompleta. |
| < 0.50 | No permite cierre. |
10. Evidencia mínima por prioridad
| Prioridad | Evidencia mínima requerida |
|---|---|
| P1 | Evidencia fuerte + aprobación si aplica. |
| P2 | Evidencia suficiente + validación responsable. |
| P3 | Evidencia operativa básica. |
| P4 | Comentario estructurado o registro simple. |
| P5 | Observación o nota. |
Regla:
Mientras más crítica la acción, más fuerte debe ser la evidencia.
No se cierra una acción P1 con “visto”.
11. Evidencia por área
11.1 Comercial
Evidencias típicas:
listado de ventas auditadas,
margen por operación,
descuento por vendedor,
propuesta de política comercial,
autorizaciones de descuento,
análisis de clientes poco rentables,
simulación de precios,
reporte de canal.
11.2 Finanzas
cashflow 7/30 días,
ranking de deuda vencida,
plan de cobranza,
conciliación bancaria,
detalle de pagos críticos,
presupuesto por área,
aprobación de reprogramación,
análisis de rentabilidad ajustada.
11.3 Stock / Compras
conteo físico,
diferencia físico-sistema,
orden de compra,
confirmación proveedor,
días de cobertura,
reporte de rotación,
stock inmovilizado,
plan de redistribución,
comparativo de proveedores.
11.4 RRHH
simulación de comisión,
impacto por vendedor,
plan de capacitación,
análisis de productividad,
registro de ausentismo,
validación de dotación,
aprobación de Dirección.
11.5 Dirección / Workflow
acta de decisión,
acción asociada,
responsable asignado,
vencimiento definido,
evidencia de cierre,
aprobación de cambio,
seguimiento posterior.
11.6 Data / Sistemas
campos corregidos,
maestros normalizados,
reprocesamiento ejecutado,
log de integración,
score de calidad actualizado,
KPI recalculado,
incidencia cerrada.
12. Evidencia por industria
12.1 Construcción / insumos
Evidencias críticas:
margen por familia de producto,
descuento por vendedor,
stock crítico por sucursal,
orden de compra de productos clave,
canje valuado,
referido identificado,
flete calculado,
cuenta corriente por cliente de obra,
cobranza por obra.
12.2 Retail
promoción analizada,
merma auditada,
stock por sucursal,
ticket promedio,
rotación de producto,
quiebres de producto estrella,
rentabilidad por categoría.
12.3 Logística
costo por kilómetro,
ruta auditada,
SLA cumplido/incumplido,
consumo combustible,
mantenimiento realizado,
reclamo cerrado.
12.4 Hotelería
RevPAR,
ADR,
ocupación,
reclamos por habitación,
canal de reserva,
mantenimiento ejecutado,
tarifa ajustada.
12.5 Salud
turnos atendidos,
turnos perdidos,
costo por prestación,
insumos críticos,
tiempos de espera,
reclamos,
validación profesional.
13. Criterio de cierre FARO
El criterio de cierre define cuándo una acción puede considerarse terminada.
Una acción puede cerrarse si:
los pasos obligatorios están completos,
la evidencia requerida fue cargada,
la evidencia fue validada,
el aprobador aprobó si corresponde,
el KPI fue recalculado si aplica,
no quedan dependencias abiertas,
el resultado fue medido o programado para medición.
Código:
def puede_cerrar_accion(accion):
condiciones = [
accion.get("steps_completed", False),
accion.get("evidence_complete", False),
accion.get("evidence_validated", False),
not accion.get("blocked", False)
]
if accion.get("requires_approval"):
condiciones.append(accion.get("approved", False))
if accion.get("requires_kpi_recalculation"):
condiciones.append(accion.get("kpi_recalculated", False))
return all(condiciones)
14. Cierre operativo vs cierre ejecutivo
FARO debe distinguir dos tipos de cierre.
| Tipo de cierre | Qué significa | Ejemplo |
|---|---|---|
| Cierre operativo | La tarea fue ejecutada. | Se hizo auditoría. |
| Cierre ejecutivo | El problema fue resuelto o medido. | Bajó descuento y subió margen. |
Ejemplo:
Auditar descuentos:
cierre operativo = informe presentado.
Resolver crecimiento no rentable:
cierre ejecutivo = margen mejora, descuento baja y cobranza se estabiliza.
Regla:
No confundir tarea cerrada con problema resuelto.
15. Estados de evidencia
| Estado | Significado |
|---|---|
| Pending | Aún no se cargó. |
| Uploaded | Fue cargada. |
| Under review | Está siendo revisada. |
| Approved | Fue validada. |
| Rejected | No sirve o es incompleta. |
| Needs correction | Debe corregirse. |
| Expired | Ya no es vigente. |
| Superseded | Fue reemplazada por evidencia nueva. |
Código:
def validar_evidencia(evidencia, aprobador, resultado, motivo=None):
if resultado not in ["approved", "rejected", "needs_correction"]:
raise ValueError("Resultado de validación no válido")
return {
"evidence_id": evidencia["evidence_id"],
"validation_status": resultado,
"validated_by": aprobador,
"validation_reason": motivo,
"validated_at": "now()"
}
16. Evidencia rechazada
Una evidencia puede rechazarse por:
archivo incorrecto,
dato incompleto,
no corresponde a la acción,
no tiene trazabilidad,
no tiene fecha,
no tiene responsable,
no permite verificar resultado,
no coincide con el KPI,
no tiene aprobación requerida.
Ejemplo:
{
"evidence_id": "EVD_004",
"status": "rejected",
"reason": "El archivo no incluye margen por operación, solo ventas totales.",
"required_correction": "Agregar margen por operación y resumen por vendedor."
}
17. Cierre rechazado
FARO no debe permitir cerrar si:
falta evidencia,
la evidencia fue rechazada,
falta aprobación,
hay dependencias abiertas,
la acción está bloqueada,
el responsable no validó,
el KPI no fue recalculado cuando era obligatorio.
Código:
def validar_cierre(accion):
errores = []
if not accion.get("evidence_complete"):
errores.append("falta_evidencia")
if accion.get("evidence_status") == "rejected":
errores.append("evidencia_rechazada")
if accion.get("requires_approval") and not accion.get("approved"):
errores.append("falta_aprobacion")
if accion.get("blocked"):
errores.append("accion_bloqueada")
if accion.get("requires_kpi_recalculation") and not accion.get("kpi_recalculated"):
errores.append("falta_recalculo_kpi")
return {
"can_close": len(errores) == 0,
"errors": errores
}
18. Evidencia y trazabilidad
Cada evidencia debe guardar:
quién la cargó,
cuándo la cargó,
a qué acción pertenece,
qué versión es,
qué fuente tiene,
quién la validó,
qué estado tiene,
si fue reemplazada,
si está vinculada a un KPI,
si fue usada para cerrar.
Ejemplo:
{
"evidence_id": "EVD_010",
"action_id": "ACT_001",
"uploaded_by": "USER_123",
"uploaded_at": "2026-05-28T10:30:00",
"source_system": "ERP",
"version": "1.0",
"validated_by": "USER_001",
"used_for_closure": true
}
19. Evidencia y versionado
Si se reemplaza evidencia, FARO debe conservar historial.
Ejemplo:
Versión 1:
Informe incompleto.
Versión 2:
Informe corregido.
Versión 3:
Informe aprobado.
Código:
def nueva_version_evidencia(evidence_id, new_file, uploaded_by):
return {
"parent_evidence_id": evidence_id,
"new_version": True,
"file": new_file,
"uploaded_by": uploaded_by,
"uploaded_at": "now()"
}
20. Evidencia y permisos
No cualquier usuario puede ver o validar cualquier evidencia.
Ejemplos:
RRHH sensible: solo RRHH, Dirección y autorizados.
Finanzas: solo Finanzas, Dirección y autorizados.
Canjes: Dirección, Finanzas, Legal, Comercial autorizado.
Comisiones: Comercial, RRHH, Finanzas, Dirección.
Permisos sugeridos:
view_evidence
upload_evidence
validate_evidence
reject_evidence
approve_closure
view_sensitive_evidence
Código:
def puede_validar_evidencia(usuario, evidencia):
permisos = usuario.get("permissions", [])
if "validate_evidence" not in permisos:
return False
if evidencia.get("sensitive") and "view_sensitive_evidence" not in permisos:
return False
return True
21. Evidencia sensible
Algunas evidencias deben tener tratamiento especial.
| Evidencia sensible | Riesgo |
|---|---|
| Sueldos / comisiones | Confidencialidad laboral. |
| Información bancaria | Confidencialidad financiera. |
| Canjes y activos | Riesgo legal/comercial. |
| Clientes morosos | Riesgo comercial. |
| Decisiones RRHH | Riesgo humano/legal. |
| Documentos legales | Riesgo contractual. |
| Estrategia de precios | Riesgo competitivo. |
Regla:
Evidencia sensible debe tener permisos, auditoría y visibilidad restringida.
22. Evidencia automática vs manual
FARO puede obtener evidencias automáticamente o pedir carga manual.
| Tipo | Ejemplo |
|---|---|
| Automática | KPI recalculado, cambio de estado, log de integración. |
| Manual | Informe, acta, comentario, documento externo. |
| Mixta | Reporte generado por FARO y aprobado por usuario. |
Ejemplo automático:
FARO recalcula margen después de completar costos.
Ejemplo manual:
Gerente Comercial carga informe de auditoría de descuentos.
23. Evidencia automática desde sistema
Código conceptual:
def generar_evidencia_automatica(entity_id, evidence_type, payload):
return {
"entity_id": entity_id,
"evidence_type": evidence_type,
"payload": payload,
"source": "FARO_SYSTEM",
"uploaded_by": "system",
"validation_status": "auto_generated",
"created_at": "now()"
}
Ejemplo:
{
"evidence_type": "kpi_recalculation",
"payload": {
"kpi": "gross_margin",
"previous_value": 0.21,
"new_value": 0.24
}
}
24. Evidencia de KPIs
Cuando una acción promete mejorar un KPI, FARO debe registrar:
KPI antes,
KPI después,
período de medición,
delta,
interpretación,
si la mejora se atribuye total o parcialmente a la acción.
Código:
def evidencia_kpi(action_id, kpi_code, before, after):
delta = after - before
return {
"action_id": action_id,
"evidence_type": "kpi_measurement",
"kpi_code": kpi_code,
"value_before": before,
"value_after": after,
"delta": delta
}
25. Medición posterior obligatoria
Algunas acciones deben cerrarse operativamente, pero quedar en seguimiento posterior.
Ejemplo:
Acción:
Cambiar política de descuentos.
Cierre operativo:
política aprobada y comunicada.
Medición posterior:
30 días después medir descuento promedio, margen bruto y ventas.
Código:
def requiere_medicion_posterior(action_type):
acciones = {
"cambio_politica",
"auditoria_comercial",
"reposicion_stock",
"plan_cobranza",
"redisenio_comision",
"cambio_credito",
"canje"
}
return action_type in acciones
26. Cierre con impacto
FARO puede clasificar el cierre según resultado.
| Resultado | Significado |
|---|---|
| Closed effective | Se ejecutó y mejoró KPI. |
| Closed neutral | Se ejecutó, sin impacto claro. |
| Closed ineffective | Se ejecutó, pero no mejoró. |
| Closed partial | Se completó parcialmente. |
| Closed justified | Se cerró por descarte justificado. |
| Closed false positive | El problema no era real. |
Código:
def clasificar_cierre(kpi_delta, expected_direction):
if expected_direction == "increase" and kpi_delta > 0:
return "closed_effective"
if expected_direction == "decrease" and kpi_delta < 0:
return "closed_effective"
if kpi_delta == 0:
return "closed_neutral"
return "closed_ineffective"
27. Evidencia y falsos positivos
Si una alerta, tensión o diagnóstico era falso positivo, también debe quedar evidencia.
Ejemplo:
FARO detectó margen bajo.
La empresa demuestra que era liquidación aprobada de stock inmovilizado.
Evidencia:
política de liquidación aprobada,
listado de productos liquidados,
autorización de Dirección,
impacto esperado.
Código:
def cerrar_como_falso_positivo(entity_id, motivo, evidencia):
return {
"entity_id": entity_id,
"closure_type": "false_positive",
"reason": motivo,
"evidence": evidencia,
"learning_required": True
}
28. Evidencia y falsos negativos
Si FARO no detectó un problema, pero la empresa lo encontró, debe registrarse.
Ejemplo:
Cliente moroso crítico no fue detectado porque estaba duplicado en el maestro.
Evidencia:
cliente duplicado,
deuda consolidada,
mora real,
regla faltante o dato defectuoso.
Esto alimenta aprendizaje y recalibración.
29. Cierre de alertas
Una alerta puede cerrarse por:
resolución,
conversión a acción,
descarte justificado,
falso positivo,
normalización del KPI,
agrupación en tensión.
No debe cerrarse solo por lectura.
Código:
def puede_cerrar_alerta(alerta):
motivos_validos = [
"resolved",
"converted_to_action",
"dismissed_with_reason",
"false_positive",
"kpi_normalized",
"grouped_into_tension"
]
return alerta.get("closure_reason") in motivos_validos and alerta.get("evidence_complete", False)
30. Cierre de tensiones
Una tensión se cierra cuando:
las acciones asociadas fueron cerradas,
los KPIs principales mejoraron,
la contradicción dejó de existir,
o Dirección justificó formalmente el cierre.
Ejemplo:
Tensión:
Crecimiento no rentable.
No alcanza con auditar descuentos.
Debe verificarse:
- margen mejoró,
- descuento bajó,
- cobranza no empeoró,
- comisión quedó revisada.
Código:
def puede_cerrar_tension(tension):
condiciones = [
tension.get("related_actions_closed", False),
tension.get("main_kpis_improved", False),
tension.get("evidence_validated", False)
]
return all(condiciones)
31. Cierre de diagnósticos
Un diagnóstico se cierra si:
se validó,
se actuó,
se midió,
se resolvió,
o se descartó con evidencia.
Código:
def puede_cerrar_diagnostico(diagnostico):
if diagnostico.get("dismissed_with_reason") and diagnostico.get("evidence_validated"):
return True
condiciones = [
diagnostico.get("actions_closed", False),
diagnostico.get("impact_measured", False),
diagnostico.get("responsible_validation", False)
]
return all(condiciones)
32. Cierre de recomendaciones
Una recomendación puede cerrarse como:
aceptada y convertida en acción,
rechazada con motivo,
pospuesta,
requiere más datos,
simulada y descartada,
simulada y aprobada.
Código:
def cerrar_recomendacion(recomendacion, cierre_tipo, motivo=None):
cierres_validos = [
"converted_to_action",
"rejected_with_reason",
"deferred",
"needs_more_data",
"simulated_rejected",
"simulated_approved"
]
if cierre_tipo not in cierres_validos:
raise ValueError("Tipo de cierre no válido")
if cierre_tipo == "rejected_with_reason" and not motivo:
raise ValueError("Debe indicar motivo")
return {
"recommendation_id": recomendacion["recommendation_id"],
"closure_type": cierre_tipo,
"reason": motivo
}
33. Cierre de simulaciones
Una simulación se cierra cuando:
se cargaron supuestos,
se generaron escenarios,
se revisaron resultados,
se tomó decisión,
o se indicó que falta información.
Cierres posibles:
approved,
rejected,
pilot_required,
needs_more_data,
deferred,
converted_to_action.
34. Cierre de decisiones
Una decisión no debería cerrarse sin acciones asociadas.
Ejemplo:
Decisión:
Cambiar política de descuentos.
Cierre válido:
política aprobada,
acciones creadas,
comunicación realizada,
fecha de vigencia definida,
medición programada.
Código:
def puede_cerrar_decision(decision):
condiciones = [
decision.get("approved_or_rejected", False),
decision.get("decision_reason") is not None,
decision.get("actions_created_if_approved", False),
decision.get("evidence_complete", False)
]
return all(condiciones)
35. Cierre y FARO Score
El cierre impacta el Score según calidad, tiempo e impacto.
| Evento | Impacto |
|---|---|
| Acción cerrada con evidencia | +2 |
| Acción P1 cerrada en plazo | +3 |
| Acción resuelve tensión | +4 a +8 |
| Acción cerrada sin evidencia | 0 o bloqueo |
| Acción vencida sin cierre | -3 a -5 |
| Evidencia rechazada | -1 |
| Diagnóstico descartado con evidencia | 0 / +1 aprendizaje |
| KPI mejora después de acción | +2 a +6 |
| Acción inefectiva medida | aprendizaje, no necesariamente castigo |
Código:
def impacto_cierre_score(priority, evidence_quality, on_time, resolved_tension):
score = 0
if evidence_quality >= 0.80:
score += 2
if priority == "P1" and on_time:
score += 3
elif priority == "P2" and on_time:
score += 2
if resolved_tension:
score += 5
return score
36. Auditoría de cierre
Cada cierre debe responder:
quién cerró,
cuándo cerró,
con qué evidencia,
quién validó,
qué KPI se midió,
qué resultado tuvo,
qué motivo tuvo si se rechazó,
qué aprendizaje generó.
Ejemplo:
{
"entity_type": "action",
"entity_id": "ACT_001",
"closed_by": "USER_123",
"closed_at": "2026-05-28T18:00:00",
"closure_type": "closed_effective",
"validated_by": "USER_001",
"evidence_ids": ["EVD_001", "EVD_002"],
"kpi_result": {
"discount_rate": "-4 puntos",
"gross_margin": "+3 puntos"
}
}
37. Tabla SQL de evidencia
CREATE TABLE evidence (
evidence_id TEXT PRIMARY KEY,
entity_type TEXT NOT NULL,
entity_id TEXT NOT NULL,
company_id TEXT,
branch_id TEXT,
area_id TEXT,
evidence_type TEXT NOT NULL,
title TEXT NOT NULL,
description TEXT,
file_url TEXT,
payload JSONB,
source_system TEXT,
uploaded_by TEXT,
uploaded_at TIMESTAMP DEFAULT now(),
validation_status TEXT DEFAULT 'pending',
validated_by TEXT,
validated_at TIMESTAMP,
validation_comment TEXT,
sensitive BOOLEAN DEFAULT false,
version TEXT DEFAULT '1.0',
parent_evidence_id TEXT,
used_for_closure BOOLEAN DEFAULT false
);
38. Tabla SQL de requisitos de evidencia
CREATE TABLE evidence_requirements (
requirement_id TEXT PRIMARY KEY,
entity_type TEXT NOT NULL,
entity_code TEXT NOT NULL,
action_code TEXT,
priority_level TEXT,
evidence_type TEXT NOT NULL,
title TEXT NOT NULL,
description TEXT,
required BOOLEAN DEFAULT true,
minimum_quality_score NUMERIC DEFAULT 0.70,
sensitive BOOLEAN DEFAULT false,
validator_role TEXT,
created_at TIMESTAMP DEFAULT now()
);
39. Tabla SQL de validaciones de evidencia
CREATE TABLE evidence_validations (
validation_id TEXT PRIMARY KEY,
evidence_id TEXT NOT NULL,
entity_type TEXT,
entity_id TEXT,
validation_status TEXT NOT NULL,
validated_by TEXT,
validator_role TEXT,
validation_comment TEXT,
quality_score NUMERIC,
created_at TIMESTAMP DEFAULT now()
);
40. Tabla SQL de cierres
CREATE TABLE closure_events (
closure_id TEXT PRIMARY KEY,
entity_type TEXT NOT NULL,
entity_id TEXT NOT NULL,
company_id TEXT,
branch_id TEXT,
area_id TEXT,
closure_type TEXT NOT NULL,
closure_status TEXT NOT NULL,
closed_by TEXT,
validated_by TEXT,
closure_reason TEXT,
evidence_ids JSONB,
kpi_measurements JSONB,
score_impact NUMERIC,
created_at TIMESTAMP DEFAULT now()
);
41. Tabla SQL de medición posterior
CREATE TABLE post_closure_measurements (
measurement_id TEXT PRIMARY KEY,
closure_id TEXT,
entity_type TEXT,
entity_id TEXT,
action_id TEXT,
kpi_code TEXT NOT NULL,
value_before NUMERIC,
value_after NUMERIC,
delta_value NUMERIC,
delta_rate NUMERIC,
expected_direction TEXT,
result_classification TEXT,
measured_period_start DATE,
measured_period_end DATE,
measured_by TEXT,
created_at TIMESTAMP DEFAULT now()
);
42. Motor de evidencia FARO
Flujo:
acción creada
→ requisitos de evidencia asignados
→ responsable carga evidencia
→ FARO valida completitud
→ aprobador valida calidad
→ FARO habilita o bloquea cierre
→ se registra cierre
→ se programa medición posterior
Código conceptual:
def motor_evidencia(accion, evidencias):
requeridas = set(accion.get("required_evidence", []))
cargadas = set(e["evidence_type"] for e in evidencias)
faltantes = list(requeridas - cargadas)
if faltantes:
return {
"status": "missing_evidence",
"missing": faltantes,
"can_close": False
}
evidencias_no_aprobadas = [
e for e in evidencias
if e.get("validation_status") not in ["approved", "auto_generated"]
]
if evidencias_no_aprobadas:
return {
"status": "evidence_pending_validation",
"can_close": False
}
return {
"status": "evidence_complete",
"can_close": True
}
43. Motor de cierre FARO
def motor_cierre(entity):
evidencia = entity.get("evidence_status") == "complete"
validacion = entity.get("evidence_validated", False)
aprobacion = True
if entity.get("requires_approval"):
aprobacion = entity.get("approved", False)
dependencias = not entity.get("blocked", False)
if evidencia and validacion and aprobacion and dependencias:
return {
"can_close": True,
"next_status": "closed"
}
return {
"can_close": False,
"next_status": "waiting_closure_requirements"
}
44. Ejemplo completo: auditoría de descuentos
Acción
Auditar descuentos mayores al 8%.
Evidencia requerida
1. Exportación de ventas filtradas.
2. Margen por operación.
3. Resumen por vendedor.
4. Clientes con descuentos altos.
5. Propuesta de política.
Validación
R: Gerente Comercial carga informe.
C: Finanzas valida margen.
A: Dirección aprueba política.
Cierre
Se cierra si:
- informe está completo,
- margen fue validado,
- Dirección revisó propuesta,
- se creó acción posterior si corresponde.
45. Ejemplo completo: plan de caja
Acción
Actualizar plan urgente de caja.
Evidencia requerida
cashflow 7 días,
cashflow 30 días,
ranking de clientes morosos,
plan de cobranza,
pagos críticos y negociables,
decisión de Dirección.
Cierre válido
Caja proyectada actualizada.
Plan aprobado.
Responsables de cobranza asignados.
Seguimiento diario programado.
46. Ejemplo completo: reposición preventiva
Acción
Activar reposición preventiva de producto crítico.
Evidencia requerida
stock actual validado,
venta promedio diaria,
días de cobertura,
plazo proveedor,
orden de compra o redistribución,
fecha estimada de reposición.
Cierre válido
Producto con reposición confirmada o redistribución ejecutada.
Riesgo de quiebre actualizado.
Comercial informado.
47. Ejemplo completo: canje
Acción
Evaluar canje.
Evidencia requerida
propuesta comercial,
valor de materiales,
costo de materiales,
valuación activo,
factor de liquidez,
riesgo legal,
costo financiero,
comparativo contra venta normal,
aprobación de Dirección/Directorio.
Cierre válido
Canje aprobado, rechazado o renegociado con fundamento.
No se puede cerrar por “parece buen negocio”.
Frase dura pero necesaria:
El canje no se cierra por entusiasmo comercial. Se cierra por valor neto, liquidez, riesgo y aprobación.
48. Ejemplo completo: calidad de datos de margen
Acción
Completar costos faltantes.
Evidencia requerida
productos sin costo identificados,
costos cargados,
maestro actualizado,
margen recalculado,
confianza del KPI actualizada.
Cierre válido
Confianza KPI margen superior a 0.80.
Si no se recalcula el KPI, no se cerró el problema; solo se cargaron datos.
49. Uso de IA en evidencia y cierre
La IA puede ayudar a:
resumir evidencia,
detectar faltantes,
explicar por qué no se puede cerrar,
redactar cierre ejecutivo,
clasificar evidencia,
comparar evidencia contra requisitos.
Pero no debe:
aprobar evidencia sensible sola,
inventar pruebas,
cerrar acciones sin validación,
decidir que algo está resuelto sin KPI o responsable.
Prompt interno:
Actúa como analista ejecutivo FARO.
Con base únicamente en la evidencia estructurada recibida, redacta un resumen de cierre.
No inventes datos.
No asumas evidencia faltante.
Indica:
1. evidencia cargada,
2. evidencia faltante,
3. validaciones realizadas,
4. si permite cierre,
5. motivo,
6. KPI afectado,
7. medición posterior requerida.
Payload:
{closure_payload}
50. Testing de evidencia y cierre
Test evidencia completa
def test_evidencia_completa():
accion = {
"required_evidence": ["informe", "kpi_recalculado"]
}
evidencias = [
{"evidence_type": "informe", "validation_status": "approved"},
{"evidence_type": "kpi_recalculado", "validation_status": "approved"}
]
resultado = motor_evidencia(accion, evidencias)
assert resultado["can_close"] is True
Test evidencia faltante
def test_evidencia_faltante():
accion = {
"required_evidence": ["informe", "kpi_recalculado"]
}
evidencias = [
{"evidence_type": "informe", "validation_status": "approved"}
]
resultado = motor_evidencia(accion, evidencias)
assert resultado["can_close"] is False
assert "kpi_recalculado" in resultado["missing"]
Test acción sensible sin aprobación
def test_accion_sensible_sin_aprobacion_no_cierra():
accion = {
"evidence_status": "complete",
"evidence_validated": True,
"requires_approval": True,
"approved": False,
"blocked": False
}
resultado = motor_cierre(accion)
assert resultado["can_close"] is False
51. Errores comunes en evidencia y cierre
| Error | Consecuencia |
|---|---|
| Cerrar con comentario simple | No hay prueba real. |
| No validar evidencia | Se acepta cualquier archivo. |
| No exigir KPI posterior | No se sabe si funcionó. |
| No versionar evidencia | Se pierde auditoría. |
| No restringir evidencia sensible | Riesgo de confidencialidad. |
| Cerrar tensión por cerrar una acción | El problema puede seguir vivo. |
| No registrar falso positivo | FARO no aprende. |
| No registrar falso negativo | FARO repite omisiones. |
| No exigir aprobador | Decisiones sensibles quedan débiles. |
52. Riesgos si no existe esta capa
| Riesgo | Consecuencia |
|---|---|
| Acciones cerradas de palabra | Falsa sensación de avance. |
| Problemas recurrentes | Se cierran síntomas, no causas. |
| FARO Score poco confiable | Suma puntos sin evidencia. |
| Auditoría débil | No se puede defender qué pasó. |
| Responsables sin accountability | Nadie demuestra ejecución. |
| Decisiones sensibles sin respaldo | Riesgo legal, financiero o humano. |
| Aprendizaje pobre | FARO no sabe qué funcionó. |
| Baja adopción directiva | Dirección deja de creer en el sistema. |
53. Output final del Anexo 32
Al finalizar este anexo, FARO debe tener definido:
1. Tipos de evidencia.
2. Evidencia obligatoria por tipo de acción.
3. Evidencia por área.
4. Evidencia por industria.
5. Niveles de evidencia.
6. Score de calidad de evidencia.
7. Estados de evidencia.
8. Validación de evidencia.
9. Rechazo de evidencia.
10. Criterios de cierre.
11. Cierre operativo vs cierre ejecutivo.
12. Cierre de acciones.
13. Cierre de alertas.
14. Cierre de tensiones.
15. Cierre de diagnósticos.
16. Cierre de recomendaciones.
17. Cierre de simulaciones.
18. Cierre de decisiones.
19. Evidencia sensible.
20. Permisos sobre evidencia.
21. Evidencia automática y manual.
22. Medición posterior.
23. Clasificación del cierre.
24. Impacto en FARO Score.
25. Auditoría de cierre.
26. Tablas SQL de evidencia y cierre.
27. Motor de evidencia.
28. Motor de cierre.
29. Testing de evidencia y cierre.
30. Uso controlado de IA explicativa.
31. Aprendizaje por cierre efectivo o inefectivo.
54. Conexión con otros anexos
| Próximo anexo | Qué recibe desde Anexo 32 |
|---|---|
| Anexo 21 — Alertas FARO | Criterios para cerrar alertas. |
| Anexo 22 — Biblioteca de tensiones | Evidencia para cerrar tensiones. |
| Anexo 23 — Diagnóstico ejecutivo | Evidencia para validar o descartar diagnósticos. |
| Anexo 24 — Confianza del diagnóstico | Evidencia que sube o baja confianza. |
| Anexo 26 — Recomendaciones FARO | Evidencia para aceptar, rechazar o convertir recomendaciones. |
| Anexo 27 — Simulación de escenarios | Evidencia de supuestos y resultados. |
| Anexo 28 — FARO Action Guide | Evidencia requerida por guía. |
| Anexo 29 — Biblioteca de acciones | Evidencia y cierre por acción. |
| Anexo 30 — Responsables y RACI | Quién carga y quién valida evidencia. |
| Anexo 31 — Workflow y escalamiento | Estados de evidencia dentro del flujo. |
| Anexo 33 — Seguimiento y medición | Medición posterior al cierre. |
| Anexo 35 — FARO Score | Impacto del cierre validado. |
| Anexo 36 — Aprendizaje | Qué funcionó, qué no y por qué. |
| Anexo 37 — Recalibración | Ajuste de reglas según evidencia real. |
El módulo de Evidencia y Cierre FARO define qué prueba debe existir para cerrar una acción, alerta, tensión, diagnóstico, recomendación, simulación o decisión. Exige evidencia, validación, criterios de cierre, medición posterior y auditoría, evitando cierres declarativos sin respaldo.