HubSpot Attribution Report: Which Sources Close Deals
Counting leads by source is easy and mostly useless. The report that matters follows each source to closed-won revenue, win rate and sales cycle, and it needs to be honest about what HubSpot source fields do and do not record.
To see which sources close deals in HubSpot, group your closed-won deals by source and report revenue, win rate, average deal size and sales cycle for each, not just lead counts. A source that generates the most leads often is not the one that generates the most revenue, and you can only see that once the report ends at a closed deal. This post is a method for building it, including what the source fields do and do not tell you.
Leads by source answers the wrong question
The default marketing report counts new contacts by source. It feels like attribution, and it rewards the wrong behavior. A source that floods the funnel with low-intent contacts looks great. A source that sends a few people who almost all buy looks weak. Anyone choosing budget from the lead count alone is optimizing for volume.
The question you want answered is "of the deals that reached a decision, which sources produced the wins, how big were they and how long did they take". That means the report has to end on the deal, with the outcome attached.
What the source fields actually record
HubSpot stores a source on contacts, companies and deals. The original source is set when a record is first created and is intended to stay put. It uses a fixed set of categories such as organic search, paid search, social, email marketing, referrals, direct traffic, offline sources and other campaigns. Two drill-down properties, source data 1 and source data 2, carry the detail, for example which campaign or referring domain. A separate latest source set records the most recent tracked touch.
That makes original source the nearest thing to first-touch attribution, and latest source closer to last-touch. Neither credits the middle of a long B2B journey where a prospect reads three emails, attends a webinar and clicks a retargeting ad. Be upfront about this in the report. "First-touch source" is a fair label. "What caused the deal" is not.
Also expect a sizeable offline or unknown bucket. Source is assigned by tracking. Deals a rep creates after a phone call, links that got forwarded, and untagged campaigns all land somewhere unflattering. That is a signal to fix capture, not a channel to cut.
The report, step by step
For each source value, compute these on deals whose close date falls in the period:
Closed-won revenue sum(amount) closed-won deals Deals won count closed-won deals Win rate won / (won + lost) closed deals only Average deal size mean(amount) closed-won deals Sales cycle (days) mean(days to close) closed-won deals
Here is an illustrative example, not real data. Suppose organic search closes 14 of 40 decided deals and referrals close 9 of 15. Organic search wins more total deals, referrals converts far better. Which one deserves the next hour of effort depends on whether you can scale referrals, and you could not tell from a lead count. Always show the deal count next to every rate, because a source with four closed deals can show any win rate.
Bucket by close date for outcomes. If you bucket by create date, recent deals are mostly still open, every source looks like it is losing, and the newest quarter is always the worst. Mixing the two date fields is the most common way this report goes wrong.
Add the funnel above the deal
Contacts carry lifecycle dates: when they became a lead, a marketing qualified lead, a sales qualified lead, an opportunity and a customer. Counting contacts by source that reached each of those shows where a source leaks. A source with plenty of leads and almost no sales qualified leads has a targeting problem. A source with healthy qualification and poor close rates has a sales follow-up problem. They need different fixes, and a single revenue number would hide the difference.
Doing it with Quiriz's HubSpot connector
The connector brings in [HubSpot] Deals with the original source and its two detail columns, [HubSpot] Contacts with the same source columns plus the lifecycle stage dates, and [HubSpot] Companies. Metrics for Closed-won revenue, Win rate, Average deal size and Sales cycle (days) are defined once, each with its closed flag and close date, so grouping them by source is a question rather than a rebuild. Examples to ask:
- "Closed-won revenue by original source this year."
- "Win rate by original source last quarter, with deal counts."
- "How many contacts reached MQL by source last quarter?"
- "Why are we losing deals this quarter?" grouped by closed lost reason, then filtered to one source.
Because the connector reads the same fields whether you ask in the app or later in a saved report, a monthly source review is the same question each time. If you have to present it, HubSpot Reports in PowerPoint covers getting it into slides.
Honest limits
- The source fields are single-touch. The connector does not build multi-touch credit and we do not suggest it can.
- Source quality depends on tracking. If your portal has a large unknown or offline bucket, the report will show that bucket.
- Ad spend is not in HubSpot. For cost per closed deal you need spend from your ad platforms joined in separately; how to calculate ROAS by channel shows the arithmetic.
- Data refreshes daily and is read-only. Quiriz does not change source values in HubSpot.
Teams running this for clients can find the agency workflow at Quiriz for agencies, and the CRM workflows at Quiriz for CRM teams.
See which HubSpot sources actually close
Connect HubSpot and ask for closed-won revenue and win rate by source. Free to start.
Try Quiriz free →