Skip to content
All work
Data Product2024

Real-time Data Analytics Dashboard

A live data visualization surface built around the handful of questions the team asked every day — and the ability to filter down to the answer without leaving the page.

Role
Product Engineer
Stack
ReactD3.jsWebSocket

Problem

Decisions were being made on data that was already stale by the time it reached anyone. The existing reporting answered questions from a previous quarter and required a request to change. Between wanting to know something and finding out, there was a person and a delay.

Solution

We started by cataloguing the questions people actually asked, then designed backwards from those. WebSocket-driven updates kept the view continuously current instead of batch-refreshed, and D3-based visualizations were chosen per question rather than per chart-library default. Filtering was built as the primary interaction, not a secondary control, so following a thread from summary to specific case never required a new report.

Outcome

The gap between a question and its answer closed to seconds, and ad-hoc reporting requests largely stopped — people could find the answer themselves. The measure of success wasn't dashboard usage but the decline in requests for someone else to look something up.

Metrics

Bracketed figures are placeholders pending final reporting.

reduction in time-to-insight
[XX]%reduction in time-to-insight
fewer ad-hoc reporting requests
[XX]%fewer ad-hoc reporting requests
median data freshness lag
[XX]smedian data freshness lag

Approach

The decisions that shaped it.

  1. Inventoried the real recurring questions before choosing a single visualization.
  2. Made filtering the primary interaction rather than a secondary control.
  3. Chose live streaming over polling where freshness genuinely changed decisions.
  4. Measured success by reduced reporting requests, not by dashboard page views.