Morrow CreekData Services
← Morrow Creek Data Journal

How to Audit a Business Dashboard for Filter and Aggregation Errors

Morrow Creek Data ServicesMorrow Creek Data Journal

A dashboard can look polished, refresh on schedule, and still answer the wrong business question. The usual cause is not a visibly broken formula. It is a scope problem: the tile includes records the reader did not expect, excludes records without saying so, or combines them at the wrong level.

For every important number, ask two questions: Which records can contribute to this number? At what level are those records combined? A title such as “Revenue by Region” does not answer either question.

Freeze the state before you test

Begin by recording the dashboard version or URL, refresh time, selected filters, time zone, and relevant viewer role. Also note the default date range and any active drill, cross-filter, or chart selection.

This matters because two apparently identical checks may not use the same population. A dashboard may apply viewer-specific access rules, use a default relative date, or let a prior click on one chart filter another. If the state is not recorded, a later reviewer cannot tell whether a mismatch is new or whether the test changed.

Map filters by tile, not by appearance

A visible slicer is only one possible filter. Build a compact filter map that includes page-level controls, tile-level filters, hidden defaults, metric-level conditions, dashboard interactions, and inherited access filters where they are relevant and permitted to review.

Then mark which tiles each control is meant to affect. Test coverage with an extreme but inspectable selection: one small region, a narrow date range, or a low-volume product category. Every tile that should respond should change in a plausible way. An unchanged tile is not automatically wrong. It may be designed as a global benchmark. But that exception should be stated clearly in the tile definition, subtitle, or tooltip.

A changing tile is not proof that the correct filter applies. It may respond through a different date field, a related table, or a chart interaction the reader did not notice.

Give each important tile a calculation contract

For decision-relevant tiles, write one sentence that describes the calculation without relying on the visual label. Include:

  • the measure and aggregation;
  • the base population and excluded statuses;
  • the row grain, such as order line, order, customer, or day;
  • the date field used; and
  • filters that apply, plus filters deliberately ignored.

For example: “Distinct paid orders by order date, limited to completed orders; region and date selections apply; cancellation status is fixed inside the metric.”

This contract exposes ambiguity early. A bookings tile might use booking date, while a fulfillment tile uses ship date and a cash tile uses payment date. That may be correct, but the tiles do not describe the same time-based population.

Check whether filtering happens before or after aggregation

A row-level filter changes the records entering a calculation. A result-level filter removes groups after a calculation has been performed. Those operations can produce very different charts.

For example, a chart filtered to display only days below a volume threshold may either exclude high-volume rows before aggregation or calculate every day and hide groups above the threshold afterward. The picture may look similar, but the underlying question differs.

Pay special attention to top-N lists, rankings, running totals, percent-of-total measures, and fixed-level calculations. A dashboard that claims to show the top 10 products in a selected market should be tested by restricting the underlying population to that market and ranking products independently. If it instead shows the companywide top 10 that happen to have market sales, the market filter arrived too late for the ranking question.

Different tools have different calculation orders. The audit task is not to memorize platform rules; it is to verify the actual order used by the tile.

Test grain before you reconcile totals

A count of rows is not necessarily a count of business events. A dataset with one row per order line can inflate revenue if an order-level total is summed once for every line.

Use a small test slice that can be inspected record by record. For five orders with differing line counts, compare the dashboard’s revenue with the sum of unique order totals. If an order with three lines contributes its full total three times, the tile is aggregating at the wrong grain or using a join that duplicates facts.

Relationships deserve the same scrutiny. A filter that has no effect, or a total that rises unexpectedly after adding a category, may trace to how tables relate. One-to-many joins, many-to-many paths, and ambiguous filter propagation can all change the population before a visual summarizes it.

Reconcile using the right rule

For an additive measure such as shipped units, mutually exclusive region totals should generally sum to the all-region total when the date range and statuses match. A mismatch points to omitted records, overlapping groups, different filter scope, or duplicated rows.

Do not apply that rule blindly to non-additive metrics. East may have 120 distinct customers and West 110, while the total is 190 because some customers appear in both regions. Rates, averages, medians, percentages, and period-end balances also often need to be recalculated from the full population rather than added or averaged from displayed segments.

Document the expected roll-up rule for each tile before calling a difference an error.

Leave an evidence trail

A useful audit ends with a short record: dashboard state tested, tiles checked, calculation contracts, independent results, mismatches, decisions, owners, and retest date. If access is limited to the front end, say so. A front-end check can identify suspicious behavior, but it cannot certify logic that depends on an unseen model or source query.

The goal is not to make every tile react to every filter or force every subtotal to equal the grand total. It is to make each number defensible: its population, grain, calculation order, and intentional exceptions should be clear enough that another reviewer can reproduce the question it answers.

Have a dataset that needs to become usable?

Morrow Creek Data Services handles paid research, cleanup, verification, and structured delivery projects.

Start a data project