Para diseñar dashboards por rol CEO, director y operador en pyme LATAM en 2026 la regla es: un solo data lake atrás, RBAC row-level security en Postgres con JWT custom claims, KPIs en código (no en IA), y un dashboard distinto por rol con el mismo origen de verdad. CEO ve estratégico, director ve táctico, operador ve operativo. Los tres confían porque los números cuadran. En una escuela cliente nuestra rediseñamos un dashboard CEO de 11 secciones colapsables: cold load pasó de 21 segundos a warm load de 2 milisegundos, mejora 10,000x. Auditoría 0 fails críticos.
¿Qué diferencia tres niveles de dashboard?
CEO ve consolidado. Toda la empresa en una pantalla. KPIs estratégicos: revenue mensual con delta año-vs-año, gross margin por línea de negocio, cash runway y burn rate, pipeline activo total, customer acquisition cost y lifetime value, churn rate. Sparklines de 14 días, deltas semana-vs-semana. Lo abre 2 a 3 veces al día, antes de juntas, antes de decisiones.
Director ve su área. Sólo lo que decide. KPIs tácticos: pipeline de ventas por etapa de su región o producto, productividad de su equipo, performance de campañas marketing, KPIs operativos de su unidad. Drilldown a contactos y deals.
Operador ve su día a día. Lo que hace ahora. Métricas operativas: tareas asignadas hoy, completadas, pendientes, calidad, tiempo de ciclo, alertas críticas. Idealmente actualización en near-real-time (segundos a minutos).
Los tres consumen del mismo data lake (capa Gold con vistas materializadas). La diferencia es permisos (RBAC) y vista (qué KPIs renderiza cada rol).
Arquitectura RBAC con RLS para dashboards multi-rol
-- Auth function que extrae rol y oficina del JWT
CREATE OR REPLACE FUNCTION auth.user_role() RETURNS TEXT
LANGUAGE SQL STABLE AS $
SELECT current_setting('request.jwt.claims', true)::json ->> 'role';
$;
CREATE OR REPLACE FUNCTION auth.user_oficina_id() RETURNS UUID
LANGUAGE SQL STABLE AS $
SELECT (current_setting('request.jwt.claims', true)::json ->> 'oficina_id')::uuid;
$;
-- Política RLS sobre gold.sales
CREATE POLICY ceo_sees_all ON gold.sales
FOR SELECT USING (auth.user_role() = 'ceo');
CREATE POLICY director_sees_region ON gold.sales
FOR SELECT USING (
auth.user_role() = 'director'
AND region_id IN (SELECT region_id FROM auth.user_regions())
);
CREATE POLICY operator_sees_own ON gold.sales
FOR SELECT USING (
auth.user_role() = 'operator'
AND oficina_id = auth.user_oficina_id()
);
CEO ve todas las filas. Director ve sólo su región. Operador ve sólo su oficina. Una sola tabla, tres vistas distintas según JWT.
KPIs obligatorios por nivel
Nivel CEO (consolidado, estratégico)
- Revenue mensual con delta año-vs-año y trailing twelve months.
- Gross margin por línea de negocio.
- Cash runway y burn rate.
- Pipeline activo y conversion rate.
- Customer acquisition cost y lifetime value.
- Churn rate de clientes existentes.
- Top 3 alertas críticas operativas (algo está roto que requiere atención del CEO).
Nivel Director (área, táctico)
- Pipeline de su área por etapa con conversion entre etapas.
- Productividad por persona del equipo (deals, calls, revenue).
- Performance de campañas marketing (CTR, conversion, CAC).
- KPIs operativos de su unidad (calidad, ciclo, satisfacción).
- Top 5 deals críticos esta semana.
Nivel Operador (día a día, operativo)
- Tareas asignadas hoy: pendientes, en progreso, completadas.
- Alertas críticas que requieren acción.
- Calidad del trabajo del día (errores, retrabajos).
- Tiempo de ciclo por tarea.
- Próximas 5 tareas en cola.
El caso real: 11 secciones colapsables, mejora 10,000x
En una escuela cliente nuestra (educación, sede Huixquilucan, 73 deals con 6.5 millones de pesos en pipeline) rediseñamos el dashboard CEO con 11 secciones colapsables. La versión original cargaba en 21 segundos cold load: demasiado lento para uso ejecutivo.
Implementamos:
- Cache de 60 segundos en memoria de HTML compilado.
- Paralelización de HubSpot API con ThreadPoolExecutor.
- Sparklines SVG inline (no librería externa).
- KPI deltas semana-vs-semana visibles en cada card.
- TOC sticky con scrollspy para navegación lateral.
- 11 secciones colapsables todas cerradas por default.
- Sección de atribución multi-canal: 7 de 7 inscritos trazables al funnel general (1 directo, 1 Instagram, 1 Google, 2 bot WhatsApp, 2 manual).
Resultado: cold load 21 segundos a warm load 2 milisegundos. Mejora 10,000x. Auditoría con 0 fails críticos. Stack: Flask, HTML/Jinja, CSS animations, JavaScript scroll, HubSpot API.
Errores comunes en dashboards multi-rol
- KPIs calculados en cada vista por separado: revenue del CEO no cuadra con revenue del director. Causa: cálculo descentralizado. Solución: una sola Gold table o materialized view, todos consumen de ahí.
- Sin RLS: filtrar permisos en frontend (cualquiera puede ver datos de otros bypaseando UI). Solución: RLS en Postgres con JWT.
- Operador ve métricas estratégicas: el dashboard de operador muestra revenue total empresa. Distrae sin agregar valor. Solución: cada rol ve su nivel, no más.
- CEO ve detalle operativo: el dashboard de CEO muestra ticket por ticket. Pierde la visión macro. Solución: CEO ve agregados, drilldown opcional.
- IA generando números: el LLM inventa el "12.4 por ciento". Solución: KPIs en código, narrativa sobre datos verificados.
¿Cuánto cuesta implementar dashboards por rol serios?
Para pyme LATAM con 3 roles (CEO, 2-4 directores, 5-30 operadores) y 5 a 10 sistemas fuente, dashboards por rol serios cuestan entre 18,000 y 35,000 USD de implementación más 200 a 500 USD al mes de operación.
MAGIA Core incluye dashboards por rol en el paquete de 15,000 USD pago único. La fase Generación construye el frontend con autenticación, RBAC, RLS, y el frontend con vistas distintas por rol. La fase Implementación capacita departamento por departamento.
Próximos pasos
Si tu dirección y tu operación ven distintos KPIs y nadie sabe cuál es el correcto, arrancá con un workshop de 1 día sobre arquitectura RBAC más KPIs por nivel. Si tu data lake ya existe y necesitás dashboard multi-rol con guardrails, agendá una llamada de 30 minutos sobre tu operación.
- MAGIA Core si querés data lake más dashboards por rol con RBAC en 12 semanas, código a tu nombre.
- MAGIA Forge si tu reportería requiere motor de IA con guardrails, audit trail inmutable y multi-tenant.
Sin retainers, sin licencias atadas, código a tu nombre.