ben_sandi

Badges

100 Contributions1,000 Contributions10 Posts

Contributions

Posts

1 Day

62

7 Days

76

4 Weeks

113

All Time

6752

Current Streak

1

Longest Streak

13

Contributions Map

Contributions by Country

Country Contributions Between Climbers Crags Summits Climbs Ascents
1 USA 1526 20th November 2025 – 5th November 2026 48 20 0 88 98
2 Australia 767 28th September 2025 – 29th June 2026 6 38 0 61 33
3 United Kingdom 625 19th November 2025 – 4th November 2026 34 14 0 24 49
4 Switzerland 308 24th January 2026 – 4th November 2026 6 3 0 14 38
5 France 300 6th January 2026 – 4th November 2026 15 3 0 12 34
6 Austria 210 12th November 2025 – 23rd June 2026 5 2 0 8 22
7 Italy 163 19th November 2025 – 2nd November 2026 9 3 0 12 12
8 Pakistan 118 11th April 2026 – 27th April 2026 0 0 0 1 7
9 Spain 105 20th February 2026 – 17th May 2026 5 0 0 10 11
10 Germany 103 3rd February 2026 – 26th June 2026 7 0 0 7 10

Recent Contributions

Date Time User Type Name Attribute
4921 23rd March 2026 17:57:54 UTC ben_sandi list Oldest Ascents list_type_name
Before
Bouldering
After
Misc.
4922 23rd March 2026 17:57:54 UTC ben_sandi list Oldest Ascents list_type_id
Before
1
After
5
4923 23rd March 2026 17:57:07 UTC ben_sandi list Oldest Ascents list_type_name
Before
None
After
Bouldering
4924 23rd March 2026 17:57:07 UTC ben_sandi list Oldest Ascents list_type_id
Before
None
After
1
4925 23rd March 2026 17:57:07 UTC ben_sandi list Oldest Ascents list_description_pretty
Before
None
After
<p>This is a list of the oldest ascents at each grade.</p>
4926 23rd March 2026 17:57:07 UTC ben_sandi list Oldest Ascents list_definition
Before
None
After
with climbers_with_dobs as ( select c.climber_id ,c.climber_name ,c.date_of_birth_start as date_of_birth from climbers c where c.deleted_on is null and c.date_of_birth_start = c.date_of_birth_end ), ascents_with_ages as ( select row_number() over ( partition by g.grade_id order by a.ascent_dt_start - c.date_of_birth desc, a.ascent_dt_start asc ) as row_number ,c.climber_id ,c.climber_name ,cl.climb_id ,cl.climb_name ,g.grade_id ,g.grade_system_id ,g.climb_type_id ,g.order_on ,g.grade ,a.ascent_dt_start ,c.date_of_birth ,a.ascent_dt_start - c.date_of_birth as age_in_days_at_ascent ,extract(year from age(a.ascent_dt_start, c.date_of_birth))::integer as age_in_years_at_ascent ,age(a.ascent_dt_start, c.date_of_birth) as age_interval_at_ascent ,a.ascent_id from ascents a inner join climbers_with_dobs c on a.climber_id = c.climber_id and a.deleted_on is null inner join climbs cl on cl.climb_id = a.climb_id and cl.deleted_on is null inner join grades g on cl.grade_id = g.grade_id where a.ascent_dt_start = a.ascent_dt_end ), oldest as ( select * from ascents_with_ages where row_number = 1 ) select o.grade ,'<a href="/climber/' || o.climber_id::varchar || '">' || o.climber_name || '</a>' as "Climber" ,'<a href="/climb/' || o.climb_id::varchar || '">' || o.climb_name || '</a>' as "Climb" ,o.age_in_days_at_ascent as "Age (Days)" ,o.age_in_years_at_ascent || ' years ' || extract(days from o.ascent_dt_start - (o.date_of_birth + make_interval(years => o.age_in_years_at_ascent))) || ' days' as "Age" from oldest o where case when grade_system_id = 1 and order_on >= 13 then 1 when grade_system_id = 2 and order_on >= 60 then 1 when grade_system_id = 3 and order_on >= 37 then 1 else 0 end = 1 and climb_type_id in (1,2,3) order by grade_system_id ,order_on
Diff
--- before

