Dashboard vs Report
Dashboard vs Report
Technical Explanation
Dashboards and reports serve different purposes. Understanding when to use each is fundamental to effective data communication.
Dashboard vs Report Comparison
| Aspect | Dashboard | Report |
|---|---|---|
| Purpose | Monitor status | Document details |
| Updates | Real-time/continuous | Periodic/snapshot |
| Interactivity | High (filters, drills) | Low (static) |
| Data depth | Summary | Detailed |
| Audience | Broad, recurring | Specific, one-time |
When to Use a Dashboard
- Monitoring KPIs daily/continuously
- Comparing metrics across segments
- When decisions happen frequently
- When different viewers need different views
When to Use a Report
- Detailed analysis for a decision
- One-time investigation
- Regulatory/compliance documentation
- When you need to see individual records
Code Examples
Using the CatCafe dataset:
-- DASHBOARD QUERY: Summary metrics for monitoring
-- (High-level, fast to read, updateable)
SELECT
DATE_TRUNC('day', order_date) as date,
COUNT(*) as orders,
SUM(total_amount) as revenue,
COUNT(DISTINCT customer_id) as customers
FROM orders
WHERE status = 'completed'
AND order_date >= CURRENT_DATE - INTERVAL '7 days'
GROUP BY DATE_TRUNC('day', order_date)
ORDER BY date;
-- REPORT QUERY: Detailed transaction list
-- (Detailed, for audit or one-time analysis)
SELECT
o.id as order_id,
o.order_date,
c.name as customer_name,
c.email as customer_email,
o.total_amount,
o.status,
cat.name as cat_name
FROM orders o
JOIN customers c ON o.customer_id = c.id
LEFT JOIN order_items oi ON o.id = oi.order_id
LEFT JOIN cats cat ON oi.cat_id = cat.id
WHERE o.order_date >= '2024-01-01'
AND o.order_date < '2024-02-01'
ORDER BY o.order_date DESC;
-- DASHBOARD: KPI summary
SELECT
COUNT(DISTINCT customer_id) as active_customers,
SUM(total_amount) as total_revenue,
AVG(total_amount) as avg_order_value,
COUNT(*) as total_orders
FROM orders
WHERE status = 'completed'
AND order_date >= CURRENT_DATE - INTERVAL '30 days';
-- REPORT: Detailed customer list with all attributes
SELECT
c.id,
c.name,
c.email,
c.phone,
c.city,
c.registration_date,
COUNT(o.id) as order_count,
SUM(o.total_amount) as lifetime_value
FROM customers c
LEFT JOIN orders o ON c.id = o.customer_id
WHERE c.registration_date >= '2024-01-01'
GROUP BY c.id, c.name, c.email, c.phone, c.city, c.registration_date
ORDER BY lifetime_value DESC;
The Cat Analogy
Dashboard = Cat's health tracker (you check daily):
Energy: ●●●○○ (3/5)
Steps: 4,500 / 6,000
Water: OK
Sleep: Good
Quick status check, action if red
Report = Cat's vet visit summary (detailed analysis):
Full examination results:
- Weight: 10.2 lbs (up from 9.8 lbs)
- Teeth: Mild tartar buildup
- Bloodwork: All values normal
- Recommendations: Dental cleaning in 3 months
Detailed explanation of each finding
Same cat, different purposes!
Exercises
Exercise 1
When would you use a dashboard vs a detailed report?
Exercise 2
Convert this report into dashboard KPIs: "Here are all 1,247 transactions from Q1 with customer details, order items, and payment information."
Exercise 3
What makes a dashboard good for monitoring but bad for detailed analysis?
Exercise 4
Design both a dashboard and a report for tracking monthly revenue.
Key Takeaways
- Dashboards: Monitor, summary, continuous, interactive
- Reports: Document, detailed, periodic, static
- Use dashboards for recurring decisions
- Use reports for one-time analysis or documentation
- Don't build dashboards when a periodic report suffices