Use case
What share of leads make it through each stage, and which sources actually convert?
A conversion rate is a division, and almost all of the difficulty is in the denominator. Which records belong in it, which period they are counted in, and what to do with the ones that went both ways decide the answer long before any arithmetic happens.
Conversion by lead source
saved report · Sales / Pipeline
By source
| Lead source | Leads | Contacted | Qualified to won | Lead to won |
|---|---|---|---|---|
| Referral | 231 | 88.3% | 61.0% | 41.6% |
| Webinar | 344 | 64.2% | 38.4% | 17.7% |
| Paid search | 486 | 41.2% | 35.1% | 17.3% |
| Organic | 152 | 72.4% | 52.8% | 30.9% |
| Unknown | 56 | 39.3% | 30.2% | 14.3% |
| All sources | 1,269 | 61.4% | 42.1% | 23.3% |
applied — '(auto-created)' contacts come from inbound calls; they are not leads, and counting them would sink every rate in this table
Every figure above is invented. We build these reports for real businesses and do not put their numbers, or their names, on a public page.
Why it is not one query
The rules that decide the number.
Not every contact is a lead
Keap manufactures a contact named (auto-created) when an unknown number calls in. Counted as leads they sink every conversion rate in the account, and they are invisible until somebody asks why the rate fell. The rule that excludes them is published beside the dataset.
Won and lost at the same time
Records reach both a won and a lost state often enough that the ambiguity has to be settled once. In one build the answer is that it counts as lost. That is a judgement about the business, written down, so every report and every agent gives the same answer.
The denominator moves with the period
A lead created yesterday has not failed to convert. Rate the current month against leads that arrived in it and the month always looks bad. The cohort a rate is measured over is a parameter, not an accident of the date filter.
Stage names change
Pipelines get renamed and reordered, and old records keep the old names. A stage dimension maps what the CRM says to what the business means, so a rename does not silently split one stage into two.
A blank is not a no
A missing outcome can mean lost, or still open, or never worked. Those are three different denominators, and which one applies is a rule the customer agrees to rather than something a query can infer.
Rates do not add up
A stage-to-stage rate and an overall rate are different questions, and averaging the stage rates gives neither. Each section states which population it is dividing by, on the section.
Related questions
Connect your AI agent today.
Connect your CRM and let the first import run. Then add ReportMojo to Claude Desktop, ask it about your business, and have it build the reports you need.