Multiple Dashboard Filter Limitations: Dropdown restriction, static “Today”, and cascading filters

Overview

I’m working on a Metabase dashboard and facing three related filter challenges. I want to confirm whether these are possible configurations or known Metabase limitations, and if there are any recommended workarounds.


Environment

  • Metabase version: 58.x

  • Database: (Postgres / MySQL / SQL Server — update as needed)

  • Dashboard filters: Field Filters (Dropdown)

  • Data source: Tables and Models (no custom UI plugins)


:one: Restrict dropdown values to mode = 'normal' with linked filters

Tables

property_stations

  • station_id

  • station_name

  • station_mode (values: normal, test, disabled, etc.)

property_management

  • station_id (FK to property_stations.station_id)

  • other management-related columns

Requirement

I want a Station dropdown filter that:

  • Shows only stations where station_mode = 'normal'

  • Works dynamically with linked filters

  • Updates automatically if stations change

Expected Behavior

When users open the Station filter dropdown:

  • Only station_mode = 'normal' stations appear

  • Non-normal stations never appear in the UI

Actual Behavior

  • Dropdown always shows all stations

  • Linked filters do not respect station_mode = 'normal'

  • Even when filtering in models or questions, dropdown values remain unchanged

Question

Is there any supported way in Metabase to:

  • Restrict dropdown filter values based on row-level conditions

  • While still using linked dashboard filters across tables?

Or is this a known limitation, since linked filters only use table metadata and ignore model/question logic?


:two: Default date filter shows “Today” but loads a fixed date

Requirement

I want:

  • The date filter UI to show “Today” by default

  • But the actual data loaded should be for a fixed date, e.g. 2025-02-02

  • Users should still be able to change the date manually

Why This Is a Problem

In Metabase:

  • “Today” is always dynamic (system date)

  • I need “Today” as a label, not a dynamic value

Example:

  • UI shows: Today

  • Backend query uses: 2025-02-02

Understanding

From testing and documentation, it seems:

  • Metabase does not allow mapping “Today” to a static date

  • Date filters cannot override the semantic meaning of “Today”

Question

Is there any supported workaround for:

  • Showing “Today” in the filter UI

  • While loading data for a specific fixed date?

Or should this be treated as not possible by design?


:three: Proper cascading filters (Group → Subgroup → Category)

Requirement

I want true cascading filters so users only see valid values at each level.

Filter Setup

:one: Group Filter

  • Type: Field Filter

  • Column: group_name

  • Widget: Dropdown

  • Single value

:two: Subgroup Filter

  • Type: Field Filter

  • Column: subgroup_name

  • Widget: Dropdown

  • Single value

:three: Category Filter

  • Type: Field Filter

  • Column: name

  • Widget: Dropdown

  • Single value

Expected Behavior

  • Selecting Group limits Subgroup

  • Selecting Subgroup limits Category

  • Only valid combinations appear

  • Filters work consistently across:

    • Multiple charts

    • Multiple dashboard tabs

Actual Behavior

  • Dropdowns show values that don’t match parent selections

  • Linked filters work only partially

  • Filters ignore joins, models, and question logic

Question

What is the correct, supported way to build:

  • Multi-level cascading filters

  • Based on names (not IDs)

  • That work reliably across dashboards?

Are database-level foreign keys or denormalized tables the only reliable solution?


Summary

I want to confirm whether the following are limitations by design in Metabase:

  1. Dropdown filters cannot be restricted by row-level conditions (mode = 'normal')

  2. “Today” cannot represent a fixed/static date

  3. Cascading filters only work correctly with table metadata and FK relationships

Ugh, AI-formatted posts are difficult to read.

#1 and #3 seem like the same question and are usually due to not setting up the filters and table metadata correctly. In some cases linked filters not filtering later cases is due to database driver limitations. I can set up a test case and demonstrate how to set up #1, but I’d need more concrete data to demonstrate #3, especially how that situation is different.

Filters don’t cross dashboards. Use click actions to set filters in a second dashboard when the user jumps to it from a link in the current dashboard.

For #2, you’ll have to handle this in your question logic, but there isn’t a way to have a dropdown with optional selections. A user would have to type the word “Today” to get the replacement (or it can be a default). Set the filter as a text filter, then have your question check the filter for keywords and replace them as you need, or pass through the value.

With some cleverness it should be possible to use a search box attached to a question that validates the value and provides a search result for keywords.

Here is how I set up a dashboard with a station list with a linked filter. This is in a PostgreSQL database.

  1. Created a test table, test_locations, with a list of weather stations in it along with a randomly-generated mode column with 10 different values.
  2. In Table Metadata, made sure the mode and station columns were set to type Category and ‘A list of all values’. Used the Preview panel to ensure the values were properly scanned.
  3. Created a dashboard with a notebook question displaying the entire test_locations table.
  4. Created a mode filter as a Category filter and attached it to the mode column.
  5. Created a station filter as a Category filter and attached it to the station column.
  6. Edited the mode filter, opened the edit dialog next to Dropdown list in the filter settings, and make sure it was set to “From connected fields.”
  7. Did the same for the station filter.
  8. Flipped to the Linked filters tab on the station filter and togged on the link to mode.

After that and saving the changes, pulling down the mode filter lets me set one of the 10 values, and the station dropdown now contains only stations that match that mode.

Note: There are limits on the number of items in a filter dropdown. If you’re not getting the dropdown, try testing with a table of no more than 1,000 rows.

Reference: