Back to WCA Statistics

Competitions per year by person

Person

Flattens each cuber's WCA career length and computes the average competitions per year. Six years with 90 comps = 15 / year.

Absolute counts favour decade-long travellers; this metric separates "short burst" from "sustained high frequency" — you need both volume and longevity to chart.

By the numbers

≥ 1 yr
Eligibility
At least 1 year since first comp
Top 100
Leaderboard depth
Sorted by comps/year desc
CURDATE()
Career end
Dump's today, not last comp date

Data source

results with DISTINCT competition_id (one comp counts once regardless of events). Earliest competitions.start_date per person. Years = (CURDATE() - MIN(start_date)) / 365.25.

sql
SELECT
  COUNT(DISTINCT competition_id) competitions,
  (DATEDIFF(CURDATE(), MIN(start_date)) / 365.25) years,
  person_id
FROM results
JOIN competitions ON competitions.id = competition_id
GROUP BY person_id
HAVING years >= 1
ORDER BY competitions / years DESC
LIMIT 100

Algorithm / pipeline

1
Aggregate per person
Each results row is one event-round; COUNT(DISTINCT competition_id) collapses multi-event same-comp entries to 1.
2
Measure career span
MIN(start_date) = first comp → difference with CURDATE() divided by 365.25 (leap-year averaged).
3
Filter newcomers
HAVING years >= 1 removes "8 comps in first 3 months" outliers — small denominator would inflate the rate.
4
Sort, take top 100
Order by competitions / years desc, LIMIT 100. Two decimals retained to break ties.

Key formulae

Formula
rate(p) = comps(p) / ((today − firstCompDate(p)) / 365.25)
comps is distinct count, firstCompDate is earliest start_date for the person.

Caveats & edges

Related stats & links