Estimating a dashboard
The story that estimates the chart and forgets the data pipeline behind it.
Dashboards are deceptive. The visible part — the chart, the date picker, the filters — looks like a couple of days of frontend work. The invisible part is the data layer: where the numbers come from, how often they're recomputed, what time zone they're in, what counts as a unique user, and what happens when finance says the number is wrong on Tuesday morning.
The estimate hinges on whether the data already exists in a queryable shape. If yes, the work is mostly rendering. If no, the work is a data pipeline with a chart on top, and that's a different number entirely.
What gets said in the room
Frontend: "Chart library can do the rendering. A day or two."
Backend: "What's the source of truth for these numbers?"
Data: "Real-time, or is end-of-day fine?"
PM: "Whose time zone are we using for 'today'?"
Lead: "What happens when finance says the chart is wrong?"
Questions worth asking before voting
- Does the underlying data exist in a queryable form, or do we build the pipeline first?
- Refresh cadence: live, hourly, daily, on-demand?
- Time-zone handling — server time, user time, account time?
- Drill-down: links into raw rows, or just the aggregate?
- Export: CSV, share link, embedded image?
- Permissions: who sees what slice of the data?
- What's the response when the numbers disagree with another report?
Like search, the visible UI is the easy part; the data layer is the work. Open a session when the data question has an answer.