Un dashboard, una pregunta
La mayoría de las herramientas BI te empujan a un dashboard gigante que trata de responder todo a la vez. El resultado es una pantalla llena de charts que nadie lee. Looky se construye alrededor del principio opuesto: un dashboard enfocado por pregunta de negocio.
Un dashboard que responde "¿Dónde está perdiendo revenue este quarter?" es útil. Un dashboard que muestra todas las métricas para todas las dimensions para todos los períodos es una pantalla de loading con charts. Construí chico, agudo y publicable.
Dos layout modes soportan distintos casos de uso. layout_mode es requerido; los únicos valores permitidos son:
fluid_grid: canvas interactivo y responsive. Los charts se sientan lado a lado y se cross-filtran entre sí cuando los usuarios clickean. Mejor para exploración y monitoreo operacional.document: orden de lectura fijo top-to-bottom. Diseñado para ser leído, compartido y exportado a PDF. Mejor para reportes, briefings y deliveries scheduleados.
Cualquier otro valor es rechazado por el validator.
Dashboard fluid grid con control de layout
Usá width en los items para controlar cuántas columnas del grid ocupa cada visualization. El grid default es de 3 columnas. Width 1 = una columna, width 2 = dos columnas, width 3 = full width. Spans avanzados opcionales: width 4 = cuarto de fila, width 6 = mitad de fila.
id: ec_sales_breakdown
title: Where Is Revenue Coming From?
layout_mode: fluid_grid
published: true
filters:
- id: global_period
type: cutoff_date
granularity: year
label: Period
default: "{{today}}"
items:
- visualization: ec_revenue_kpi
- visualization: ec_orders_kpi
- visualization: ec_revenue_by_category_bar
- visualization: ec_revenue_by_country_bar
- visualization: ec_top_brands_bar
- visualization: ec_traffic_source_bar
width: 2
- visualization: ec_revenue_by_department_bar
width: 1
- visualization: ec_orders_detail_grid
Dashboard document para reportes y exports
El modo document renderiza en un layout fijo de una columna. Es la elección correcta cuando el dashboard se va a compartir vía PDF export o cuando el orden de lectura tiene significado.
id: ec_business_overview
title: What Is Happening In The Business?
layout_mode: document
published: true
filters:
- id: global_period
type: cutoff_date
granularity: year
label: Period
default: "{{today}}"
items:
- visualization: ec_revenue_kpi
- visualization: ec_orders_kpi
- visualization: ec_aov_kpi
- visualization: ec_revenue_over_time_line
- visualization: ec_category_brands_matrix
- visualization: ec_orders_by_status_bar
Los dashboards document se pueden exportar a PDF en un schedule. Mirá Scheduled Exports.
Qué NO es un campo del YAML de dashboard
Las relaciones de cross-filter no se declaran a nivel dashboard. No hay bloque cross_filter en el dashboard. El cross-filter es un toggle por viz y un comportamiento runtime automático dashboard-wide — mirá Cross-filtering.
Similar, el shape de las entries en items[] es chico: cada item es o bien {visualization: <id>} o el mismo más un width: opcional. No hay height, position, row ni col; el fluid grid acomoda los items en orden de declaración y el layout document es de una columna.
Paginación dentro de un dashboard
Los items grid y report_matrix dentro de un dashboard paginan server-side; cambiar de página re-corre la query subyacente con los nuevos parámetros de página. El comportamiento es idéntico para sources de BigQuery, Postgres y MySQL. Las características de costo difieren — mirá Diferencias entre adapters de source.
Tipos de filter
Los filtros declarados en un dashboard aplican a cada viz que el dashboard contiene. La referencia completa por tipo vive en Filters; los dos shapes más comunes para dashboards se muestran abajo.
cutoff_date — selección de período de tiempo
El filtro de dashboard más común. El usuario elige una sola fecha y Looky manda dos parámetros a cada query: date_from y date_to. El lower bound depende de granularity — month (default) setea date_from al primer día del mes de la fecha elegida; year setea date_from al 1 de enero de ese año.
filters:
- id: global_period
type: cutoff_date
granularity: month # month (default) o year
label: Period
default: "{{today}}"
Valores de granularity soportados para filtros cutoff_date a nivel dashboard:
month(default):date_from= primer día del mes de la fecha elegida,date_to= la fecha elegida. Útil para dashboards month-to-date.year:date_from= 1 de enero del año de la fecha elegida,date_to= la fecha elegida. Útil para dashboards year-to-date.
La key granularity es solo a nivel dashboard; los filtros cutoff_date por visualization siempre se comportan como month.
Default tokens: {{today}}, {{yesterday}}, {{start_of_week}}, {{end_of_week}}, {{start_of_month}}, {{end_of_month}}. Cualquier otra cosa se trata como un string literal de fecha ISO.
select — filtro de dimension desde una query de Malloy
Pobla un dropdown desde una query live. Usá cuando los usuarios necesitan filtrar por un valor de dimension (región, categoría, marca) en vez de por tiempo.
filters:
- id: category
type: select
label: Category
param: category
options_query: "models/ec_revenue.malloy::category_options"
default: all
options_query apunta a una query de Malloy que devuelve filas con al menos las columnas id y label (o uno de los aliases reconocidos — mirá select). El parámetro del model declarado como p_category recibe el valor (el prefix p_ se strippea para el nombre externo; el filtro manda category).
Cross-filtering en fluid grid
En dashboards fluid_grid, clickear una barra, punto o celda en cualquier chart interactivo filtra todos los otros charts del dashboard a esa selección. Esto funciona automático — no requiere configuración.
Para deshabilitar el cross-filtering en una visualization específica (por ejemplo un KPI summary que no debería cambiar cuando se filtran otros charts), seteá cross_filter: false en el bloque chart de la visualization:
# en el YAML de la visualization, no del dashboard
chart:
cross_filter: false
El cross-filtering no está disponible en modo document. Los dashboards document están diseñados para lectura, no exploración.
El mecanismo completo — pills, whitelist de supported-params, reglas emit/consume por viz — vive en Cross-filtering.
Checklist de composición
- Cada
items[].visualizationreferencia un id de visualization publicada existente. layout_modese elige deliberadamente:fluid_gridpara exploración,documentpara reportes.- El título del dashboard es una pregunta, no una etiqueta de categoría.
- El
paramdel filtro matchea el nombre del parámetro declarado en el model de Malloy. granularitymatchea la resolución temporal de los datos subyacentes.
looky validate
looky list dashboards