+++ after

@@ -1 +1,82 @@

+with climbers_with_dobs as (
+ select
+ c.climber_id
+ ,c.climber_name
+ ,c.date_of_birth_start as date_of_birth
+
+ from
+ climbers c
+
+ where
+ c.deleted_on is null
+ and c.date_of_birth_start = c.date_of_birth_end
+), ascents_with_ages as (
+ select
+ row_number() over (
+ partition by g.grade_id
+ order by a.ascent_dt_start - c.date_of_birth desc, a.ascent_dt_start asc
+ ) as row_number
+ ,c.climber_id
+ ,c.climber_name
+ ,cl.climb_id
+ ,cl.climb_name
+ ,g.grade_id
+ ,g.grade_system_id
+ ,g.climb_type_id
+ ,g.order_on
+ ,g.grade
+ ,a.ascent_dt_start
+ ,c.date_of_birth
+ ,a.ascent_dt_start - c.date_of_birth as age_in_days_at_ascent
+ ,extract(year from age(a.ascent_dt_start, c.date_of_birth))::integer as age_in_years_at_ascent
+ ,age(a.ascent_dt_start, c.date_of_birth) as age_interval_at_ascent
+ ,a.ascent_id
+
+ from
+ ascents a
+ inner join climbers_with_dobs c
+ on a.climber_id = c.climber_id
+ and a.deleted_on is null
+ inner join climbs cl
+ on cl.climb_id = a.climb_id
+ and cl.deleted_on is null
+ inner join grades g
+ on cl.grade_id = g.grade_id
+
+ where
+ a.ascent_dt_start = a.ascent_dt_end
+
+), oldest as (
+ select
+ *
+
+ from
+ ascents_with_ages
+
+ where
+ row_number = 1
+)
+
+select
+ o.grade
+ ,'<a href="/climber/' || o.climber_id::varchar || '">' || o.climber_name || '</a>' as "Climber"
+ ,'<a href="/climb/' || o.climb_id::varchar || '">' || o.climb_name || '</a>' as "Climb"
+ ,o.age_in_days_at_ascent as "Age (Days)"
+ ,o.age_in_years_at_ascent || ' years ' || extract(days from o.ascent_dt_start - (o.date_of_birth + make_interval(years => o.age_in_years_at_ascent))) || ' days' as "Age"
+
+from
+ oldest o
+
+where
+ case
+ when grade_system_id = 1 and order_on >= 13 then 1
+ when grade_system_id = 2 and order_on >= 60 then 1
+ when grade_system_id = 3 and order_on >= 37 then 1
+ else 0
+ end = 1
+ and climb_type_id in (1,2,3)
+
+order by
+ grade_system_id
+ ,order_on
4927 23rd March 2026 17:57:07 UTC ben_sandi list Oldest Ascents list_description
Before
None
After
This is a list of the oldest ascents at each grade.
Diff
--- before

+++ after

@@ -1 +1 @@

-
+This is a list of the oldest ascents at each grade.
4928 23rd March 2026 17:57:07 UTC ben_sandi list Oldest Ascents list_name
Before
None
After
Oldest Ascents
4929 23rd March 2026 17:31:55 UTC ben_sandi climber Jordan Cannon instagram_url
Before
None
After
https://www.instagram.com/cannonjtc/
4930 23rd March 2026 17:31:08 UTC ben_sandi climber Jordan Cannon notes_pretty
Before
None
After
<h3>References</h3> <p>[1] <a href="https://www.outsideonline.com/culture/essays-culture/professional-climber-jordan-cannon-comes-out-gay/" rel="noopener noreferrer">https://www.outsideonline.com/culture/essays-culture/professional-climber-jordan-cannon-comes-out-gay/</a></p>
4931 23rd March 2026 17:31:08 UTC ben_sandi climber Jordan Cannon notes
Before
None
After
### References [1] [https://www.outsideonline.com/culture/essays-culture/professional-climber-jordan-cannon-comes-out-gay/](https://www.outsideonline.com/culture/essays-culture/professional-climber-jordan-cannon-comes-out-gay/)
Diff
--- before

+++ after

