Bottom Line Studio AI

Your sales leaderboard is lying to you

We moved 129 “Stage 1” deals back a stage once we checked whether the meeting behind each one actually happened. The fix took a script. The hard part was the definition.

A leaderboard counts what the CRM says happened. Nobody had checked whether it did.

Sound familiar? Your top rep for new pipeline is top by a mile, and nobody can quite say why. Stage 1 counts keep climbing while conversion quietly sags. And every pipeline review opens with an argument about what counts.

What we found

On a client engagement this summer, the sales leaderboard ranked reps on Stage 1 opportunities created. On paper, Stage 1 meant a discovery meeting had happened. In practice, it meant someone had changed a picklist. Nothing connected the two.

So we checked. The meeting data was already sitting in the warehouse next to the CRM data. We lined up every Stage 1 opportunity against the real meetings on its account. 129 had no meeting behind them.

The check itself was plain SQL: for each opportunity, look for a real meeting with someone at that account. No meeting, no Stage 1. The rule had always been written down somewhere. It had just never been run against the data.

This isn’t a story about reps cheating. When a field is easy to set, nothing checks it, and a leaderboard rewards it, the number drifts. That’s a system problem, and it gets a system fix.

And it doesn’t stay on the leaderboard. Stage 1 counts feed pipeline coverage, coverage feeds the forecast, and the forecast feeds the board deck. A deal with no meeting behind it looks exactly like one with a meeting, all the way up. The leaderboard is just where it’s easiest to spot, because it puts a name next to the number.

The leaderboard counted what the CRM saidBefore: a rep moves a deal to Stage 1, nothing checks that a meeting happened, and the leaderboard counts it anyway. After: each new opportunity is checked against real meeting data; with a meeting it becomes Stage 1, without one it goes to a new stage, S0. 129 deals moved back to S0, snapshotted first with an undo script written before the move.The leaderboard counted what the CRM said.Nobody had checked whether the meeting behind each “Stage 1” actually happened.BEFORE · STAGE 1 = A PICKLIST MOVEDA rep sets the stage to Stage 1Nothing checks a meeting happenedThe leaderboard counts it anywayEasy to set + nothing checks it + a leaderboardrewards it = a number that drifts. A system problem.AFTER · STAGE 1 = A MEETING THAT HAPPENEDOpportunity createdIs there a real meeting on the account?checked against meeting data already in the warehouseYes → Stage 1counts on the leaderboardNo → S0exists, not earned yet129deals moved back to S0snapshotted first · undo script written before the moveCount what happened, not what was typed.BOTTOM LINE STUDIObottomlinestudio.ai
Before: Stage 1 meant a picklist moved. After: Stage 1 means a meeting happened — and everything else waits in S0.

What we changed

We added a stage in front — S0 — for opportunities that exist but haven’t earned Stage 1 yet, and moved the 129 back to it. Before touching a single record, we snapshotted every one of them and wrote the script that would reverse the move. Then we wrote the runbook, so the next bulk change isn’t a one-off act of courage. Once S0 existed, the leaderboard counted meetings that happened instead of picklists that moved.

S0 isn’t a penalty box. A deal in S0 is still in the pipeline and still being worked. It just doesn’t score until a meeting happens — which is what everyone thought Stage 1 meant in the first place.

The SQL was the easy part. The hard part is the conversation it forces: who owns what “Stage 1” means? Sales wants it early. Finance wants it late. RevOps wants it consistent. If nobody owns it, the leaderboard does — and a leaderboard optimizes for whatever it counts.

What to take from it

  • Every stage needs a check that can fail — a meeting, a signed document, a date. If nothing can fail, nothing is being checked.
  • Run the rule, don’t just write it. A definition nobody has ever queried against the data is a guess with a nice label.
  • Test the definition against the data before you argue about the number — the argument gets a lot shorter.
  • Snapshot before any bulk move, and write the undo first.
  • Give the definition one owner — a name, not a committee.
  • Leaderboards reward what they count. Make sure it’s the thing you meant.
I work as a fractional GTM analytics engineer: pipeline definitions, leaderboards, and the quiet data bugs behind the numbers leadership argues about. If your pipeline review starts with a fight about what counts, let’s find out what’s actually in the number.
Ian Kessler · Bottom Line Studio AI · bottomlinestudio.ai
From production GTM data work, de-identified to the pattern level.