A filter applied before drilling down should still apply, and still be visible, at every level below
Aliases: filter inheritance · drill state
What it is
A user filters to "online channel + 2025" and then drills — every level below should still show online-channel 2025 data only: the filters are inherited, and they remain visible on every drilled surface. Filter loss is drill-down's most common and most dangerous defect: the user compares two different data scopes unknowingly, and the conclusion has been wrong since step two.
Why it happens
Inheritance is part of drill-down's semantics: the definition of a drill is "the same batch of data at finer granularity," and "the same batch" means the filter set travels intact — drop any condition and the drill has swapped the object of analysis. Visibility is inheritance's verification condition: conditions carried but no longer displayed leave the user unable to confirm the scope still holds, so every reference to the deep chart carries uncertainty. Together they answer the critical question: "is this number the same scope as the level above?" — yes, and visibly so. The classic engineering error is implementing drills as "a fresh query with new parameters," omitting pass-through of existing filter params; the defect hides on simple data and detonates under multi-layer filtering.
Where it stops holding
Inheritance has edges that need negotiation: when the filter dimension is the parent of the drill dimension (filter "East," then drill by region), the inherited filter overlaps the drill path, and the surface should display both and state clearly that we are inside East's breakdown — never silently discard the filter. New level conditions introduced by the drill itself (clicking "Shanghai") are explicit and breadcrumb-visible, listed separately from inherited filters so the scope stays fully auditable. Incompatible cross-level filters (a "monthly data" filter ahead of a drill to daily grain) deserve a confirmation prompt, not a silent conversion.
Applying it
- Force every drill request to carry all existing filter parameters, implemented as parameter pass-through rather than re-construction.
- Keep the filter status bar on drilled views (per the filtering group), listing inherited conditions separately from new level conditions.
- Verification: set two filters, drill three levels, and check the remaining-count and filter bar at every level; a condition vanishing at any level is a pass-through defect — a data-correctness bug fixed at top priority.
Related
- Same group: U6.05.1 Drill-down descends a predefined hierarchy from summary to detail · U6.05.2 Roll-up needs a return path as explicit as drill-down · U6.05.3 The current level position must stay visible · U6.05.4 With multiple drillable dimensions, let users choose which to expand
- Nearby: U6.03.1 Applied filters must all be visible · U6.03.3 After filtering, state how much data remains
- Search terms:
filter inheritance·drill state·context preservation
Cards in the same group
- U6.05.1Drill-down only descends a hierarchy that was already defined, from year to quarter to month, say
- U6.05.2Rolling back up to a coarser level deserves as clear a path as drilling down into detail does
- U6.05.3Without a visible breadcrumb, two drills deep just looks like a pile of numbers with no context
- U6.05.4When sales data can drill by time, region, or product, the user needs to choose which axis to follow