Scores shared, leads never

The leaderboard payload carries only names, roles, metrics, ranks and scores — no lead, contact, address or deal row ever leaves the server.

What it is

A deliberate carve-out from the platform's normal per-rep lead isolation. Reps must see each other's numbers to compete, so the endpoint reads a strict subset of columns and the response type has no field that could hold a lead. Crew leads and workers cannot open it at all.

Also called: can reps see each other's leads · leaderboard privacy · aggregate only

See it
Scores shared, leads never
New lead 4
Marlin Hoover
$36k
Delia Yoder
$23k
Contacted 3
Sutter Kline
$36k
Ronan Petsch
$55k
Estimate 2
Ivy Brubaker
$50k
Gideon Alt
$45k
Marlin Hoover
$76k
Sold 2
Marlin Hoover
$39k
Delia Yoder
$54k
Sutter Kline
$67k
The leaderboard subtitle: 'You only ever see everyone's scores, never their leads.' LeaderboardView.tsx header. Sample data — no customer information appears here.
How it works
  1. 1The query selects only opportunity id, stage ids, event type, timestamp, status and owner fields — no contact or address column is even fetched.
  2. 2The response type is metrics-only by construction.
  3. 3Allowed roles: admin, project manager, sales, plus the tenant owner. Everyone else gets a 403.
  4. 4The rep detail modal repeats the guarantee in plain language for the person reading it.
Why we built it

Both the contract file and the route carry the same warning. leaderboardTypes.ts: 'PRIVACY: this carries ONLY aggregate performance numbers per rep — never any lead, contact, address, or deal-level data. A rep may see every other rep's close rate / speed / etc. (to compete), but never their leads. The endpoint must enforce this (no lead rows in the payload).' The route repeats it and notes the column selection is 'a strict subset — NO contact/address fields are selected, so they can never leak into the aggregate.'

The problem
  • Sharing performance normally means sharing the underlying records.
  • Competitive features are a common route around record-level permissions.
Sound familiar?
What you get
Full competitive transparency on numbers with zero exposure of the book.
Enforced at the query, not by hiding fields in the UI.

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →