A plain-language guide to how we rank climbers at Dogpatch Boulders. No math degree required.
The leaderboard answers one question: "Who is the strongest climber at Dogpatch right now?"
To answer that fairly, we can't just look at the grade printed on the wall. Everyone knows some V6s are sandbagged and others are soft. So we let the community define how hard each climb really is, then score you based on that.
Strong climbers sending a climb pushes its difficulty rating up. Weaker climbers sending it pulls it down. Your score then reflects the actual difficulty of what you've sent, not just what the setter wrote on the tag.
Your score is a weighted sum of your climbs, sorted hardest-first. But the weights drop off extremely fast — your second-best climb is only worth 10% of your best, your third is worth 1%, and so on.
In practice, your score is almost entirely determined by your single hardest send. Additional climbs act as tiebreakers — they nudge your score up slightly, but they can never drag it down.
Here's the key design choice: no amount of easier climbs can overtake a harder one. Let's see this in action:
Why? Because of the steep 10% decay, Climber B's 40 V4s form a geometric series that converges — it has a mathematical ceiling it can never cross:
You already know this intuitively: that one black V6 in the corner feels way harder than the popular pink V6 everyone warms up on. Our system captures this.
Each climb's rating starts at its posted grade, then gets adjusted based on who sends it and how many people send it.
If a V6 is getting sent by lots of V4 and V5 climbers, the system recognizes it's probably softer than a true V6. The climb's effective rating gets pulled down toward the average strength of its senders.
If a V6 is only being sent by V7+ climbers, and very few people have sent it, the system recognizes it's probably harder than average. The climb's rating rises.
So if you send that "hard" V6 instead of the "popular" V6, you'll earn ~138 more points — roughly the same as the difference between an entire V-grade.
Climbs that fewer people have sent receive a small bonus. This rewards climbers who go after the less-traveled problems instead of just doing the popular circuit.
The bonus follows a logarithmic curve — the difference between 1 and 2 senders is significant, but the difference between 50 and 51 is negligible. This matches how rarity feels in practice.
Let's walk through a full example with three climbers to see how everything combines.
| Climber | Sends (last 30 days) | Hardest |
|---|---|---|
| The Crusher | 1 hard V8, 2 V5s | V8 |
| The All-Rounder | 1 hard V6, 3 V5s, 5 V4s | V6 |
| The Volume Machine | 40 V4s, 1 popular V6 | V6 |
Step 1: Start with base grades (V4 = 1400, V5 = 1500, V6 = 1600, V8 = 1800).
Step 2: Adjust climb ratings based on senders. The "hard" V8 stays near 1800+. The "popular" V6 drops because weaker climbers also sent it. The "hard" V6 stays high.
Step 3: Calculate each climber's score using the weighted sum:
Notice how The All-Rounder beats The Volume Machine even though The Volume Machine logged way more climbs. The All-Rounder's "hard" V6 is worth more than the "popular" V6 that everyone sends.
You might have noticed a circular dependency: we need to know how strong climbers are to rate climbs, but we need to know how hard climbs are to rate climbers.
We solve this by iterating. Start with a rough guess (everyone's rating = their max grade), then alternate between updating climb ratings and climber ratings, 5 times. By the 3rd or 4th pass, scores have usually stabilized.
| Pass | What happens |
|---|---|
| Start | Everyone's rating = their max V-grade in points |
| Pass 1 | Climbs adjust based on initial climber ratings. Climbers re-scored. |
| Pass 2 | Climbs adjust again with updated climber ratings. Scores refine further. |
| Pass 3-5 | Fine-tuning. Scores converge to stable values. |
Only sends from the last 30 days count toward your score. Climbed a V10 two months ago? Great, but it won't show up on the leaderboard. This keeps the ranking fresh and rewards current form over historical achievements.
Think of it as a rolling monthly competition. Everyone starts from scratch each month.
Each daily update compares your current rank to your previous rank:
| Symbol | Meaning |
|---|---|
| ▲ 3 | You moved up 3 spots since last update |
| ▼ 2 | You dropped 2 spots since last update |
| - | No change |
| NEW | First time appearing on the leaderboard |
Three principles guided every decision:
For those who want the exact formulas and parameters.
| Parameter | Value | What it does |
|---|---|---|
| Base Points | 1000 + (grade × 100) | V0 = 1000, V6 = 1600, V10 = 2000 |
| Elasticity | 0.5 | 50/50 blend of posted grade vs. community signal |
| Scarcity Weight | 50 | Max bonus points for rarely-sent climbs |
| Volume Decay | 0.1 | Each subsequent send is worth 10% of the previous |
| Iterations | 5 | Number of refinement passes |
| Window | 30 days | Rolling time period for eligible sends |
For each climb, the effective rating is recalculated each pass:
Sends are sorted by climb rating (highest first), then summed with geometric decay: