GTM strategy
Before You Trust HubSpot Attribution, Audit the Revenue Chain
See the four CRM checks Alice Ren runs before trusting HubSpot attribution, with concrete examples, lifecycle scoring, and her open-source audit method.
One of the questions a CMO is asked most often by the CEO is: can we track this deal all the way back to the people and marketing interactions that supposedly influenced it?
This question can be easy to answer. There are plenty of attribution tools on the market, and every one of them promises to track every touchpoint and show exactly where every euro of revenue came from.
It can also be very difficult to answer. No matter how powerful the tool is, it can only work when the underlying data is clean and complete.
So when a client asks me this question, I usually say: it depends on how mature your data is. Before I run any attribution tool, I thoroughly audit the CRM data. I usually check four things: data completeness, connections between records, lifecycle integrity, and attribution trust.
1. Is the CRM data complete enough to answer the question?
I start with the individual records. A Contact needs a usable identity, normally an email or another reliable identifier, plus the source and lifecycle fields relevant to the report. For account-level reporting, a Company needs a governed identifier such as a reliable domain. Duplicates or unclear parent, subsidiary, headquarters, and branch relationships can split one buying group across several records. A Deal needs amount, dates, owner, source evidence, and the people involved.
HubSpot defines Original Source as the “first known web source through which a contact interacted with your business”. An empty source field leaves the acquisition claim incomplete. On the Deal side, HubSpot requires a Deal in revenue attribution to be closed won, have at least one associated Contact, and include Amount, Create date, and Close date.
I once run a test in a portal that contains 1400 Contacts, 423 Companies, and 331 Deals. 249 Contacts have no lifecycle stage, 178 Company records are duplicate-domain candidates, and 37 Deals have no owner. 115 Deals are closed won, and 22 of them have no complete source trace. 22 out of 115 makes it look like a 19% issue. But against the closed-won revenue population, the same gap affects 56%. Yes, you think it's just a some gap, but it results in more than half of your revenue come from where you don't know.
That is why completeness cannot be reduced to one portal-wide percentage. Instead, we should always measure the cohort behind the decision, fix the capture process, and avoid inventing historical values. Only then do I ask whether the clean records connect into a revenue path.
The attribution report inherits every missing field in the records beneath it.
2. Do the records connect into one revenue path?
I have seen this in the portal of a startup client. The CRM contained Contacts, Companies, Deals, and sales activities, so the dashboard looked populated. I opened a closed-won Deal and found the Company. The Contact carrying the marketing history was not associated with the Deal. Following the revenue backwards stopped halfway.
A person can infer that the records belong together. But HubSpot, or any attribution tool, can only use the relationship that was recorded. Hubspot allows users to “associate their records together”, but creating the records does not create every required connection.
The consequence is direct. A closed-won Deal needs an associated Contact to enter revenue attribution, and relevant sales activities need the right Contact and Deal context. My audit starts from the Deal and follows it backwards through the Company, people, and activities. Duplicate Companies and Contacts linked to several active Deals go to someone who understands the account structure. I rarely auto-merge records or manufacture a missing relationship. Even complete links can describe the wrong selling journey, which is why lifecycle comes next.
Complete, missing, and ambiguous connections require different repair decisions.
3. Does the lifecycle describe the way the company actually sells?
Companies are often confident about their lifecycle design because the stages look tidy on a slide. Then I open the portal and find Contacts with no stage, Customers with no closed-won Deal, MQLs with no owner, high-intent Contacts with no Deal or documented valid skip, and open Deals with no next action. That is a big red flag.
HubSpot says lifecycle stages help “categorize your contacts and companies based on where they are in your marketing and sales processes”. A blank stage leaves a Contact's position unknown. A Customer with no closed-won Deal breaks continuity between status and revenue. An ownerless MQL leaves no recorded handoff. A high-intent Contact with neither a Deal nor a valid skip leaves no recorded path into pipeline.
Context matters. An MQL without a Deal may signal a broken handoff in a sales-led company and be normal in a product-led motion. I judge the record against the intended journey, then score unexplained leakage.
For example, in a sales-led business, I might find 20 open Deals that should have a documented next action, but five do not. That does not automatically mean the lifecycle is badly designed. It tells me that a quarter of the records I would expect to move through that handoff have no visible path forward. I then check whether those gaps are genuine process failures, legitimate exceptions, or simply missing CRM data. The same logic applies to ownerless MQLs, Customers without a closed-won Deal, or high-intent Contacts that never appear in pipeline.
This is why I do not assess lifecycle stages in isolation. The labels only become meaningful when they line up with ownership, Deals, pipeline movement, and the exceptions the business actually allows. Once I understand whether those connections hold, I can move on to attribution and ask a more important question: whether the revenue data in HubSpot can actually be traced back through a lifecycle that reflects how the company sells.
Lifecycle integrity connects recorded demand to the Deals that attribution is asked to explain.
4. What can the attribution report honestly support?
Attribution is usually where the consequences of earlier CRM gaps become visible.
For example, I might open a client's portal and find that half of the Contacts have no Original Traffic Source. Then I look at the most recent acquisition and find that nearly every new Contact is missing it. The closed-won Deals may still show revenue, but if the associated Contacts or source history are incomplete, I cannot reliably trace that revenue back to the marketing activity that influenced it.
This is how a precise-looking dashboard can create false confidence. The attribution model may calculate credit correctly across the interactions it can see. But it cannot reconstruct evidence that was never captured, associated, or carried through the lifecycle in the first place.
So before I question whether the business should use first-touch, last-touch, or multi-touch attribution, I check whether the underlying evidence is complete enough to support any of them. If recent source capture is broken, I do not treat the acquisition mix as complete. If Contacts are missing from Deals, I cannot reliably connect their marketing activity to revenue. If critical Deal data is missing, I treat the revenue view for that period as incomplete.
I fix the broken evidence before changing the attribution model.
Repair the evidence nearest the claim before debating how the model distributes credit.
That is the pattern behind most of my CRM audits: the answer rarely sits in one field, one report, or one dashboard. I have to follow the evidence across properties, associations, lifecycle stages, Deals, and attribution data before I can tell whether the CRM reflects what is actually happening in the business.
Doing that manually takes time. I used to spend hours opening property histories, checking associations, comparing lifecycle states, and tracing every finding back to its source. After repeating the same process across multiple client portals, I started turning those checks into a more systematic workflow.
That workflow now becames B2B Growth Audit: a AI agent skill designed to automate much of the evidence gathering and consistency checking, so I can spend less time hunting through HubSpot and more time interpreting what the findings actually mean.
It contains two independent, read-only audits. In my runs, the first detailed report usually takes around 10 to 20 minutes, depending on portal size and HubSpot API response time. It returns an evidence trail and prioritised repair plan without writing to HubSpot, merging records, reassigning owners, or changing lifecycle stages.
And the project is open source under the MIT licence. You are welcome to download it from GitHub. If the report finds something odd, feel free to contact me.
Alice Ren
Founder of Smartify Marketing, a B2B SaaS marketing partner helping teams build clearer strategy, stronger systems, and more effective execution in the AI era.