The short answer
Timestamp every stage change in the CRM — new, contacted, app out, docs in, submitted, funded — and two numbers fall out that most brokerage owners have never seen: each rep’s time from lead in to first dial, and cost per funded deal by lead source. Read over a month, six months and a year, they show where the pipeline actually stalls. If the time from new to contacted is an hour, that is the bottleneck, hands down.
A floor-wide median time to first dial tells you there is a problem. It does not tell you whose. The per-rep split does, and so does the per-source cost per funded deal — and both come from the same thing: a timestamp every time a lead changes stage.

Stamp every stage
| Stage change | What the gap measures |
|---|---|
| New → contacted | Time to first dial: the rep, the routing and the alerts |
| Contacted → app out | How fast a conversation becomes an application |
| App out → docs in | The bank statement step, usually the biggest leak |
| Docs in → submitted | Packaging time on your side |
| Submitted → funded | The funder, and how complete the file was |
| Funded → renewal date | When the next deal is due, computed rather than remembered |
With every stage stamped, you can read the averages across a month, six months and a year, and fix the bottleneck the data points to rather than the one somebody complains about loudest. Alex’s view of which one it usually is: if your time to contacted is an hour, that is the biggest bottleneck, hands down. But you cannot know that without the timestamps.
Number one: time to first dial, by rep
The median from lead in to first call, per rep. In the board’s example, rep A is at three minutes, rep B at eleven and rep C at fourteen hours. The floor median hides that entirely, and so does every complaint about lead quality. Rep C is why the leads are bad — the same fourteen hours that turned up in one client’s export in speed to lead, except this time with a name on it.
Use the median rather than the average, for the reason the weekly metrics give: a handful of leads dialled days late drags an average somewhere no lead ever was. And pair it with the five-minute reassignment rule, so a slow rep costs you a coaching conversation rather than the lead.
Number two: cost per funded deal, by source
Spend on a source tag divided by the deals funded off it. The example on the board has vendor A at $1,140, an aged sheet at $870, the shop’s own ads at $1,400, and vendor B at nothing funded from fifty leads. Vendor B gets cut; the others get compared on what they produce, and the order goes to whichever sources deliver merchants that fund. It only works if every lead carries its source permanently, which has to start before the leads arrive.
Setting it up
In GoHighLevel: a “first contacted at” field set by the first outbound call or text, then a report by user from lead created to first contacted. The other stages work the same way — a date field written when the opportunity moves — and any CRM with workflow triggers on stage changes can do it. The CRM setup guide has the rest of the instrumentation.