Filters & Date Range
Overview
Global dashboard filters let you filter data across all widgets simultaneously. Filters appear at the top of the dashboard and affect every widget that has the matching column in its data.
Filter Types
- Multi-Select — Choose one or more values from a dropdown
- Toggle — On/off switch for boolean filters
- Custom — Custom-defined filter logic
Multi-Select Features
- Search/Autocomplete — Type to search and filter available values. Suggestions appear as you type with keyboard navigation (arrow keys + Enter).
- "Only" Button — Hover over any item in the dropdown to reveal an "Only" button. Click it to select ONLY that item and deselect everything else. Useful for quick single-value filtering.
- Select All / Clear All — Bulk selection controls.
Smart Filter Behavior
Filters are intelligent about which widgets they apply to:
- If a widget's data table doesn't have the filtered column, that filter is automatically skipped for that widget (no errors)
- Tables without a date column automatically skip date filtering
- Different data sources on the same dashboard work without filter conflicts
Widget-Level vs Dashboard-Level Filters
Filters have a priority system:
- Widget-level filters (highest priority) — Set on individual widgets in the properties panel
- Dashboard-level filters — Global filters applied to all widgets
- Cross-widget interaction filters — Temporary filters from clicking other widgets
Widget-level filters override dashboard filters when they target the same column.
Configuring Filters
- Add default filters — Pre-configure which filters appear on the dashboard
- Custom filters — Define filters with custom labels, target columns, and dependencies
- Filter dependencies — A filter can depend on another (e.g., Campaign filter depends on Channel selection)
- Filter groups — Visually group related filters with separators
Hide for View-Only Users
When editing a dashboard-level filter, toggle Hide for view-only users in the filter configuration panel to keep the filter active for data but hide its control from anyone opening the dashboard in shared or view-only mode.
- The filter still applies to the data — selected values continue to constrain every widget on the dashboard.
- The filter control is hidden from the filter bar for view-only viewers, so they cannot change or clear it.
- Editors still see the filter normally and can adjust it.
Use this when a filter should pin a dashboard to a specific scope (e.g. a single account, brand, or region) for shared recipients without exposing the control.
SQL-Defined Filters
Some things you want to filter by are not a column on the widget's table. Creative tags, ad labels, and mapping tables usually live in their own table, keyed by an id the widget never selects. For these, a filter can be defined by SQL instead of by a column.
A SQL-defined filter has two parts, both set in the filter's configuration panel:
-
Options query — the SQL that fills the dropdown. It must return a single column
aliased
value. -
Apply condition — a boolean SQL expression added to every widget's query when
values are selected. Write
{values}where the selection goes; Improvado substitutes the selected values, escaped and quoted for you.
For example, to filter by a tag stored in a separate table:
visual_id IN (SELECT visual_id FROM creative_tag_values WHERE tag_name = 'hook' AND tag_value
IN ({values}))
Smart filter skip does not apply here. A column filter is silently ignored by widgets whose table
lacks that column, but a SQL-defined filter is applied to every widget —
Improvado cannot tell which columns your expression needs. Make sure the join key in the apply
condition (visual_id above) exists on every widget's table, or scope those widgets to
their own table.
SQL Filter Groups
Sometimes the set of filters is itself data: one filter per tag, per label, per taxonomy component. Listing them by hand means editing the dashboard every time someone adds a tag. A SQL filter group describes the whole set with SQL instead.
Add one from the Filters panel — SQL filter group, next to Custom SQL filter — and fill in three queries:
-
Filters query — returns one row per filter to create. An
idcolumn is required;labelis optional and falls back to a readable version of the id. -
Options query and Apply condition — the same two fields as
above, but written once as templates.
{filter_id}is replaced with each row's id.
Use Run filters query in the panel to preview the filters a group would create before saving it.
The group is expanded every time the dashboard loads, so a new source row — a tag created in your tagging tool, say — shows up as a new filter on the next load, with no dashboard edit and no rebuild.
Filters created by a group behave like any other filter, with a few differences:
- They carry an Auto badge, and rename, remove, and configure are hidden on them — the group's queries are the source of truth, so per-filter edits would be discarded the next time the group is expanded.
- Selections are remembered across reloads and shared links, exactly like other filters.
- Refresh on the group's card re-runs the queries in place, without reloading the page. The dashboard also refreshes a group on its own when you return to the tab and the filters are more than a minute old — so creating a tag in another tab and switching back is enough to see it.
-
A group creates at most 50 filters. If your filters query returns more, the
rest are dropped — usually a sign the query is returning rows at the wrong grain (a missing
GROUP BYorDISTINCT). - If a group's filters query fails, the filters already on screen stay as they are rather than disappearing.
SQL-defined filters and filter groups assume you are comfortable writing ClickHouse SQL. The same placeholders and conventions as the widget query editor apply — see Custom SQL Editor.
Date Range Selector
Controls the time period for all widgets on the dashboard.
Preset Date Ranges
- Today — Current day only
- Last 7 Days — Rolling 7-day window
- Last 30 Days — Rolling 30-day window
- Last 90 Days — Rolling 90-day window
- Last 12 Months — Rolling 12-month window
- This Month — From 1st of current month to today
- Last Month — Full previous calendar month
- This Year — From January 1st to today
Custom Date Range
Click the date fields to open a dual-month calendar picker. Select start date, then end date. The cursor automatically moves between fields. Date format: Jan 01, 2025.
How Date Range Affects Widgets
- All widgets with a date column automatically filter to the selected range
- KPI widgets use the date range for period-over-period comparison
- Charts show data points within the selected range
- Widgets without date columns are unaffected
Was this article helpful?
Thanks for the feedback!