The failure mode of dashboards is universal: twelve charts, all technically correct, and nobody can say what they should do differently after looking at them.

1. Write the questions first

Before any chart, write the three questions this dashboard exists to answer. "Are signups up or down on last week?" "Which customers are about to churn?" "Is anything broken right now?"

Every chart must answer one of them. Anything that doesn't, cut. This single rule fixes most dashboards.

2. Make each number mean something

A number alone is useless. 1,247 — is that good? Every metric needs a comparison: versus last period, versus target, versus this time last year. The comparison is the information; the number is just the anchor.

dashboard-build.txt
Build a dashboard answering these questions: <your three>

For each metric: the current value, a comparison against <last period
/ target>, direction of change, and a small trend line.

Layout: the most important thing largest and top-left. Group by
question, not by data source.

Requirements: works on a phone, states what time range it covers and
when it last updated, and has a real empty state for "no data yet".
Charts must be readable in both light and dark themes.

3. Choose the right chart

Lines for change over time. Bars for comparing categories. A single big number for a value someone checks at a glance. That covers almost everything.

Pie charts are hard to read past three slices. Dual axes mislead. 3D anything is decoration. If a chart needs a paragraph of explanation, it's the wrong chart.

4. Say when it's from

Every dashboard needs a visible time range and a last-updated timestamp. Without them, people make decisions on data of unknown age — which is worse than no dashboard, because it feels authoritative.

5. Make slow queries someone else's problem

Dashboards run expensive aggregations. Precompute them on a schedule into a summary table rather than recalculating on every page load. Your database will thank you, and the page will load instantly.

If nobody has opened it in a month, delete it. An unread dashboard is a maintenance cost with no benefit.