@@ -1 +1,3 @@

-
+### References
+
+[1] [https://www.outsideonline.com/culture/essays-culture/professional-climber-jordan-cannon-comes-out-gay/](https://www.outsideonline.com/culture/essays-culture/professional-climber-jordan-cannon-comes-out-gay/)
4932 23rd March 2026 17:25:50 UTC ben_sandi list Notable Queer Climbers list_description_pretty
Before
<p>This list records selected significant achievements by queer climbers. Work in progress!</p>
After
<p>This list records selected significant achievements by queer climbers (in no particular order). Work in progress!</p>
4933 23rd March 2026 17:25:50 UTC ben_sandi list Notable Queer Climbers list_description
Before
This list records selected significant achievements by queer climbers. Work in progress!
After
This list records selected significant achievements by queer climbers (in no particular order). Work in progress!
Diff
--- before

+++ after

@@ -1 +1 @@

-This list records selected significant achievements by queer climbers. Work in progress!
+This list records selected significant achievements by queer climbers (in no particular order). Work in progress!
4934 23rd March 2026 17:17:30 UTC ben_sandi list Notable Queer Climbers list_description_pretty
Before
<p>This list records selected significant achievements by queer climbers. Work in progress! DM baz9x on Discord with any additions.</p>
After
<p>This list records selected significant achievements by queer climbers. Work in progress!</p>
4935 23rd March 2026 17:17:30 UTC ben_sandi list Notable Queer Climbers list_description
Before
This list records selected significant achievements by queer climbers. Work in progress! DM baz9x on Discord with any additions.
After
This list records selected significant achievements by queer climbers. Work in progress!
Diff
--- before

+++ after

@@ -1 +1 @@

-This list records selected significant achievements by queer climbers. Work in progress! DM baz9x on Discord with any additions.
+This list records selected significant achievements by queer climbers. Work in progress!
4936 23rd March 2026 17:16:41 UTC ben_sandi list Notable Queer Climbers list_type_name
Before
None
After
Misc.
4937 23rd March 2026 17:16:41 UTC ben_sandi list Notable Queer Climbers list_type_id
Before
None
After
5
4938 23rd March 2026 17:16:41 UTC ben_sandi list Notable Queer Climbers list_description_pretty
Before
None
After
<p>This list records selected significant achievements by queer climbers. Work in progress! DM baz9x on Discord with any additions.</p>
4939 23rd March 2026 17:16:41 UTC ben_sandi list Notable Queer Climbers list_definition
Before
None
After
select c.climber_uuid as row_uuid ,'<a href="/climber/' || cast(c.climber_id as varchar) || '">' || c.climber_name || '</a>' as "Climber" ,q.achievement as "Achievement" from ( values ('Taylor Parsons', 'Trans woman - bouldered up to 8C') ,('Lor Sabourin', 'First non-binary person to send 5.15') ,('Campbell Harrison', 'Olympian') ) as q(climber_name, achievement) inner join climbers c on q.climber_name = c.climber_name where c.deleted_on is null order by c.climber_name
Diff
--- before

+++ after

@@ -1 +1,20 @@

-
+select
+ c.climber_uuid as row_uuid
+ ,'<a href="/climber/' || cast(c.climber_id as varchar) || '">' || c.climber_name || '</a>' as "Climber"
+ ,q.achievement as "Achievement"
+
+from
+ (
+ values
+ ('Taylor Parsons', 'Trans woman - bouldered up to 8C')
+ ,('Lor Sabourin', 'First non-binary person to send 5.15')
+ ,('Campbell Harrison', 'Olympian')
+ ) as q(climber_name, achievement)
+ inner join climbers c
+ on q.climber_name = c.climber_name
+
+where
+ c.deleted_on is null
+
+order by
+ c.climber_name
4940 23rd March 2026 17:16:41 UTC ben_sandi list Notable Queer Climbers list_description
Before
None
After
This list records selected significant achievements by queer climbers. Work in progress! DM baz9x on Discord with any additions.
Diff
--- before

+++ after

@@ -1 +1 @@

-
+This list records selected significant achievements by queer climbers. Work in progress! DM baz9x on Discord with any additions.

< Page 247 >