Volver al Blog
UX/UI Design9 de julio de 202611 min de lectura

Dashboards financieros: Datos, decisiones y diseño

DR

Doug Ribeiro

11 min de lectura

La palabra 'dashboard' está sobrecargada al punto de no significar nada en diseño de software. He visto desde una sola card de KPI hasta un display de analítica de 40 paneles llamarse dashboard. En software financiero específicamente, los dashboards existen para un propósito: ayudar a alguien a tomar una decisión o realizar una acción. Si un usuario mira un dashboard y se va sin decidir ni actuar, el dashboard ha fallado, independientemente de cuántos datos muestre o cuán visualmente pulido se vea.

A lo largo de mi carrera, desde los dashboards de trading en tiempo real para firmas de inversión que construí en GFT hasta los dashboards de reportes que construí en Data Studio como pasante en iRestify, he diseñado e iterado sobre una buena cantidad de dashboards de datos financieros y operativos. Este post destila los principios y patrones que se han sostenido en todos ellos.

Empieza con la decisión, no con los datos

El error más común que veo en el diseño de dashboards financieros es el diseño orientado a datos. Un stakeholder pide un dashboard, lista todos los datos que quiere ver, y el diseñador organiza esos datos en paneles. El resultado es un dashboard que es completo pero no útil: responde muchas preguntas que nadie estaba haciendo y es silencioso sobre las preguntas que los usuarios realmente tienen.

Mi punto de partida siempre es un inventario de decisiones. ¿Qué decisiones toma este usuario? ¿Con qué frecuencia? ¿Con qué nivel de urgencia? Un gerente de sucursal revisando un dashboard de operaciones matutino toma decisiones diferentes, y necesita información diferente, que un analista de crédito revisando un portafolio de préstamos. El hecho de que ambos estén mirando datos financieros es casi irrelevante para el diseño.

Toma un dashboard de cartera de préstamos para un analista de crédito. Las decisiones diarias principales: qué cuentas están derivando hacia la morosidad, qué solicitudes llevan en revisión más allá de la meta de servicio, y dónde está la cartera frente a sus límites de riesgo y volumen. Tres decisiones. Todo en el dashboard se evalúa contra si apoya una de esas tres. Si un dato no se conecta con ninguna de ellas, no pertenece al dashboard principal: se va a una vista de drill-down accesible bajo demanda.

Jerarquía de información: El patrón F no es suficiente

La mayoría de las guías de UX recomiendan diseñar para el comportamiento de lectura en patrón F: los usuarios escanean la parte superior de la página, luego hacia abajo por el lado izquierdo. Esto es preciso para contenido editorial. Para dashboards de soporte de decisiones, el patrón de lectura es diferente: los usuarios escanean buscando anomalías, no información en orden de lectura. Están buscando algo que está mal, inesperado, o requiere acción.

Esto cambia la jerarquía de información fundamentalmente. La información más importante en un dashboard financiero no es el número más prominente, es el número que está fuera del rango normal. Diseña para el resaltado de excepciones en lugar de la exhaustividad. Los indicadores de estado, los cambios de color basados en umbrales, y las flechas de tendencia son más valiosos que los números precisos cuando el caso de uso principal es la detección de excepciones.

En la práctica, diseño dashboards financieros con tres zonas de peso visual. La zona uno es la zona de excepciones: elementos que requieren acción o atención, siempre arriba o en posición prominente izquierda. La zona dos es la zona de estado: estado actual de métricas clave, confirmando que las operaciones normales proceden. La zona tres es la zona de contexto: tendencias históricas y datos comparativos que ayudan a interpretar las primeras dos zonas.

Zona 1. Excepciones y alertasMayor peso visual. Morosidad, anomalías, elementos que requieren acción… 1 Zona 2. Estado y KPIsInformación primaria. Salud del portafolio, métricas clave, comparación… 2 Zona 3. Contexto y tendenciasInformación de apoyo. Gráficos históricos, desgloses, datos de drill-do… 3

Diseño de tarjetas KPI: Lo que realmente importa

Las tarjetas KPI son el elemento más común en dashboards financieros, y también el más comúnmente mal diseñado. Una tarjeta KPI que muestra solo un número le dice al usuario casi nada. Una tarjeta KPI que muestra un número en contexto le dice al usuario si debe preocuparse.

