# Custom CRM Dashboards: Define the Metrics Before Building the Charts

- Link: https://jagjeetsingh.in/custom-crm-dashboard-metric-definitions/
- Published: 2026-10-29T12:01:19+05:30
- Author: Jagjeet Singh

Editorial illustration. Any screens and records are illustrative, not a delivered
client system.

Two CRM charts can show different totals and both be following their specifications.
One counts enquiries created this month; the other counts opportunities still open
today. If the labels simply say “leads”, managers have to guess which decision either
number supports.

My [custom CRM dashboard development](https://jagjeetsingh.in/custom-crm-development/)
starts with a metric dictionary and a small set of business questions. Charts follow
those definitions. This avoids spending on a polished dashboard that cannot be reconciled
to records or explained by the people who use it.

 [     Share your reporting questions and current record structure to scope a custom CRM dashboard pilot.  ](https://jagjeetsingh.in/custom-crm-development/#service-enquiry)

 [     Chat on WhatsApp  ](https://wa.me/918085546806?text=Hi+Jagjeet%2C+I+read+your+article+%22Custom+CRM+Dashboards%3A+Define+the+Metrics+Before+Building+the+Charts%22+and+would+like+to+discuss+a+project.)

## Start with decisions rather than chart types

Ask what someone should do after reading the dashboard. A manager might need to 
redistribute overdue work, investigate a fall in qualified enquiries or prepare 
a handover. Each decision needs a clear measure and a route to the relevant records.

Limit the pilot to a few decisions with named owners. A request for twenty charts
often contains duplicated or incompatible definitions. Ask which action would change
if a number moved. If nobody can answer, keep that metric outside the initial release
until its purpose is clear. This makes a smaller dashboard more useful without pretending
that fewer charts automatically create better performance.

## Define the record grain before counting

[Microsoft’s modelling guidance](https://learn.microsoft.com/en-us/power-bi/guidance/star-schema)
explains the importance of facts, dimensions and the level at which data is recorded.
The same principle applies to a custom CRM: joining enquiry, task and activity records
can change the number of rows behind a chart.

A lead with three follow-up tasks is still one lead if the metric counts leads. 
Decide whether a measure counts unique business records, events, line items or snapshots.
Treat that decision as part of the specification. This is modelling guidance, not
a requirement to use Power BI or any particular reporting product.

## Create a metric dictionary your team can sign off

The table below is an illustrative dictionary for a fictional CRM. Replace its definitions
with decisions agreed by your team.

| Metric | Grain and inclusion | Date rule | Reconciliation | 
| New enquiries | Unique enquiry IDs created in period | Creation time in agreed timezone | Match filtered enquiry list | 
| Open opportunities | Eligible records in open states | As-of snapshot | Inspect status membership | 
| Overdue tasks | Incomplete tasks past due time | Current agreed time | Match task queue | 
| Qualified enquiries | Records meeting approved criteria | Explicit qualification date | Review sample transitions |

Add the owner, excluded states, missing-value behaviour and access rule. Avoid calculating
a conversion rate until its numerator, denominator and time relationship are agreed.

## Treat dates and changing statuses explicitly

Creation date, scheduled date and closing date answer different questions. A record
that moved between stages this week may have been created months ago. Decide whether
the dashboard describes current state, historical transitions or a cohort created
during a specific period.

Write down the timezone and the boundaries used for a day, week or month. Agree 
how reopened, merged or deleted records affect the measure. If historical state 
was not recorded, explain that limitation rather than presenting a current snapshot
as a reliable past trend. These decisions often matter more than whether the chart
uses bars or a line.

## Check totals and distinct records separately

[Microsoft’s distinct-count documentation](https://learn.microsoft.com/en-us/dax/distinctcount-function-dax)
illustrates why distinct totals need not equal the sum of grouped values. A record
present in more than one category can appear in each group but be counted once in
the overall total. That distinction should be understandable in your dashboard.

Prepare a small fictional dataset with records that cross categories and records
with missing values. Calculate the expected result independently before reviewing
the chart. When a total is intentionally non-additive, use a precise label or explanation.
Do not “fix” the number merely to make it match an incorrect spreadsheet formula.

## Design the chart and its record-level handoff

A dashboard should help an authorised user investigate a number. Define the filters,
default period and route to the corresponding list. Preserve the same business definition
when moving from the chart to records, so the drill-down does not quietly use a 
different date or status filter.

Apply permissions to the underlying data and exports, not only the dashboard menu.
A team member’s view may legitimately differ from a manager’s view. Make that context
visible. Also define empty states, delayed refresh messages and small-screen layouts
so the interface does not imply that missing or unavailable data equals zero.

## Commission a reconciliation-based pilot

The pilot should deliver the metric dictionary, data mapping, a limited dashboard,
access rules and a repeatable reconciliation sheet. Use sample records with known
expected outcomes. The business owner should approve definitions before additional
charts are added.

 * Each number matches the agreed sample and filtered record list.
 * Date boundaries and timezone behaviour follow the dictionary.
 * Repeated joins do not accidentally inflate unique-record counts.
 * Grouped and overall totals behave as documented.
 * Role-specific views and exports respect the approved access scope.
 * Empty, delayed and missing-data states are understandable.

## Send the definitions with your development brief

Share the decisions the dashboard supports, the current record model and any existing
spreadsheets. Include approved definitions if they exist, and identify disagreements
rather than hiding them in chart labels. Give the developer fictional examples of
edge cases and name the person who can approve each metric.

My [dashboard MVP briefing guide](https://jagjeetsingh.in/next-js-dashboard-development-mvp-brief/)
covers delivery scope, while the [custom CRM comparison](https://jagjeetsingh.in/custom-crm-vs-off-the-shelf/)
helps assess implementation choices. I can plan [custom CRM reporting implementation](https://jagjeetsingh.in/custom-crm-development/)
around a reconciled pilot, with clear definitions your team can continue using after
handover.

 [     Share your reporting questions and current record structure to scope a custom CRM dashboard pilot.  ](https://jagjeetsingh.in/custom-crm-development/#service-enquiry)

 [     Chat on WhatsApp  ](https://wa.me/918085546806?text=Hi+Jagjeet%2C+I+read+your+article+%22Custom+CRM+Dashboards%3A+Define+the+Metrics+Before+Building+the+Charts%22+and+would+like+to+discuss+a+project.)
