The problem
Monday morning. The alignment meeting starts.- Sales says: $340k in the pipeline.
- Head of Marketing says: $290k in qualified leads.
- Finance says: $318k in revenue.
What we did
We connected HubSpot to our data warehouse and ran the first real analysis: where each deal comes from, what the conversion rate is per channel, and how much revenue each source actually generated. No filters. No time range. A full view of the historical pipeline.What we found
Best win rate
Partner Referral — 50% win rate. The most efficient channel, and likely the least prioritized in terms of time investment.
Highest volume, lowest return
Conferences/Events — The channel with the most leads and the worst conversion rate. Every event generates excitement about volume, but the data tells a different story. Leads are not revenue.
Warning sign
Paid — 4% win rate. Once you factor in acquisition cost (covered in later posts), this channel likely doesn’t pay for itself. Before this analysis, no one had that number on the table.
Watch the walkthrough
The takeaway
None of these conclusions required AI. They required having the data unified for the first time. This is what exiting Stage 00 delivers: the first reliable answer to the most basic RevOps question — where does our revenue actually come from? Not prediction. Not AI. Just data.The Skill
Download the file below and add it to your Claude Skills. It will query your HubSpot data at Nekt and generate the analysis automatically. ⬇ Download Skill file (.md)SQL
If you prefer to run the query directly in the Explorer or adapt it to your schema:- Nekt Express / GCP (BigQuery)
- AWS (Amazon Athena)
Variations
Filter by time period
Filter by time period
Filter by specific pipeline
Filter by specific pipeline
Add segmentation by current deal stage
Add segmentation by current deal stage
Implementation notes
propertiesis a struct — fields are accessed directly without JSON parsing.amountis a varchar — useTRY_CAST(... AS DOUBLE)to avoid errors on null values.hs_is_closed_wonandhs_is_closed_lostare strings ('true'/'false'), not booleans.- Deals imported from Pipedrive appear with
custom_source = NULL— excluded by the filter.
Next up
Now that there’s visibility into where revenue comes from, the next step is turning pipeline data into a dashboard the whole team reads the same way — and stop debating which number is right.03 · Pipeline Overview
Stage 01 · Visibility — Deals by stage, conversion rates, and revenue by period. The first panel everyone reads the same way.