Problem
Two people are on a call looking at the same chart. One says “the spike”. There are three spikes. The conversation happens in a chat window, and next month somebody finds the chart again with none of what was said attached to it.
Solution
Let people attach words to a place on the dashboard. A comment on a panel, on a region of time, or on a specific point, visible to whoever opens it later.
The value is almost entirely retrospective, which is why the pattern is consistently underbuilt. In the moment, a call plus a screenshot works. Six weeks later, when the same shape recurs, the only thing that helps is the note somebody left saying what it turned out to be. This is institutional memory attached to the artefact rather than to a chat log, and chat logs are where dashboard knowledge usually goes to die.
The design question that decides whether it works is anchoring. A comment on a dashboard is nearly useless because the dashboard changes underneath it. A comment anchored to a time range and a panel keeps meaning something, because both parts of “what” and “when” survive.
The second question is who the audience is. There are two kinds of note and conflating them makes both worse. A message is addressed to a person now—“is this you?”—and should behave like a conversation, with notification and resolution. A record is addressed to whoever comes next, and should behave like documentation: durable, findable, and not cluttering the view once read.
Most implementations build the first and hope it serves as the second, which produces a dashboard with four years of resolved conversations on it.
The related distinction is with annotation proper: an annotation says an event happened, and a comment says what somebody thinks about it. A deploy marker is an annotation. “This spike was the deploy, and it was the migration not the code” is a comment.
Use when
The same charts are read repeatedly by a team, findings recur, and the interpretation is worth more than the data point.
Don’t use when
The conversation belongs somewhere with a workflow—an incident record, a ticket—and a comment on a panel would fragment it. Dashboards are a poor system of record and a good place to point at one.
Trade-offs
Comments clutter the surface they are attached to, and the clutter grows monotonically because nobody deletes them. They fragment discussion across the tool and the team’s chat, which usually means neither is complete. They need notification to be useful in the moment and notification is what turns a dashboard into another inbox. And anything anchored to a panel breaks when the panel is edited, so the note survives while its subject does not.
Checklist
- What is a comment anchored to: dashboard, panel, time range, or point?
- Does the anchor survive the panel being edited or moved?
- Is this a message to someone now, or a record for later, and does the UI distinguish them?
- Can a resolved conversation be cleared without losing the finding?
- Is there notification, and does it create an inbox nobody wanted?
- Can a comment be found later by searching, or only by returning to the panel?
- Does the comment carry the state it was made against, including filters?
- Who can see comments, and does that match who can see the data?
- What happens to comments when the dashboard is duplicated?
- Is anything pruning notes nobody has read in two years?
Compare
Grafana has no comment system and expects the annotation mechanism to carry it: a stored annotation has a text field and tags, so a note is an event with prose attached, which anchors to time reliably and has no notion of conversation. Datadog has notebooks and per-graph discussion, keeping the analysis and the commentary in one artefact, which is closer to the record use than the message use. Notion and Figma are the reference implementations for anchored commenting generally, and dashboards have borrowed the interaction without borrowing the resolution model that keeps it from accumulating. Incident tools solve the record half properly by making the timeline the artefact and the dashboard a link into it, which is usually the better division of labour.
Related
Annotation is the event-marker sibling and the entry that covers time anchoring. Share and embed is what people use instead when commenting does not exist. Saved view is how a discussed state gets preserved. Auto-insight is the machine-generated version of the same column. Drill-down is what a comment should be able to point at, so a note can reference a specific thing rather than a region.