Most businesses already have the data they need to answer their most important questions. It sits in the sales system, the accounting package, the website database and a few spreadsheets. What is missing is a single place where managers can see it clearly without asking someone to "pull the numbers" every Monday. A well-built business dashboard provides that. A badly built one becomes a page of colourful charts that nobody trusts. The difference is mostly in the work done before any chart is drawn.
Begin with decisions, not data
The most common mistake is starting with "what data do we have?" and charting all of it. Start instead with "what decisions do we make each week, and what would help us make them better?" For example:
- A sales manager decides where to focus the team: they need pipeline value by stage and which regions are behind target.
- An operations lead decides staffing: they need order volume by day and average fulfilment time.
- A finance head decides on credit control: they need overdue receivables by customer and age.
Each decision suggests a handful of metrics. A dashboard with six well-chosen numbers beats one with forty.
Define every metric precisely
"Revenue" sounds obvious until finance, sales and the website team each report a different figure. Is it before or after tax? Are cancelled orders excluded? Are refunds deducted in the month of the sale or the month of the refund? Is it by order date or invoice date?
Write a short metric definition for each number, agreed by the people who will use it:
| Metric | Definition | Source | Owner |
|---|---|---|---|
| Net revenue | Invoiced amount excluding tax, minus credit notes against those invoices, by invoice date | Accounting database | Finance |
| New customers | Customers whose first paid invoice falls in the period | Accounting database | Sales |
| Fulfilment time | Hours from payment confirmed to shipment created, median | Order system | Operations |
This table prevents more arguments than any chart design ever will.
Prepare the data properly
Do not query production directly for heavy reports
Dashboards often run large aggregations. Running them against the live database that customers use can slow the application down. Better options, in increasing order of effort, are a read replica, a separate reporting database refreshed on a schedule, or a data warehouse that combines several sources.
Build summary tables
Rather than recalculating totals from millions of raw rows on every page view, pre-compute them. A nightly job might populate a daily summary:
CREATE TABLE daily_sales_summary (
sales_date DATE NOT NULL,
region VARCHAR(40) NOT NULL,
orders INT NOT NULL,
net_revenue DECIMAL(14,2) NOT NULL,
new_customers INT NOT NULL,
PRIMARY KEY (sales_date, region)
);
INSERT INTO daily_sales_summary
SELECT i.invoice_date,
c.region,
COUNT(DISTINCT i.id),
SUM(i.amount_ex_tax - COALESCE(cn.credited, 0)),
COUNT(DISTINCT CASE WHEN c.first_invoice_date = i.invoice_date
THEN c.id END)
FROM invoices i
JOIN customers c ON c.id = i.customer_id
LEFT JOIN (SELECT invoice_id, SUM(amount_ex_tax) AS credited
FROM credit_notes
GROUP BY invoice_id) cn ON cn.invoice_id = i.id
WHERE i.invoice_date = CURRENT_DATE - INTERVAL 1 DAY
AND i.status <> 'cancelled'
GROUP BY i.invoice_date, c.region;
(The date arithmetic shown is MySQL syntax; PostgreSQL would use CURRENT_DATE - INTERVAL '1 day'.) The dashboard then reads a few hundred rows instead of scanning the entire invoice history, and every chart uses the same agreed calculation.
Bring sources together
When metrics span systems, such as marketing spend from one tool and revenue from another, you need a shared key (customer ID, campaign code, date) and a scheduled process to load both into one place. This loading process is often called ETL (extract, transform, load) or ELT when transformation happens after loading.
Choosing a dashboard tool
- Off-the-shelf BI tools such as Microsoft Power BI, Looker Studio, Tableau or the open-source Metabase and Apache Superset. Quick to start, flexible, and good for internal teams. Watch per-user licence costs as usage grows.
- Embedded dashboards inside your own application, built with a charting library. Better when customers or partners need to see their own data, or when the dashboard must fit tightly into an existing workflow. Our web application development team builds these.
- Spreadsheets connected to a database. Perfectly reasonable for a small team, as long as the queries behind them are shared and controlled rather than copied into personal files.
Design a business dashboard that answers questions
- Lead with the headline numbers and compare each one to something: target, last month, or the same month last year. A number without context tells you little.
- Use the simplest chart that works. Lines for trends over time, bars for comparing categories, a table when people need exact figures. Avoid 3D effects and crowded pie charts.
- Show data freshness. "Updated 06:00 today" stops people making decisions on stale numbers without realising.
- Allow drill-down from a total to the underlying records, so people can check a surprising figure themselves.
- Respect access rights. Regional managers may only be allowed to see their own region; salary data should not be on a company-wide page.
Keep it trustworthy
A dashboard loses credibility the first time someone finds a wrong number. Reconcile key figures against the accounting system each month, monitor the refresh jobs, and alert when a load fails. Assign each dashboard an owner who reviews whether it is still used; retire the ones that are not. Our database management service includes building reporting databases and summary pipelines.
Key takeaways
- Design a business dashboard around the decisions it supports, not around all available data.
- Agree written definitions for each metric before building charts.
- Use replicas, reporting databases and summary tables instead of heavy queries on production.
- Show context and freshness, and reconcile figures regularly to keep trust.