Sales Reporting, Dashboards & Forecasting

Building a real-time sales dashboard. Honestly, about what "real-time" actually means.

A real-time sales dashboard updates the moment an event happens in the CRM, using event-based features rather than a scheduled sync. Few sales teams actually need true real-time: a five to fifteen minute near-real-time refresh covers almost every decision, and anything touching finance or a separate system will lag regardless of what the dashboard's label promises.

The short answer. Most of what gets called "real-time" isn't, and that's usually fine.

I'm Lauren Pearson, and "we need a real-time dashboard" is one of the most common requests I get from a founder who has just watched a competitor's product demo. It's worth pausing on what the word is actually doing in that sentence, because a genuinely real-time dashboard, one where the number on screen updates the instant the underlying event occurs, is a specific and sometimes expensive engineering choice, not a setting you tick in a BI tool. Most businesses that ask for it actually need something slightly different: a dashboard that refreshes often enough that nobody in the room is working from stale numbers. Those are not the same build, and conflating them is how a straightforward reporting project turns into a six-month integration headache.

This piece sits a level below our broader guide to the executive sales dashboard and the practical build walkthrough for Looker Studio, both of which assume a working refresh cadence without asking what "live" should actually mean for your team. If you're still deciding what a sales dashboard even needs to show before worrying about how fast it updates, start with what a sales dashboard is first.

The honest short answer: a handful of CRM-native fields, a stage change, a newly logged call, a record being created, can genuinely update within seconds using event-based platform features. Everything that depends on a separate finance system, a batch data warehouse sync, or a scheduled export will lag by minutes to a day no matter how the dashboard presents it. Deciding which category each metric falls into, before you build anything, is most of this job.

How it works in practice. Three ways data actually reaches a dashboard.

Event-based, genuinely real-time. The source system fires an event the moment something changes, and the dashboard's backend listens for it. Salesforce's Change Data Capture and Platform Events, and equivalent webhook features in HubSpot and most modern CRMs, do this well, typically delivering updates within seconds. This is the only category that deserves the word "real-time" without qualification, and it is also the most expensive to build and maintain, because it needs a listener service running continuously rather than a scheduled job.

Polling, or near-real-time. The dashboard tool checks the source system on a short, fixed schedule, every one to fifteen minutes, and pulls whatever has changed. This is what most BI tools do by default and it is, in practice, indistinguishable from true real-time for almost every sales use case, because no sales manager is watching a pipeline figure update second by second. It is dramatically simpler to build and far cheaper to run.

Scheduled batch, not real-time at all. A sync job runs on a fixed schedule, hourly, nightly, or tied to a licence limit. Microsoft's own Power BI documentation, for example, caps a dataset on a Pro licence at eight scheduled refreshes a day, rising to forty-eight on Premium capacity, a hard platform limit regardless of how urgently a team wants more. Any dashboard pulling from a system with a batch constraint like this cannot be real-time for that metric, and labelling it as such just sets an expectation the pipeline cannot meet.

ApproachTypical lagBest used for
Event-based (true real-time)SecondsDeal-stage changes, new leads, live activity feeds
Polling (near-real-time)1 to 15 minutesPipeline totals, dashboard tiles a manager checks hourly
Scheduled batchHours to a dayRevenue reconciled against finance, cross-system reporting

Most working sales dashboards blend all three without anyone noticing, which is exactly where trust quietly breaks. A pipeline count ticking up live next to a revenue figure that's actually a day old, both displayed with the same visual confidence, teaches a team to either distrust the whole dashboard or, worse, trust the stale number as much as the live one.

What good looks like. Matching refresh cadence to the decision, not the demo.

The teams that get this right start from the decision, not the technology. A sales manager scanning the pipeline every hour to decide where to spend the next call genuinely benefits from a near-real-time view, because the cost of acting on a slightly stale number is a wasted call, which is cheap. A board reviewing quarterly revenue once a month gets no practical benefit from second-by-second updates, and building for it anyway usually means paying for infrastructure that sits idle between the one review it was built for.

