DASHBOARDS & GRIDS
Guided filtering
A filter that shows how many records each choice would leave is a filter you cannot get lost in. The counts do the guiding.
- Polo?
- Levis?
- Nike?
- … 40 more?
- No idea what each choice leaves
- Pick, wait, discover 0 results, go back
- Polo302
- Levis144
- Nike85
- Small412
- Medium88
- Large31
- 0–25120
- 25–50245
- 50–100166
- Every value shows how many records it leaves
- Counts update as you narrow
Working blindly
A filter without counts is a guess. Pick a brand from a list of 40, wait, see zero results, go back, pick another. Add a size, lose everything, remove the size. On a grid of a few million records the guesswork is slow as well as blind, because each guess is a query. People learn to stop filtering and start exporting, which is how the spreadsheet comes back.
What guided filtering is
Every filter value shows how many records match: Polo 302 · Levis 144 · Nike 85, sizes Small 412 · Medium 88 · Large 31, and price bands 0–25, 25–50 and 50–100 holding 120, 245 and 166 records. Before any click, the user can see the shape of the data - that Polo dominates, that Large is rare - and choose accordingly. The sidebar is doing part of the analysis before the analysis starts. This is the pattern every large catalog uses, and it belongs on a business data grid for the same reason: it lets someone who does not know the data find their way through it.
Counts that update as you narrow
The second half of the feature is what makes it guided rather than merely informative. Choose Polo, and the other filters recount for Polo's 302 records: sizes now read Small 234 · Medium 50 · Large 18 instead of 412 · 88 · 31. Every remaining choice is one that leads somewhere, and the dead ends have been removed before they could be chosen. Three or four selections later, a set of millions has been narrowed to a few dozen without a single empty result.
- Polo302
- Levis144
- Nike85
- Small412
- Medium88
- Large31
- Polo ✓302
- Levis144
- Nike85
- Small234
- Medium50
- Large18
The order of selection does not matter, which is a bigger deal than it sounds. A user can start from price, then brand, then size, or the other way round, and the counts are right at every step because each one is computed on whatever the current selection is. There is no hierarchy to learn and no wrong first click. People who have never seen the data find their way through it, and people who know it well get there in three moves.
The counts also tell the user when to stop. When the remaining values all show small numbers, the set is nearly narrow enough; when one value shows most of the records, choosing it will barely narrow anything. The filter sidebar becomes a map of the data as well as a control over it.
Why it is cheap
In a database, each filter's counts would be a separate GROUP BY over the filtered rows, repeated for every filter on the screen every time a selection changes. On an index they are facets: after the search step has found the matching records, counting them per brand, per size and per price band is a pass over column data with the ids already known, and all of it comes back in the same request as the records. That is why the counts can update on every click without the screen slowing down, and why they always agree with the results beside them. What is faceted search? covers the mechanism.
There is a design consequence worth drawing out. With guided filters, the fields chosen for filtering matter more than the fields chosen for display, because the filter sidebar is where people form their picture of the data. Choose the dimensions people think in - brand, size, status, region, date - and index them as exact values so the counts are sharp. A free-text field makes a poor filter; a keyword field with twenty values makes a good one.
Counts also need to be computed on the right set. The brand counts should reflect every other active filter and the search text, but not the brand filter itself, otherwise choosing Polo would hide the other brands. Done right, the brand block keeps showing Levis 144 and Nike 85 as alternatives even after Polo is chosen, while sizes and prices recount within Polo. That small rule is what makes a guided filter feel like a map rather than a trap.
Search beside the filters
Guided filters pair with a search box that forgives typos, suggests completions and ranks by the fields that matter, because the two answer different parts of the same intent. Search narrows by what the user can describe; filters narrow by what the data offers. Together, "jaket" plus brand Polo plus size Medium is three moves from 531 results to the right fifty. Full-text search vs database LIKE covers the search half.
In a grid and on a dashboard
On a data grid the counts guide a person to records. On a dashboard the same facets become the charts: the brand counts are a bar chart, the price bands a histogram, and clicking a bar is a filter with a count already attached. Guided filtering, click to focus and faceted charts are one capability seen from three sides, which is why they feel consistent and why the numbers on all three agree.