Leaderboard
The top 50 members of your cohort, ranked by readiness, updated live with no refresh button.
What you see
The Leaderboard sits on the Cohort tab, below the cohort summary card. Each row shows:
- Rank (1, 2, 3, ...). The top three are styled in the brand green.
- Display name — the anonymized handle (e.g.,
Storage Scholar #4217). - Readiness percent — the member's current readiness score, colored by band:
- Green at 80 and above.
- Amber between 50 and 79.
- Red below 50.
Your row is highlighted with a subtle background tint and tagged YOU. You can spot yourself instantly without scrolling — and you'll see exactly which two handles sit directly above and below you.
The list shows the top 50. If your cohort has more members than that and you're not in the top 50, your row is still pinned into view via the is_me flag — you always see yourself even when you're rank 312.
Real-time, not polling
The leaderboard subscribes to Supabase Realtime via useCohortRealtime. There is no "refresh" button and no interval polling. When any cohortmate finishes a session, logs a mock test, or resolves errors:
- Their
readiness_scoreupdates server-side. - A Realtime broadcast fires.
- Your client recomputes ranks.
- The affected rows animate into their new positions.
The animation is intentionally subtle — a 350 ms layout transition with a 250 ms fade-in for new rows — so rank swaps register without becoming a distraction.
If you watch the leaderboard for a few minutes and see no movement, that's a real signal — nobody in your cohort is studying right now. Don't read it as a bug. Cohorts are quietest in the early morning and during work hours.
What does not show
The leaderboard does not surface:
- Real names, emails, or profile photos.
- Target exam dates.
- Number of sessions, errors, or hours studied.
- Which milestone someone is on.
If you want a deeper view of cohort movement, look at the activity feed — it announces milestone crossings and 80% breakthroughs without exposing identities.
Empty cohort
If you're the first member in your cohort, the Leaderboard renders a single state:
You're the first member. The leaderboard fills in as others join.
Your row will still appear at rank 1. As cohortmates join, they slot in below you and the rank picture starts to move.
Use the leaderboard as a pace check, not a target. If you're at rank 5 with 75% readiness and the person at rank 1 is at 88%, that's a healthy pack. If everyone in the top 10 is above 85% and you're at 60%, you're studying behind the field — tighten the daily plan or push your target date.