Here's a worked scenario, illustrative rather than a specific client result, of how this plays out. A 40-person SaaS sales team asked for "a real-time dashboard" after losing a deal where two reps had unknowingly been working the same account for a week. The actual problem wasn't refresh speed, it was that lead assignment happened on a nightly batch sync, so a new inbound lead could sit unassigned, and visible to nobody, for up to 18 hours. Moving just that one trigger, lead assignment, onto the CRM's event-based automation closed the real gap. The rest of the dashboard, pipeline value, stage counts, revenue trend, stayed on a fifteen-minute polling refresh, because nothing about those numbers needed to be faster, and building true real-time across the whole thing would have cost far more than the one fix that actually mattered.

That's the judgement call this comes down to: identify the one or two metrics where lag genuinely causes a bad decision, and build real-time infrastructure for those specifically. Leave everything else on the simplest refresh cadence that still feels current to the person using it. A dashboard built around how your team actually sells starts from that list of decisions, not from a generic speed target.

Pitfalls to avoid. Where "real-time" projects overspend or mislead.

The first pitfall is building event-based infrastructure for a metric nobody checks more than once a day. It's the most expensive option on the table, and it's wasted the moment the person it was built for only opens the dashboard each morning.

The second is letting the front end imply more freshness than the data pipeline actually delivers. A dashboard that visually refreshes every few seconds but pulls from a system that only syncs once a night is not real-time, it's a live-looking display of stale data, and the gap between the two is where trust in the whole dashboard quietly erodes.

The third is treating "real-time" as a single setting rather than a per-metric decision. Pipeline stage, revenue recognition, and marketing attribution rarely need the same refresh speed, and building the whole dashboard to the fastest requirement inflates cost for metrics that never needed it.

The fourth is skipping the question of what happens when the live feed breaks. An event-based pipeline that occasionally drops an update needs a reconciliation job running underneath it to catch anything missed, or the dashboard will silently drift from the CRM's actual state with no obvious signal that it's happened. A true real-time dashboard without that safety net is more fragile than a slower one that's always right.

Common questions.

Is a truly real-time sales dashboard possible?

Parts of it, yes. CRM-native fields such as a stage change or a newly logged activity can update within seconds using event-based features like Salesforce's Change Data Capture. Anything that depends on finance reconciliation, a separate billing system, or a scheduled data warehouse sync will always lag by minutes to a day, whatever the dashboard's refresh label claims.

What is the difference between real-time and near-real-time dashboards?

Real-time means the number updates the moment the underlying event happens, typically through a webhook or an event stream. Near-real-time means it updates on a short, fixed schedule, every few minutes rather than instantly. For almost every sales use case, near-real-time at a five to fifteen minute cadence is indistinguishable in practice from true real-time, at a fraction of the engineering cost.

How often does a sales dashboard actually need to refresh?

Match refresh cadence to the decision the number supports. A live pipeline view a sales manager checks hourly earns a short refresh window. A weekly trend line reviewed once in a Monday meeting does not, and refreshing it every few minutes only adds system load and cost for no behavioural benefit.

Why do some dashboards claim to be real-time but feel out of date?

Usually because one part of the data pipeline, often a nightly data warehouse sync or a batch-imported dataset, refreshes far less often than the dashboard's front end suggests. The visual updates instantly; the number behind it might be a day old. That mismatch is more damaging to trust than an honestly labelled daily refresh.

Does a small sales team need a real-time dashboard at all?

Rarely at the start. A daily or even twice-daily refresh covers almost every founder-led team's actual decision cadence. Build towards faster refresh only once a specific, named decision is being delayed by data lag, not because real-time sounds more impressive on a sales call.

Not sure which metrics actually need to be live?

Send me your current dashboard and I'll tell you honestly which numbers are worth the engineering, and which ones just need an honest refresh label.

Let's talk ↗