Back to feed

Project docs

Ski Jumping Statistics

PostgreSQL analysis of men's Ski Jumping World Cup results, supported by a Python data collection pipeline.

Hill Records

The longest rated jump recorded on each hill since the 2017/18 season, together with every athlete who shares that record.

Rules

  • The dataset covers seasons from 2017/18 through 2025/26, so earlier hill records are outside the scope of this result.
  • Only jumps from rated competition series are considered.
  • When multiple athletes have jumped the same record distance, all of them are listed.

Code

-- Attach hill information to every jump result.
with results_with_hills as (
	select
		c.hill_city,
		c.hill_size,
		r.jumper_id,
		r.distance
	from results r
	join competitions c using (race_id)
),
-- Find the longest recorded jump on each hill.
hill_records as (
	select
		rwh.hill_city,
		rwh.hill_size,
		max(rwh.distance) as record
	from results_with_hills rwh
	group by rwh.hill_city, rwh.hill_size
)
-- Match each record back to every athlete who achieved it.
select
	hr.hill_city || ' HS' || hr.hill_size as hill,
	j.jumper_name as jumper,
	hr.record
from hill_records hr
join results_with_hills rwh on
	hr.hill_city = rwh.hill_city
	and hr.hill_size = rwh.hill_size
	and hr.record = rwh.distance
join jumpers j on rwh.jumper_id = j.jumper_id
order by hill;

Results

Hill records returned by PostgreSQL44 rows
hilljumperrecord
Bischofshofen HS140JOHANSSON Robert140
Bischofshofen HS142KOS Lovro144
Engelberg HS140EMBACHER Stephan145
Falun HS132KRAFT Stefan133
Falun HS95RAIMUND Philipp99.5
Garmisch Partenkirchen HS142KUBACKI Dawid144
Garmisch-Partenkirchen HS142HAYBOECK Michael145
Garmisch-Partenkirschen HS142HAYBOECK Michael141
Innsbruck HS128HAYBOECK Michael135.5
Innsbruck HS130KOBAYASHI Ryoyu136.5
Klingenthal HS140DESCHWANDEN Gregor146.5
Klingenthal HS140WELLINGER Andreas146.5
Kulm HS235PREVC Domen245.5
Kulm Mitterndorf HS235ZAJC Timi243
Lahti HS130GRANERUD Halvor Egner137.5
Lake Placid HS128KOBAYASHI Ryoyu136
Lillehammer HS140EISENBICHLER Markus146
Lillehammer HS98KRAFT Stefan104
Nizhny Tagil HS134JOHANSSON Robert142.5
Oberstdorf HS137GRANERUD Halvor Egner142.5
Oberstdorf HS235EISENBICHLER Markus237.5
Oslo HS134LANISEK Anze139.5
Planica HS240PREVC Domen254.5
Rasnov HS97KRAFT Stefan103
Rasnov HS97SCHLIERENZAUER Gregor103
Rasnov HS97SCHMID Constantin103
Ruka HS142LANISEK Anze149
Sapporo HS137STOCH Kamil148.5
Tauplitz/ Bad Mitterndorf HS235KOBAYASHI Ryoyu242.5
Titisee Neustadt HS142KUBACKI Dawid144
Titisee-Neustadt HS142KOBAYASHI Ryoyu147
Trondheim HS105KOBAYASHI Ryoyu106
Trondheim HS138KOBAYASHI Ryoyu141.5
Trondheim/Oslo HS138STOCH Kamil146
Val di Fiemme HS104GEIGER Karl107
Val di Fiemme HS104SCHMID Constantin107
Val di Fiemme HS135KOBAYASHI Ryoyu136
Vikersund HS240HUBER Daniel247.5
Willingen HS145GEIGER Karl150.5
Willingen HS147FORFANG Johann Andre155.5
Wisla HS134KOBAYASHI Ryoyu139.5
Zakopane HS134FORFANG Johann Andre137
Zakopane HS140LINDVIK Marius145.5
Zakopane HS140KRAFT Stefan145.5

Additional notes

You may notice inconsistent or misspelled hill names—for example, Garmisch Partenkirchen, Garmisch-Partenkirchen, and Garmisch-Partenkirschen. These values are preserved from the original FIS data source used by the scraper. As a result, PostgreSQL treats them as separate hills in this report.