Establish what is happening
Name the row unit
Write whether each source row represents an event, entity, group membership, invoice line, or period summary. Record the identifier and grouping fields that define that unit. Keep a small fixture with two rows for one entity and one row for another.
Trace aggregation stages
Follow the fixture through joins, filters, grouping, and measure calculation. Compare row count, distinct entity count, and grouped output at each stage. Note the first place where a measure stops answering the question the report label appears to promise.
Bound the reading risk
List the cards, tables, charts, exports, and decisions that use the same measure. Separate visuals with a declared grain from those that inherit a hidden default. Ask the metric owner to resolve any conflict between the report label and the underlying grouping rule.
What to carry forward
Triage is complete when the row unit, grouping rule, first divergent measure, affected visuals, and metric owner are recorded. Keep the finding provisional if the source contains mixed grains or the report does not expose enough fields to distinguish events from entities.
Technical background: Metabase documentation.
Keep the decision with the work.
Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.
Create an account See the product workflow