In this guide 6 sections
Match refresh speed to the decision. Live stock during a flash sale needs real-time updates, because minutes change what someone does next, while category profitability reviewed monthly gains nothing from them. Real-time costs more to build, monitor and repair, so reserve it for the few numbers that trigger a purchase, an escalation or a refund within minutes.
Match Latency to the Decision, Not the Metric
Almost any number can be made real-time. The useful question is whether the decision behind it, such as which ticket to escalate before the SLA timer expires, happens fast enough that delay alters the outcome. A finance lead reviewing quarterly margin trends gains nothing from the same data refreshing every second, and the ticker-style engineering behind that refresh is wasted effort.
An apparel brand running a flash sale needs checkout stock near real-time, because a few minutes of delay can oversell a size-medium jacket that pickers already packed. The same brand’s monthly return-rate report by category is read once a month by the merchandising team, so a nightly refresh serves it just as well. Real-time sounds more advanced. Refund queues, courier cut-offs and payment-gateway errors justify polling every minute, whereas return rates, backorder lists and supplier lead times can wait for the overnight run. Owners often request it for every report by default, then pay for live infrastructure behind numbers that nobody opens more than once a week.
Real-Time Costs More in Complexity, Not Just Money
Scheduled reports forgive a lot. A source system can go offline briefly, an overnight cron job can be retried, and a slow query can run long, all before anyone opens the report. Real-time has no such slack. It needs a live or near-live connection to the source, and any break in that connection appears at once as stale or broken numbers on someone’s screen.
The burden compounds in operations. A silent failure in a live pipeline is noticed within minutes by its users, so it needs a pager alert and someone on call, not a routine morning check. A heartbeat check that pings every minute and a watchdog that sends a pager alert when it goes quiet are the minimum. Scheduled reporting is cheaper. Where the decision does not justify that effort, a nightly or hourly refresh that precomputes the heavy joins is cheaper to build and easier to keep reliable.
Check What the Source System Can Actually Support
Live is limited by the slowest source. If the warehouse team types stock counts at the end of each shift, a dashboard promising real-time inventory is really promising the last shift’s manual entry. One lagging feed drags the tile. Ask the warehouse supervisor, not the report builder, how often the stock table actually changes in the ERP, and treat that answer as the ceiling for the refresh rate.
Check how each source updates. It may push through a webhook, arrive in batches or depend on scans keyed in late, and the dashboard’s promise should match that reality, not the fastest rate possible. An honest label beats a fast one. A tile labelled “as of 6pm yesterday” is more useful than one that implies live data it cannot deliver, because the reader can decide how far to trust it.
Choose a Refresh Frequency Per Metric, Not Per Dashboard
Dashboards mix fast and slow numbers. It may show live order volume beside monthly category margin and quarterly retention, and one shared schedule either overbuilds the slow metrics or starves the fast one.
Give every tile its own clock. A support queue count might refresh every minute and flicker with each new ticket, order volume every five minutes, and gross margin once overnight after the ledger closes. Each metric carries its own refresh rate and “last updated” label, so the screen shows which numbers are current to the minute and which date from last night. Uniform freshness is a fiction.
Show Freshness Honestly, Including When Data Is Delayed
Every dashboard needs a visible timestamp. The last-refreshed time should sit in plain view on the screen, because a manager acting on a number must know how current it is before trusting it. Treat the dashboard like a stadium scoreboard, where nobody trusts the score unless the game clock sits beside it and a buzzer sounds when the feed stops.
Failures should announce themselves. When a source misses its update, the dashboard should say so rather than quietly showing the last successful figure as though it were current. A banner reading “data delayed since 9am, source unreachable” stops a stale number being mistaken for today’s, and that mistake costs more than the delay itself.
Decision-to-refresh-frequency matrix
A table matching decisions to a refresh frequency and its reasoning, covering large-order approval, service escalation, monthly margin review and stock reordering. Nothing defaults to real-time.
Open a blank worksheet to printQuestions owners ask
Does every dashboard need live data?
No, most do not. Management dashboards are usually reviewed daily, weekly or monthly, and a nightly or hourly refresh serves those decisions at lower cost and with far less to maintain.
How fresh is fresh enough?
Ask how often someone acts. A weekly review is served by a nightly refresh, while a metric checked before every customer call needs data from the last few minutes, not the last few hours.
What should a dashboard show when a source fails?
Show it on the tile itself. The tile should display the time of the last good update and a short note naming the source that failed, so readers stop acting on stale figures.
