Cuándo usar cutoff_date
Usa cutoff_date cuando el análisis es "todo desde el comienzo del mes hasta un día elegido" — revenue month-to-date, reportes de cierre mensual, snapshots "as-of". El usuario elige una sola fecha; Looky manda automáticamente tanto date_from (el primer día de ese mes) como date_to (la fecha elegida) como parámetros.
Usa date_range cuando el usuario necesita elegir los dos extremos libremente. Usa date_range_preset cuando la elección es entre presets con nombre como "last 30 days" o "this quarter".
Campos requeridos
type: cutoff_date
Campos opcionales
id— identifier interno del filtro.label— display label arriba del picker.param— el nombre de parámetro bajo el cual también se manda la fecha de corte resuelta (default aliddel filtro, y luego acutoff_date). La ventana derivada siempre llega comodate_from/date_tode todos modos.default— token de fecha (mira abajo) o string ISO de fecha. Default a"{{today}}".granularity— controla cómo se derivadate_fromdesde la fecha elegida. Uno deday,month(default),quarter,year. Conday,date_fromiguala a la fecha elegida (ventana de un día). Conmonth, el primer día del mes de la fecha elegida. Conquarter, el primer día del calendar quarter de la fecha elegida (Ene, Abr, Jul u Oct). Conyear, 1 de enero del año de la fecha elegida. Honrado tanto a nivel dashboard como visualization.
Máximo seleccionable
El picker ofrece todos los días hasta hoy inclusive, en la timezone del workspace, y ninguno después. El default decide dónde abre el filtro: {{today}} para el día en curso, {{yesterday}} para el último día cerrado — la opción para cierres de día, PDFs y cierres de período — o una fecha literal.
Tokens de fecha para defaults
Estos tokens resuelven contra la timezone del workspace (ui.timezone en workspace.yml, cayendo al default de la instancia):
{{today}}{{yesterday}}{{start_of_week}}/{{end_of_week}}{{start_of_month}}/{{end_of_month}}
Cualquier cosa que no esté en esta lista se trata como un string ISO de fecha literal (ej. "2024-12-31").
Cómo llega el valor a la query Malloy
La fecha elegida setea dos parámetros en cada query a la que aplica el filtro:
date_from— derivado de la fecha elegida segúngranularity(default al primer día de su mes).date_to— la fecha elegida misma.
Tu model de Malloy declara esos dos parámetros y los usa en cláusulas where::
##! experimental.parameters
source: ec_orders(
p_date_from::date is @2024-01-01,
p_date_to::date is @2024-12-31
) is ecommerce.table('bigquery-public-data.thelook_ecommerce.order_items') extend {
view: revenue_mtd is {
where:
created_at::date >= p_date_from
and created_at::date <= p_date_to
aggregate:
revenue is sum(sale_price)
}
}
Diferencias entre adapters
Tanto date_from como date_to son parámetros de date / timestamp. En BigQuery bindean nativo. En Postgres y MySQL el model tiene que usar el patrón de placeholder @param en el SQL subyacente — mira la comparación de adapters de source y Soporte de Malloy.
Ejemplos trabajados
Cutoff default es hoy:
filters:
- type: cutoff_date
label: Cutoff
default: "{{today}}"
Cutoff default es fin del mes pasado (para reportes de cierre mensual):
filters:
- type: cutoff_date
label: Closing date
default: "{{end_of_month}}"
Cutoff default es una fecha literal (para un snapshot histórico fijo):
filters:
- type: cutoff_date
label: As of
default: "2024-12-31"