PROJECT BLUEPRINT · Small business teams
Build a business dashboard with AI
A useful dashboard helps someone make a decision. Begin with the question you want to answer, then choose the smallest set of reliable numbers needed to answer it. A screen full of charts is not automatically useful.
A suggested project plan and original prompt—not a report of a completed Emergent test.
We may earn a commission if you purchase through our links.
What the first version needs
Make one operational decision easier using clearly defined, trustworthy data.
- Three to five metrics with written definitions.
- A clear data source and visible last-updated time.
- Filters that match the team’s actual workflow.
- Access controls before confidential business data is connected.
Define every number
Revenue might mean invoices sent, payments collected, or revenue recognised. A task could be overdue based on a date, a time zone, or a business-day rule. Write these definitions before generating charts. Include units, date ranges, and whether cancelled records are excluded. Otherwise two charts may look plausible while measuring different things.
Start with labelled sample data
Use a small dataset whose totals you can calculate yourself. Include missing values, refunds, duplicate entries, and an empty period. Mark sample data visibly so colleagues do not mistake the preview for a live business report. Connect the real source only after the expected behaviour is clear.
Explain failures and freshness
If an import fails, the dashboard should show that the data is stale rather than quietly presenting old values as current. Decide how often to refresh and who receives failure notifications. Restrict export access where downloads would expose private customer or staff information.
Choose one decision before choosing charts
A dashboard should shorten the path from information to action. For a fictional service business, the first question might be “Which completed jobs have not been invoiced?” That suggests a queue of records and an owner for each next action. A decorative revenue chart may be interesting, but it does not answer that operational question.
Write the decision, the person making it, the frequency, and the action that follows. A daily operations dashboard may need job status and overdue tasks. A monthly owner review may need collected revenue and expenses. Combining both without clear definitions often creates a screen where every number is visible and none is actionable.
Choose three to five metrics initially. For each one, define the source, formula, date field, exclusions, units, and refresh expectation. These definitions are part of the product, not background documentation to add after the charts look finished.
Work through a dataset you can calculate yourself
Consider this fictional invoice dataset. Amounts are illustrative units in one currency. The example deliberately separates invoice value from cash collected.
| Invoice | Issued amount | Collected | Status |
|---|---|---|---|
| A | 400 | 400 | Paid |
| B | 600 | 200 | Partially paid |
| C | 300 | 0 | Unpaid |
| D | 100 | 0 | Cancelled |
Excluding the cancelled invoice, issued value is 1,300, collected value is 600, and outstanding value is 700. A card labelled “Revenue” would be ambiguous without saying which definition it uses. In this example, use “Collected payments” for 600 and “Outstanding invoice balance” for 700. Those labels are easier to verify.
Now add a refund or a payment recorded after the selected reporting period. Decide whether the dashboard filters by invoice issue date or payment date. Neither choice is universally correct; they answer different questions. The interface should make the selected basis clear so a user does not compare incompatible numbers.
Build a data dictionary the team can understand
| Metric | Definition | Important exception |
|---|---|---|
| Open jobs | Jobs not completed or cancelled | Archived records need an explicit rule |
| Overdue tasks | Incomplete tasks past their due time | Timezone and business-day rules matter |
| Collected payments | Accepted payment records minus relevant refunds | Do not infer payment from invoice status alone |
| Outstanding balance | Eligible invoice amount minus applied payments | Partial payments must be represented |
| Conversion rate | Defined successful outcomes divided by eligible starts | The denominator needs a clear period and scope |
Give each metric an owner who can explain it. If two departments use different definitions of an active customer, do not silently choose one. Either agree on a shared definition or label the measures separately. A dashboard should reveal the difference rather than hide it behind a polished chart.
Choose views that support action
Use a table when people need to inspect records and act on individual rows. Use a line chart when the change over time matters. Use a bar chart when comparing categories with a consistent unit. A large pie chart with many tiny segments rarely helps someone find the next job that needs attention.
Pair summaries with drill-down records. If a card says seven overdue tasks, clicking it should show those seven tasks under the same filter. If the table shows six, the discrepancy needs investigation. Keep date range and timezone visible, and preserve filters when someone returns from a record detail page.
Build a dashboard using the supplied sample invoices. Show issued value excluding cancelled invoices, collected payments, and outstanding balance as separate metrics. Include the underlying table and a visible date-basis selector. Reconcile summary cards with filtered rows. Add empty, loading, stale-data, and error states. Do not label sample data as live.
Connect a source only after the sample behaves correctly
Decide which system is authoritative for each field. A CRM may own customer details while an invoicing service owns payment status. Avoid allowing edits in two places without a reconciliation rule. For a first version, read-only access to one stable source is often easier to operate than bidirectional updates across several tools.
Document the import frequency and what happens when a record changes or disappears. Repeated imports should not create duplicate records. A missing field should not silently become zero if zero has a different meaning. Show when information was last refreshed and whether the latest refresh succeeded.
Emergent’s FlowQuote case study describes linked quote and invoice records with a pipeline dashboard. The useful example is the relationship between an operational record and its summary, rather than a standalone chart. The account is vendor-published and not independently tested here. Source details.
Test failures that make plausible numbers wrong
Try an empty reporting period, a partial payment, a duplicate source record, a missing date, and a failed import. Inspect totals after each change. Test whether filtering by a staff member affects both cards and tables. If the source is unavailable, the page should identify stale data rather than presenting yesterday’s figures as current.
Check access to exports separately from access to summary charts. A person allowed to view an aggregate may not need a spreadsheet containing customer details. Downloading a file is still access to the underlying records. Test with a restricted account and inspect the actual export fields.
Make maintenance part of the handover
Write down where the data comes from, who can reconnect an integration, and who receives failure notifications. Include a small reference dataset with expected totals so future changes can be checked. When a business definition changes, update the dictionary and explain whether historical reports are recalculated.
Measure whether the dashboard changes a decision: fewer unassigned tasks, faster invoice follow-up, or less time reconciling records. Do not use the number of charts as the success measure. If staff still export everything and rebuild the calculation elsewhere, ask which definition or workflow the dashboard failed to support.
Your starting prompt
Use this as an editable brief. Replace the brackets with your own details and review the result before connecting real services.
Build an internal dashboard for [team] to answer [business question]. Use clearly labelled sample data first. Metrics are [names and definitions], filtered by [date/team/status]. Show units and last refresh time. Include empty, loading, and error states. Do not invent a live integration. Ask which data source and access roles to use before connecting real information.
A useful follow-up request
Add a data dictionary explaining each metric, then reconcile the summary totals with the visible table for the selected date range. Show stale-data warnings when refresh fails.
Check the result before launch
- Compare every metric with a hand-calculated sample.
- Test empty dates, refunds, and missing fields.
- Confirm filters affect charts and tables consistently.
- Check that restricted users cannot export private records.
Plan the cost and scope
Data connectors and refresh frequency can affect ongoing costs. A dashboard using one stable source is easier to maintain than one combining several services with different definitions.
Read our pricing guide and credit-planning guide before setting a budget.
Ready for a first draft?
Choose a builder, start with the essentials, and check the result one step at a time.