Los elementos que incluyo en una tarjeta KPI bien diseñada: el valor actual (primario), la referencia de comparación (versus último período, versus objetivo, o versus presupuesto), el indicador direccional (flecha arriba/abajo/neutral), la magnitud del cambio (porcentaje o absoluto), y el período de tiempo que cubre el valor. Son cinco piezas de información en una tarjeta compacta. El desafío de diseño es organizarlas para que la pieza más relevante para la decisión, usualmente la comparación y dirección, sea la más prominente visualmente, no el número absoluto.

Las convenciones de color en tarjetas KPI deben usarse con cuidado en aplicaciones financieras. Rojo no significa universalmente malo en finanzas. Un indicador rojo en reservas de pérdidas de préstamos podría significar que la reserva está por debajo de los niveles requeridos, claramente malo. Un indicador rojo en un centro de costos podría significar que los costos están por encima del presupuesto, usualmente malo. Un indicador rojo en una métrica de ingresos podría significar que los ingresos están por encima del objetivo, lo cual es bueno. El color debe estar consistentemente asociado a la dirección de la desviación del resultado deseado, y la dirección deseada debe ser contextualmente apropiada para la métrica.

Eligiendo el tipo de gráfico correcto

La selección del tipo de gráfico es una de las decisiones más consecuentes en el diseño de dashboards, y frecuentemente se hace basándose en estética en lugar de estructura de datos. Estos son los tipos de gráficos que elijo en contextos de dashboards financieros y por qué:

  • Gráficos de línea: Para datos de series temporales continuas donde la tendencia y la tasa de cambio importan. Balance de portafolio de préstamos a lo largo del tiempo, volumen diario de transacciones, movimientos de tasas de interés. No uses gráficos de barras para series temporales cuando la línea de tendencia es el mensaje.
  • Gráficos de barras (agrupados o apilados): Para comparar categorías o períodos discretos. Comparar ingresos por línea de producto, o mostrar este mes vs mes pasado vs presupuesto en múltiples métricas. Las barras apiladas funcionan cuando la relación parte-al-todo es significativa; las barras agrupadas funcionan cuando la comparación directa entre categorías es la prioridad.
  • Sparklines: Para indicación de estado más que para análisis. Un pequeño gráfico de línea dentro de una tarjeta KPI te dice la tendencia reciente sin requerir un gráfico completo. Para dashboards con muchas tarjetas KPI, los sparklines agregan contexto significativo con costo visual mínimo.
  • Tablas con visualización inline: Para datos que requieren precisión. Cuando los usuarios necesitan conocer valores exactos y comparar entre muchas filas, una tabla con gráficos de barras inline o celdas coloreadas es más útil que un gráfico. Los profesionales financieros a menudo necesitan los números reales, no solo la forma de los datos.
  • Gráficos de dispersión: Usar con moderación y solo cuando la correlación entre dos variables es la pregunta real que se está respondiendo. Para análisis de riesgo crediticio o análisis de portafolio, los gráficos de dispersión son poderosos. Para dashboards operacionales, usualmente son la elección incorrecta.

Patrones de visualización de datos en tiempo real

Los dashboards financieros necesitan cada vez más mostrar datos en tiempo real o casi en tiempo real. Datos de mercado, volúmenes de procesamiento de pagos, conteos de sesiones activas: estos valores cambian continuamente. Diseñar para datos en tiempo real introduce desafíos de UX específicos que los dashboards estáticos no tienen.

El principio más importante: no animes cada actualización de datos. Si un número cambia cada segundo, animar cada cambio crea ruido visual que hace que el dashboard sea agotador de monitorear por períodos extendidos. Mi regla es animar un cambio de valor solo cuando su magnitud excede un umbral que defines por métrica. Fija ese umbral a partir de cómo se ve el movimiento normal de esa métrica: un precio que se mueve cada segundo necesita una banda mucho más amplia que un conteo diario de aprobaciones. Las fluctuaciones pequeñas se actualizan silenciosamente, los movimientos significativos llaman la atención a través de animación.

Los indicadores de frescura de datos son esenciales en dashboards en tiempo real. Los usuarios necesitan saber si los datos que están viendo son actuales o obsoletos. Esto es especialmente crítico en contextos financieros donde actuar sobre datos obsoletos puede tener consecuencias monetarias. Muestro un timestamp de última actualización en términos relativos ('Actualizado hace 3 segundos') con un timestamp absoluto disponible al hacer hover. Si el feed de datos está retrasado o interrumpido, muestro una advertencia visible de obsolescencia en lugar de mostrar silenciosamente datos antiguos.

