Result counts should be previewed before a filter is applied
Aliases: N remaining · facet count · pre-apply count
What it is
Before the tick takes effect and before the list recomputes, the interface should say how many rows would remain if this cut were applied. Previewing the count before apply lets people see the size of the intersection before they commit the filter, rather than facing 0—or a suddenly shortened list—only after OK. Faceted interfaces such as Flamenco show counts beside each value under the current constraints, making “what this extra cut would do” an attribute of the choice before it is ticked.
The preview is a count of what is about to happen, not an explanation after emptiness, and not disabling values that would go empty. A preview may be 0—0 as a warning before apply, while there is still time to change one’s mind. Disabling is refusing to let an empty set be composed. The objects differ.
Why it happens
Filter panels, especially mobile “tick several, then Apply,” delay feedback until confirm. During the delay, estimates of intersection size come from imagination: “red” still feels plentiful, though conjoined with “XL + this store” it is 2. The miss explodes at confirm, and backtracking means reopening the panel and guessing chip by chip. Writing the count beside the value makes the conjunction a visible property of the current decision; working memory need not simulate the whole chain.
The preview must recompute with constraints already selected. A static site-wide stock number lies: 40 red in the whole catalog, 3 under the current query, and 40 still printed beside the value, is another collection endorsing this cut. When computation is slow, a stale number is more dangerous than none, because people treat it as a promise. The preview must also mark its unit as “remaining under current query + selected filters,” not “how many exist on the site.”
Studying it
Compare “see the count only after apply” with “see remaining N before the tick” for empty sets and backtracking.
- Paradigms: the same filter values; one condition refreshes the list only after apply, one shows the N that would result beside each option; a third disables N=0. Hearst’s faceted search treats count as part of the facet value.
- Independent variables: whether the preview appears before apply, whether the number is the current intersection or the whole catalog, whether stale numbers get a placeholder.
- Dependent variables: times an empty set is entered, times the panel is reopened to backtrack, rate of inferring a class does not exist because the number was wrong.
- Methodological note: instant, exact N in the lab overestimates production feasibility. Insert latency comparable to the real service and watch stale numbers being treated as promises. Preview-of-0 and disable-at-0 must be reported separately: the former still allows composing an empty set, the latter does not. Do not defend missing previews with the quality of the zero-result page.
Where it stops holding
When the value space is huge and one-step lookahead cannot be computed for every unselected value, preview at least the focused value or the visible screen; do not claim every value has a precise N. When live stock jitters hard, the preview is a snapshot and should not be worded as a guarantee of N items. With no query and no selections, on first open, the preview degrades to the catalog distribution; still useful, but mark it as the unconstrained base. Screen readers need to hear “if you choose red, 12 remain”; visually tucking the number on the right is not enough.
Applying it
- Beside each tickable value, show the count that would remain if it were added, under the current query and selected filters; recompute as selections change.
- On mobile, put the forthcoming N on the Apply button itself (“View 12 items”) so the number seen in the panel cannot disagree with what confirm delivers.
- While the number has not returned, use an explicit placeholder; do not keep the previous stale N. If a probe will be 0, still show 0 so people can change their mind before apply.
- Verify by hovering or focusing a third filter while two are already on: the intersection size should be visible before apply. If the number is catalog stock rather than the current intersection, the preview is lying. If the list drops from 200 to 0 only after apply, the preview did not happen before apply.