Most dashboards are opened once, at launch, by the people who commissioned them. The reasons are consistent and fixable, and almost none of them are about charting libraries.

A dashboard that nobody opens is rarely broken. It usually loads, the numbers are usually right, and it often took months. It is abandoned because it does not help anyone do anything, and that flaw is designed in long before the first chart is drawn.
The root cause is almost always the same: the dashboard was scoped from the data that happened to be available rather than from a decision somebody has to make. Those two starting points produce very different products. One produces a display of everything the warehouse can reach. The other produces a small, opinionated page that answers a recurring question.
Before any layout work, get a specific answer to one question: what will someone do differently depending on what this shows?
If there is no answer, the dashboard is decoration and should be descoped. If the answer is "we would look into it", find out what looking into it involves, because that is the actual product. Frequently the useful artefact is not a dashboard at all but a weekly exception report naming the twelve cases that need attention.
Good decisions to design around are concrete: which sites need staff reallocated this month, which applications have been waiting longer than the service standard, which datasets have stopped refreshing. Each implies a different shape, a different refresh cadence, and a different definition of "bad".
The strongest predictor of abandonment is trying to serve an executive, a program manager and an analyst on one screen. Their questions have almost nothing in common.
Serving all three at once produces something too dense for the first and too shallow for the third. Build the executive view as its own page, let it link down into detail, and give analysts access to the data rather than a picture of it. The layering is the design. We build these as separate, linked surfaces on data platform and reporting work rather than as tabs on one page.
"14,203 applications processed" tells a reader nothing. It becomes information the moment it is placed against something: last month, the same month last year, the target, the other regions, the service standard.
Choose the comparison deliberately, because it carries the interpretation. Against last month, seasonal work looks alarming every autumn. Against the same month last year, a real deterioration can hide inside a seasonal pattern. Where a metric has a published standard, compare to the standard. It is the comparison the reader is accountable against, and using anything else invites them to do arithmetic in their head or, more likely, close the tab.
Trust in a dashboard collapses the first time two people read the same number differently, and it rarely recovers. The fix is unglamorous: every metric needs a reachable definition, and the definition needs to say what is excluded.
"Open cases" means nothing until you know whether it includes cases on hold, cases awaiting applicant response, cases reopened after appeal, and cases belonging to staff who have left. Put that where a reader can get to it in one click, and version it, because definitions change and old screenshots circulate for years.
This is also the point at which dashboards meet records management. A number on a screen that influences a decision is part of the decision record, and the definition behind it is part of what makes the record interpretable later. Where the figures are assembled from several systems, the definition has to survive the joins too, which is usually an argument for computing them once behind a documented interface rather than independently in each reporting tool.
Every dashboard should state how fresh it is, in plain words, near the number rather than in a footer. "Updated 14 March, 06:00" costs nothing and prevents the most damaging failure mode, which is a stale page presented as live.
Real-time is usually the wrong target. It is expensive, it makes the underlying pipeline fragile, and almost no decision made from a management dashboard changes on a five-minute horizon. Daily is right for most operational reporting and monthly for most performance reporting. The exception is genuine operational monitoring, which is a different product with different reliability requirements.
When a refresh fails, say so on the page. A dashboard that silently shows yesterday's data as today's does more damage than one that is honestly unavailable, because the first is trusted and wrong while the second is merely annoying.
The most useful thing you can do at the requirements stage is reduce. Ask which panels would be missed if they were removed, and remove the rest. The dashboards that survive are small, pointed and opened weekly. The ones that die are comprehensive.
If you are staring at a specification listing forty metrics across six audiences, that is not a dashboard, it is several products plus a reporting backlog, and separating them early is cheaper than discovering it after launch. We are happy to work through one with you.
A dashboard nobody opens is not a technical failure. It is a scoping failure, and it happened before anyone chose a charting library.
Reporting gets treated as a by-product of a system, something you generate once the real work is done. Treated that way it produces screens that are technically correct and practically useless.
The alternative is to treat each reporting surface as a product with a named user, a decision it supports, and a definition of success that includes whether anyone opens it a month after launch. That single measure would retire most dashboards currently in service.
If you have a reporting estate that has grown faster than anyone can maintain, we can help you work out what to keep.