HubSpot Reporting common mistakes
HubSpot Reporting · Understand the traps and how to avoid them.
Building a single-object Contacts report and expecting deal-stage or deal-amount fields to populate, then reporting blank or misleading pipeline values.
HubSpot single-object reports can only use properties on the selected object; deal properties live on the Deal object and are not automatically available in a Contact report.
What to do instead
Use the Custom Report Builder with Contacts as the primary object and Deals as an associated object, or build the report directly on Deals. Before building, confirm which object owns each property and whether an association is required.
Labeling a report a 'funnel' but using Lead status values, or using Lifecycle stage when the question asks about sales pipeline progress.
Lifecycle stage, Lead status, and Deal stage are different properties at different levels: contact journey phase, sales follow-up status, and deal pipeline stage. They are not interchangeable.
What to do instead
Map each question to the correct property: Lifecycle stage for contact funnel phase, Lead status for sales follow-up state, and Deal stage for revenue pipeline. State the property used in the report title or description so viewers do not misread it.
Publishing one shared team dashboard with no dashboard-level filters or permissions, then treating complaints that the numbers are 'wrong' as a data problem.
Reports default to the data the viewer can access, and without dashboard filters a sales leader sees all owners rather than their team. Permissions can also change what each viewer sees.
What to do instead
Apply dashboard filters for date range, owner, and team where supported, set dashboard permissions for the intended audience, and add a short description explaining the filter scope. Test the dashboard as a rep or manager before sharing.
Using page views as the traffic metric when the question asks how many visits or sessions came from a channel.
Page views count each page load, sessions count visits, and visitors count people. A single session can generate multiple page views, so page views overstate traffic volume.
What to do instead
Use Sessions for traffic volume by source or channel, Page views for content consumption, and Visitors for audience size. Check the metric definition in traffic analytics before answering and avoid mixing these terms in report labels.
Reporting traffic without excluding internal IPs or tagging campaigns, then treating inflated direct traffic as a real acquisition channel.
Internal visits inflate sessions, and direct traffic is a catch-all for untagged, unknown, or missing referrers. HubSpot filters known bots, but internal IP exclusion and UTM discipline are configuration tasks, not automatic.
What to do instead
Exclude company IPs in traffic settings, apply consistent UTM parameters to campaigns, and investigate direct traffic rather than reporting it as a channel. Compare direct traffic with campaign launch dates to spot untagged activity.
Presenting flywheel insights as a linear funnel and only reporting MQLs or deal counts, while omitting engagement, retention, and delight metrics.
The flywheel model emphasizes attract, engage, and delight, including customer retention and advocacy. A funnel-only report misses friction, post-sale health, and repurchase behavior.
What to do instead
Align report sections to the three flywheel phases: attract metrics such as traffic and leads, engage metrics such as conversion and sales activity, and delight metrics such as ticket resolution, feedback, retention, and repeat purchase. Use these to identify where the flywheel is losing momentum.
Calculating ROI as (revenue minus cost) divided by revenue, or presenting attributed revenue alone as ROI.
ROI measures return relative to cost, so the denominator must be cost. Dividing by revenue produces a margin-like percentage, and revenue alone says nothing about profitability.
What to do instead
Use the formula (revenue minus cost) divided by cost, multiplied by 100 for a percentage. Include all campaign costs and clearly state the revenue attribution model and date range used.
Building a customer journey report with overlapping stage criteria or no clear entry rules, then interpreting the resulting drop-off as real customer behavior.
Journey stages must be ordered and mutually exclusive. If a contact can qualify for multiple stages at once, stage counts overlap and drop-off percentages become unreliable.
What to do instead
Define explicit entry and exit criteria for each stage, ensure a contact can occupy only one stage at a time, and validate the journey on a small known cohort before trusting aggregate drop-off numbers.
In the Custom Report Builder, using 'Count of deals' when the question asks for total deal amount, or summing a property that is already an average or calculated value.
Aggregation changes the meaning of the result: count counts records, sum adds values, and average divides by record count. Some HubSpot properties are calculated and should not be summed again.
What to do instead
Choose aggregation deliberately: Count for record volume, Sum for totals, Average for mean values. Check the property type before adding it, and preview the raw data to confirm the aggregation matches the question.
Sharing a report link or scheduled email without checking data permissions, report ownership, or review cadence, then assuming the audience sees the same numbers as the builder.
HubSpot reports respect user permissions and data access, and shared reports can become stale when filters, properties, or pipelines change. An unowned report drifts from its original purpose.
What to do instead
Share through a permissioned dashboard where possible, schedule recurring emails with an explicit owner, document the report's purpose and filters, and set a review cadence to catch broken filters or changed data sources.