typescript
// Staleness detection service
@Injectable({ providedIn: 'root' })
export class DataFreshnessService {
  private readonly STALE_THRESHOLD_MS = 30_000; // 30 seconds

  isStale(lastUpdated: Date | null): boolean {
    if (!lastUpdated) return true;
    return Date.now() - lastUpdated.getTime() > this.STALE_THRESHOLD_MS;
  }

  freshnessLabel(lastUpdated: Date | null): string {
    if (!lastUpdated) return 'Data unavailable';
    const secondsAgo = Math.floor((Date.now() - lastUpdated.getTime()) / 1000);
    if (secondsAgo < 5) return 'Just now';
    if (secondsAgo < 60) return `${secondsAgo} seconds ago`;
    return `${Math.floor(secondsAgo / 60)} minutes ago`;
  }
}

Revelación progresiva para datasets complejos

La revelación progresiva es la práctica de mostrar información de resumen primero y revelar detalle bajo demanda. Para dashboards financieros, esto no es solo una preferencia de diseño, es una necesidad para gestionar la carga cognitiva en pantallas densas en datos.

Mi jerarquía de revelación progresiva para dashboards financieros: el nivel uno es el dashboard de resumen mostrando KPIs y excepciones, el nivel dos es la vista de detalle de métrica mostrando la serie temporal completa, desglose por sub-categoría, y datos de comparación contextual, el nivel tres es el detalle a nivel de transacción o registro, accesible solo cuando el usuario tiene una necesidad investigativa específica.

La navegación entre estos niveles debe ser eficiente. Hacer clic en una tarjeta KPI debería ir directamente a la vista de nivel dos relevante para esa métrica, no a una página genérica de analítica. Hacer clic en un punto de datos anómalo en un gráfico debería mostrar los registros subyacentes que explican la anomalía. Estos caminos de drill-down contextual reducen el tiempo investigativo requerido para que un usuario entienda qué está pasando, que es la propuesta de valor central del dashboard.

La experiencia en GFT: Dashboards en tiempo real para firmas de inversión

En GFT, construí dashboards de trading en tiempo real para firmas de inversión con Angular, D3.js y WebSockets, manteniendo la latencia de datos por debajo de un segundo. Este fue un contexto particularmente instructivo porque los traders y analistas son usuarios sofisticados con necesidades de información muy específicas y muy poca paciencia para el lag. Un dashboard diseñado para un usuario casual de banca consumer es incorrecto para ellos: la densidad de información necesita ser mayor, el tiempo hasta la información clave necesita ser menor, y los datos tienen que estar visiblemente actualizados.

La lección más valiosa en ese contexto fue sobre la frescura de los datos. Cuando los datos se mueven cada segundo, la pantalla tiene que hacer imposible pasar por alto los datos obsoletos: un feed que deja de actualizarse silenciosamente es peor que uno que muestra un error, porque alguien va a actuar sobre el número obsoleto. La otra lección fue la moderación en la animación. Con D3.js es fácil animar cada tick, y hacerlo vuelve una pantalla imposible de mirar en cuestión de minutos.

Un dashboard que muestra todo está optimizado para nadie. Diseña para la decisión, no para los datos.

Accesibilidad en visualización de datos

Los dashboards financieros tienen un problema de accesibilidad específico a la visualización de datos: los gráficos son inherentemente visuales, y su significado es inaccesible para usuarios de lectores de pantalla que reciben solo el texto alternativo del gráfico. Esta es una brecha real que la mayoría de diseñadores y developers de dashboards no abordan adecuadamente.

Mi práctica actual: cada gráfico incluye una vista tabular de datos accesible a través de un toggle, para que los usuarios de lectores de pantalla puedan acceder a los números subyacentes. El texto alternativo del gráfico no es 'Gráfico de barras mostrando datos de ingresos': es un resumen conciso del insight clave: 'Los ingresos aumentaron 12% mes a mes, alcanzando $4.2M en junio, el valor más alto en los últimos 12 meses.' El texto alternativo cuenta la historia que el gráfico está contando, no solo qué tipo de gráfico es.

El color nunca es el único indicador de significado en mis dashboards financieros. Cada estado que usa color también usa un ícono o una etiqueta de texto. Esto es tanto un requisito de accesibilidad como una mejora práctica de usabilidad: los dashboards se ven frecuentemente en monitores con mala calibración de color, en entornos de oficina brillantes, o por usuarios que tienen deficiencia de visión cromática. Diseñar para estas condiciones beneficia a todos los usuarios.

Referencias

DashboardsData VisualizationUX/UIFintech