The dashboard is an hour behind.
Both reports count each opportunity once. I export them at 10:00 UTC, but the dashboard last refreshed its data at 09:00. Opening it at ten does not give it the latest CRM changes. It also has a Team A filter that the CRM list does not.
| Definition | CRM list | Dashboard |
|---|---|---|
| Entity counted | Distinct opportunity ID | Distinct opportunity ID |
| Eligible status | Active opportunity | Active opportunity |
| Team scope | All teams | Team A only |
| Data snapshot | 10:00 UTC | 09:00 UTC |
| Date range | No additional date filter | No additional date filter |
| Visible total | 12 | 10 |
Find the missing opportunity IDs.
01
Save both views
Record the report, capture time, data freshness, active filters and intended user view. For dated metrics, include the date field, timezone and cutoff. Use authorised exports or report detail; keep customer information in the approved workspace.
02
Check what a row represents
Use the opportunity ID rather than a name that can be shared or changed. Check whether one row represents an opportunity, an activity or an association. Keep missing IDs unresolved instead of treating all blank identifiers as one matched record.
03
Find records present on only one side
Compare CRM IDs against dashboard IDs, then dashboard IDs against CRM IDs. A comparison in only one direction can miss records included solely by the other report. Retain repeated rows separately while investigating what caused them.
04
Look at the records that differ
Check the record against the actual filter and snapshot. If you cannot establish its earlier state, mark the cause unconfirmed. A current status alone does not prove what the status was when the dashboard last refreshed.
Try the two changes separately.
Include Team B, then refresh the example data. Watch which opportunity appears after each change. You can also compare two reports that both show ten, or count three activities belonging to one opportunity.
Fictional reconciliation
Two records explain this difference.
The CRM contains O-001 through O-012. The dashboard contains O-001 through O-010. That leaves O-011 and O-012 to check. The record history shows when O-011 became active, and the saved dashboard filter explains why O-012 is excluded.
| Opportunity | Evidence | Why it differs |
|---|---|---|
| O-001–O-010 | Present in both views | Ten shared opportunities |
| O-011 | Became active at 09:30; dashboard snapshot is 09:00 | The dashboard snapshot predates the stage change |
| O-012 | Active and owned by Team B; dashboard filter selects Team A | The reports have different team scopes |
The meeting needs a number for the whole team.
Those two records account for the gap: twelve minus two is ten. There are no extra opportunities on the dashboard side. For a meeting covering all teams, I would ask the report owner to include Team B and refresh the data. If the dashboard is meant to show Team A at 09:00, its count is correct for that purpose. The CRM comparison needs the same team and time.
Three rows may still mean one opportunity.
O-001 has three related activities. A detail report can show O-001 three times because each activity occupies a row. There is still only one opportunity.
HubSpot documents that multi-source reports can count records more than once through associations. It also explains that changing the primary source changes which records appear. Check what the report counts before deleting repeated rows.
| Opportunity ID | Activity ID |
|---|---|
| O-001 | A-101 |
| O-001 | A-102 |
| O-001 | A-103 |
Opening the underlying report can change the view.
In HubSpot, dashboard filters interact with the report filters. Some matching filters are overridden; complex combinations can add conditions instead. Filters also depend on the report data source and type. Its individual view-and-filter action does not apply dashboard-level filters.
You can therefore open a report to investigate a dashboard total and find yourself looking at a different set of records. Save the filters from both views. These are HubSpot’s rules; check the equivalent behaviour in the tool you use.
When filters and refresh time do not explain it.
The next check depends on what differs. If both reports contain the same opportunity IDs but show different values, look at their calculations and saved data. Microsoft’s Power BI guidance also covers relationships between tables and access restrictions. The CRM records can be correct while the report still gives the wrong result.
| Finding | What to check | Who can help |
|---|---|---|
| A record is absent from one view | Inspect its filter values, snapshot and intended access scope | Report owner |
| One ID occupies several rows | Inspect associations and the entity the measure counts | Report modeller |
| The same IDs have different displayed values | Compare snapshot values and calculation logic | Report and source-field owners |
| A source field is missing or invalid | Trace the field to intake or the update that changed it | Source-field owner |
| The evidence does not establish a cause | Keep the discrepancy open with the missing evidence named | Assigned investigation owner |
Matching totals can hide different opportunities.
In a second fictional example, both reports show ten. Nine IDs match, but the CRM includes O-010 while the dashboard includes O-013. Both counts are ten, but they describe different opportunities. If you are comparing pipeline value, check the amounts on the shared records as well.
| Membership | CRM | Dashboard |
|---|---|---|
| Shared IDs | O-001–O-009 | O-001–O-009 |
| Present on one side only | O-010 | O-013 |
| Distinct total | 10 | 10 |
Save the explanation with the report.
A note saying “fixed the total” will not help when the difference appears again. Keep the two missing IDs and the reason for each alongside the report. If you cannot explain a record yet, say what remains to be checked. Differences caused by access permissions need review by the owner.
| Record | What to keep |
|---|---|
| Comparison | Reports, entity/ID, filters, date boundaries, user view and data timestamps |
| Difference | IDs present only on each side; repeated rows and same-ID value differences |
| Explanation | What explains each record, and what you have not confirmed |
| Decision | Which teams and time the meeting needs the report to cover |
| Follow-through | Who will check or change the report, and how you will check it afterwards |
