Vasaloppet 2019: split rankings i.e. stage results

data analysis
vasaloppet
web scraping
cross-country skiing
R
dataviz
Author
Published

March 4, 2019

Introduction

Vasaloppet 2019 was raced yesterday from Sälen to Mora with near 16000 participants. The official result service does a decent job in delivering what the folks want to know from their race. However, there are few thing missing and I thougt to address some on our way back to Finland.

In this post I will focus on splits and present results for each splits/stage to answer questions like who was fastest between Risberg and Evertsberg? (By the way, Oskar Kardin was fastest..!)

Data

In order to compute such measures I needed the data from all participants and from all splits. With a little bit of tinkering I wrote a script that scrapes the official results service and returns a data with row per each participant for each splits. Script is written in R and can be downloaded from here: https://gitlab.com/snippets/1702298

Disclaimer!
It is not stated on http://results.vasaloppet.se/2019 under what license the results data can be re-used. Therefore I cannot license the data either and ask you to be clear about it, too! The code linked above can be used as you wish under MIT-license!
Also, there are mistakes in the analysis as it was quickly written in a car between Mora and Stockholm! Also the quality of underlying data is unknown to me!

Results

Below we have a table for each nine legs with top 20 skiers. For the complete data, probably including yourself, download an Excel file from here with a tab per split! (9,5 MB!!).

Images linked from: http://www.vasaloppet.se/lopp/skidlopp/vasaloppet/

1. Start - Smågan

Split ranking nr name class nat start_group Split time Position at split Split cumulative time Race time Race position
1 166 Jonsson, Olle H21 SWE VL0 00:36:00 1 00:36:00 05:15:08 196
2 239 Sollie, Henrik H40 NOR VL0 00:36:03 2 00:36:03 05:00:45 104
3 51 Koffeld, Ragnar H21 NOR VL0 00:36:03 3 00:36:03 05:06:18 131
4 1095 Hefre, Lars Steinar H21 NOR VL1 00:36:04 4 00:36:04 05:18:43 227
5 215 Kjølhamar, Vegard H21 NOR VL0 00:36:06 5 00:36:06 04:57:15 85
6 80 Harv, Marius H21 NOR VL0 00:36:07 7 00:36:07 04:46:43 42
7 217 Steén, Jonatan H21 SWE VL0 00:36:07 6 00:36:07 04:59:02 95
8 222 Mattson, Myhr Konrad H21 SWE VL0 00:36:09 8 00:36:09 04:52:36 70
9 244 Bergsten, Axel H21 SWE VL0 00:36:10 9 00:36:10 04:59:54 101
10 289 Bleken, Magnus H21 NOR VL0 00:36:11 11 00:36:11 04:41:10 24
11 165 Persson, Johan H21 SWE VL0 00:36:11 12 00:36:11 05:02:10 109
12 65 Srail, Jan H21 CZE VL0 00:36:11 13 00:36:11 05:11:08 170
13 1285 Unger, Philipp H21 GER VL1 00:36:11 10 00:36:11 05:21:24 257
14 90 Boberg, Michael H35 SWE VL0 00:36:12 16 00:36:12 04:48:42 56
15 133 Guigonnet, Loic H21 FRA VL0 00:36:12 17 00:36:12 04:51:13 64
16 134 Deswaziere, Theo H21 FRA VL0 00:36:12 14 00:36:12 04:58:16 91
17 23 Thele, Joar Andreas H21 NOR VL0 00:36:13 19 00:36:13 04:39:30 11
18 24 Chernousov, Ilya H21 RUS VL0 00:36:14 22 00:36:14 04:40:22 18
19 43 Eklöf, Johannes H21 SWE VL0 00:36:14 20 00:36:14 04:47:35 49
20 76 Fahlén, Tom H21 SWE VL0 00:36:14 21 00:36:14 04:54:10 79

2. Smågan - Mångsbodarna

Split ranking nr name class nat start_group Split time Position at split Split cumulative time Race time Race position
1 1326 Mesotitsch, Daniel H40 AUT VL1 00:40:51 294 01:19:22 06:01:25 669
2 1057 Skogsrud, Kristian H21 NOR VL1 00:40:52 296 01:19:24 05:11:09 171
3 1064 Sundberg, Simon H21 SWE VL1 00:40:55 301 01:19:30 05:40:54 426
4 119 Lundborg, Emil H35 SWE VL0 00:40:57 283 01:19:15 05:22:09 268
5 243 Eriksson, Henrik H45 SWE VL0 00:40:58 269 01:19:09 05:16:37 213
6 1259 Carlsson, Samuel H21 SWE VL1 00:40:59 221 01:18:55 05:00:46 105
7 1256 Carlsson, Pontus H35 SWE VL1 00:41:00 224 01:18:56 05:16:03 209
8 1067 Olsson, Sebastian H21 SWE VL1 00:41:00 200 01:18:52 05:25:35 294
9 247 Larsson, Thommy H50 SWE VL0 00:41:02 233 01:18:58 05:07:53 149
10 1379 Forsberg, Isak H21 SWE VL1 00:41:03 263 01:19:06 05:07:55 150
11 139 Palm, Stefan H45 SWE VL0 00:41:05 113 01:18:36 05:07:08 136
12 224 Persson, Tony H21 SWE VL0 00:41:08 315 01:20:16 05:06:21 133
13 1402 Linder, Kristofer H21 SWE VL1 00:41:08 253 01:19:03 05:15:40 202
14 1485 Larsson, Måns H21 SWE VL1 00:41:08 271 01:19:10 05:16:51 215
15 1417 Bylund, Tommy H21 SWE VL1 00:41:09 297 01:19:26 05:20:54 245
16 1087 Larsson, André H21 SWE VL1 00:41:10 227 01:18:57 05:43:20 448
17 1100 Vala, Torbjørn H21 NOR VL1 00:41:11 289 01:19:16 05:18:04 224
18 1353 Ottilinger, Patrick H21 GER VL1 00:41:12 279 01:19:13 05:26:38 306
19 1098 Holmann, Knut H50 NOR VL1 00:41:13 254 01:19:04 05:15:43 206
20 1099 Hanssen-Bauer, Øyvind Waage H21 NOR VL1 00:41:13 212 01:18:54 05:21:03 247

3. Mångsbodarna - Risberg

Split ranking nr name class nat start_group Split time Position at split Split cumulative time Race time Race position
1 43 Eklöf, Johannes H21 SWE VL0 00:32:37 1 01:50:57 04:47:35 49
2 17 Syrstad, Torleif H21 NOR VL0 00:32:52 10 01:51:25 04:39:27 3
3 152 Berg, Stian H21 NOR VL0 00:32:54 3 01:51:22 04:53:46 76
4 147 Östensen, Simen H35 NOR VL0 00:32:59 15 01:51:32 04:43:22 35
5 14 Luusua, Ari H21 FIN VL0 00:33:05 50 01:51:55 04:41:11 26
6 173 Brigado, Mauro H21 ITA VL0 00:33:05 8 01:51:24 04:48:19 52
7 133 Guigonnet, Loic H21 FRA VL0 00:33:05 20 01:51:34 04:51:13 64
8 46 Tynell, Rikard H21 SWE VL0 00:33:07 13 01:51:31 04:45:36 38
9 13 Moen Fjeld, Öyvind H21 NOR VL0 00:33:08 5 01:51:23 04:39:29 8
10 146 Eliassen, Petter H21 NOR VL0 00:33:08 6 01:51:23 04:39:40 14
11 174 Veresco, Simone H21 ITA VL0 00:33:08 11 01:51:31 04:53:31 73
12 65 Srail, Jan H21 CZE VL0 00:33:08 4 01:51:22 05:11:08 170
13 129 Auger, Antoine H21 FRA VL0 00:33:10 2 01:51:21 04:41:11 27
14 85 Näslund, Magnus H21 SWE VL0 00:33:10 24 01:51:37 04:50:21 59
15 8 Aukland, Anders H45 NOR VL0 00:33:11 22 01:51:36 04:39:29 7
16 288 Persson, Nils H21 SWE VL0 00:33:12 62 01:51:59 04:44:02 36
17 81 Mäenpää, Hans H40 FIN VL0 00:33:14 29 01:51:39 04:47:35 50
18 64 Eriksson, Robert H21 SWE VL0 00:33:14 57 01:51:59 05:01:11 106
19 130 Agnellet, Antoine H21 FRA VL0 00:33:15 27 01:51:38 04:56:39 84
20 289 Bleken, Magnus H21 NOR VL0 00:33:16 7 01:51:24 04:41:10 24

4. Risberg - Evertsberg

Split ranking nr name class nat start_group Split time Position at split Split cumulative time Race time Race position
1 11 Kardin, Oskar H21 SWE VL0 00:39:19 50 02:32:44 04:39:29 9
2 21 Björset Berdal, Tore H21 NOR VL0 00:39:21 55 02:32:46 04:39:15 1
3 2 Niemi Impola, Bob H21 SWE VL0 00:39:36 64 02:33:02 04:41:55 30
4 52 Skaug Mathisen, Runar H21 NOR VL0 00:39:51 59 02:32:48 04:41:11 28
5 16 Thyli, Vetle H21 NOR VL0 00:39:54 57 02:32:47 04:54:13 80
6 137 Holmberg, Andreas H21 SWE VL0 00:40:00 5 02:32:13 04:42:31 32
7 42 Vinje, Vegard H21 NOR VL0 00:40:05 15 02:32:22 04:39:38 13
8 9 Gjerdalen, Tord Asle H35 NOR VL0 00:40:10 65 02:33:02 04:39:28 5
9 40 Melin Söderström, Erik H21 SWE VL0 00:40:10 21 02:32:27 04:41:10 25
10 3 Hoelgaard, Stian H21 NOR VL0 00:40:12 24 02:32:29 04:39:26 2
11 31 Skogsholm, Vinjar H21 NOR VL0 00:40:15 62 02:32:50 04:42:12 31
12 48 Grønvold, Sondre H21 NOR VL0 00:40:15 40 02:32:38 04:43:21 34
13 69 Tyrom, Kjetil H21 NOR VL0 00:40:17 26 02:32:30 04:47:12 45
14 44 Dahl, John Kristian H35 NOR VL0 00:40:20 97 02:34:22 04:39:33 12
15 50 Nordli, Simen Engebretsen H21 NOR VL0 00:40:23 12 02:32:21 04:40:02 17
16 22 Karlsson, Anton H21 SWE VL0 00:40:25 3 02:32:08 04:39:58 16
17 138 Persson, Emil H21 SWE VL0 00:40:26 19 02:32:25 04:41:09 22
18 245 Novak, Max H21 SWE VL0 00:40:27 38 02:32:37 04:42:33 33
19 178 Freimuth, Thomas H35 GER VL0 00:40:27 32 02:32:33 04:47:14 46
20 33 Gjestrumbakken, Thomas H21 NOR VL0 00:40:27 18 02:32:25 04:51:03 61

5. Evertsberg - Oxberg

Split ranking nr name class nat start_group Split time Position at split Split cumulative time Race time Race position
1 44 Dahl, John Kristian H35 NOR VL0 00:40:30 36 03:14:52 04:39:33 12
2 67 Jespersen, Chris André H35 NOR VL0 00:41:24 2 03:14:08 04:39:29 10
3 11 Kardin, Oskar H21 SWE VL0 00:41:25 3 03:14:09 04:39:29 9
4 9 Gjerdalen, Tord Asle H35 NOR VL0 00:41:26 20 03:14:28 04:39:28 5
5 21 Björset Berdal, Tore H21 NOR VL0 00:41:28 10 03:14:14 04:39:15 1
6 5 Pettersen, Öystein H35 NOR VL0 00:41:34 4 03:14:10 04:39:50 15
7 25 Nilsson, Klas H21 SWE VL0 00:41:40 19 03:14:27 04:41:10 23
8 3 Hoelgaard, Stian H21 NOR VL0 00:41:41 5 03:14:10 04:39:26 2
9 146 Eliassen, Petter H21 NOR VL0 00:41:42 11 03:14:15 04:39:40 14
10 52 Skaug Mathisen, Runar H21 NOR VL0 00:41:42 23 03:14:30 04:41:11 28
11 8 Aukland, Anders H45 NOR VL0 00:41:45 13 03:14:17 04:39:29 7
12 15 Pedersen, Morten Eide H21 NOR VL0 00:41:46 9 03:14:14 04:40:22 19
13 18 Lövgren, Johan H21 SWE VL0 00:41:47 26 03:14:33 04:41:26 29
14 17 Syrstad, Torleif H21 NOR VL0 00:41:52 21 03:14:29 04:39:27 3
15 50 Nordli, Simen Engebretsen H21 NOR VL0 00:41:52 8 03:14:13 04:40:02 17
16 46 Tynell, Rikard H21 SWE VL0 00:41:52 7 03:14:12 04:45:36 38
17 23 Thele, Joar Andreas H21 NOR VL0 00:41:55 6 03:14:12 04:39:30 11
18 137 Holmberg, Andreas H21 SWE VL0 00:41:55 1 03:14:08 04:42:31 32
19 31 Skogsholm, Vinjar H21 NOR VL0 00:41:57 33 03:14:47 04:42:12 31
20 245 Novak, Max H21 SWE VL0 00:41:59 30 03:14:36 04:42:33 33

6. Oxberg - Hökberg

Split ranking nr name class nat start_group Split time Position at split Split cumulative time Race time Race position
1 12 Persson, Oscar H21 SWE VL0 00:29:22 12 03:44:09 04:40:30 21
2 31 Skogsholm, Vinjar H21 NOR VL0 00:29:25 15 03:44:12 04:42:12 31
3 129 Auger, Antoine H21 FRA VL0 00:29:26 19 03:44:15 04:41:11 27
4 4 Brink, Jörgen H45 SWE VL0 00:29:26 38 03:44:43 04:44:33 37
5 44 Dahl, John Kristian H35 NOR VL0 00:29:33 32 03:44:25 04:39:33 12
6 17 Syrstad, Torleif H21 NOR VL0 00:29:36 6 03:44:05 04:39:27 3
7 13 Moen Fjeld, Öyvind H21 NOR VL0 00:29:37 13 03:44:10 04:39:29 8
8 24 Chernousov, Ilya H21 RUS VL0 00:29:37 10 03:44:08 04:40:22 18
9 48 Grønvold, Sondre H21 NOR VL0 00:29:37 34 03:44:26 04:43:21 34
10 288 Persson, Nils H21 SWE VL0 00:29:37 39 03:44:54 04:44:02 36
11 7 Rezac, Stanislav H45 CZE VL0 00:29:38 2 03:44:01 04:39:28 6
12 2 Niemi Impola, Bob H21 SWE VL0 00:29:38 37 03:44:42 04:41:55 30
13 151 Henriksson, Niklas H21 SWE VL0 00:29:41 22 03:44:17 04:40:25 20
14 18 Lövgren, Johan H21 SWE VL0 00:29:43 20 03:44:16 04:41:26 29
15 15 Pedersen, Morten Eide H21 NOR VL0 00:29:46 1 03:44:00 04:40:22 19
16 204 Alm, Henrik H35 SWE VL0 00:29:46 57 03:47:33 04:46:12 40
17 52 Skaug Mathisen, Runar H21 NOR VL0 00:29:48 23 03:44:18 04:41:11 28
18 138 Persson, Emil H21 SWE VL0 00:29:49 18 03:44:14 04:41:09 22
19 25 Nilsson, Klas H21 SWE VL0 00:29:49 21 03:44:16 04:41:10 23
20 14 Luusua, Ari H21 FIN VL0 00:29:50 31 03:44:24 04:41:11 26

7. Hökberg - Eldris

Split ranking nr name class nat start_group Split time Position at split Split cumulative time Race time Race position
1 2 Niemi Impola, Bob H21 SWE VL0 00:30:04 31 04:14:46 04:41:55 30
2 1 Nygaard, Andreas H21 NOR VL0 00:30:09 8 04:14:31 04:39:28 4
3 44 Dahl, John Kristian H35 NOR VL0 00:30:10 15 04:14:35 04:39:33 12
4 67 Jespersen, Chris André H35 NOR VL0 00:30:11 16 04:14:35 04:39:29 10
5 21 Björset Berdal, Tore H21 NOR VL0 00:30:12 12 04:14:33 04:39:15 1
6 23 Thele, Joar Andreas H21 NOR VL0 00:30:13 2 04:14:26 04:39:30 11
7 42 Vinje, Vegard H21 NOR VL0 00:30:13 11 04:14:33 04:39:38 13
8 8 Aukland, Anders H45 NOR VL0 00:30:16 4 04:14:28 04:39:29 7
9 14 Luusua, Ari H21 FIN VL0 00:30:16 24 04:14:40 04:41:11 26
10 3 Hoelgaard, Stian H21 NOR VL0 00:30:18 5 04:14:29 04:39:26 2
11 9 Gjerdalen, Tord Asle H35 NOR VL0 00:30:19 21 04:14:38 04:39:28 5
12 40 Melin Söderström, Erik H21 SWE VL0 00:30:19 27 04:14:42 04:41:10 25
13 245 Novak, Max H21 SWE VL0 00:30:19 33 04:14:47 04:42:33 33
14 146 Eliassen, Petter H21 NOR VL0 00:30:20 1 04:14:26 04:39:40 14
15 25 Nilsson, Klas H21 SWE VL0 00:30:21 20 04:14:37 04:41:10 23
16 50 Nordli, Simen Engebretsen H21 NOR VL0 00:30:22 7 04:14:30 04:40:02 17
17 151 Henriksson, Niklas H21 SWE VL0 00:30:22 23 04:14:39 04:40:25 20
18 289 Bleken, Magnus H21 NOR VL0 00:30:23 29 04:14:43 04:41:10 24
19 52 Skaug Mathisen, Runar H21 NOR VL0 00:30:23 25 04:14:41 04:41:11 28
20 17 Syrstad, Torleif H21 NOR VL0 00:30:24 6 04:14:29 04:39:27 3

8. Eldris - Mora Förvarning

Split ranking nr name class nat start_group Split time Position at split Split cumulative time Race time Race position
1 21 Björset Berdal, Tore H21 NOR VL0 00:22:47 NA 04:37:20 04:39:15 1
2 9 Gjerdalen, Tord Asle H35 NOR VL0 00:22:59 NA 04:37:37 04:39:28 5
3 13 Moen Fjeld, Öyvind H21 NOR VL0 00:23:00 NA 04:37:35 04:39:29 8
4 67 Jespersen, Chris André H35 NOR VL0 00:23:00 NA 04:37:35 04:39:29 10
5 44 Dahl, John Kristian H35 NOR VL0 00:23:01 NA 04:37:36 04:39:33 12
6 7 Rezac, Stanislav H45 CZE VL0 00:23:04 NA 04:37:38 04:39:28 6
7 1 Nygaard, Andreas H21 NOR VL0 00:23:05 NA 04:37:36 04:39:28 4
8 11 Kardin, Oskar H21 SWE VL0 00:23:05 NA 04:37:37 04:39:29 9
9 17 Syrstad, Torleif H21 NOR VL0 00:23:06 NA 04:37:35 04:39:27 3
10 3 Hoelgaard, Stian H21 NOR VL0 00:23:07 NA 04:37:36 04:39:26 2
11 8 Aukland, Anders H45 NOR VL0 00:23:07 NA 04:37:35 04:39:29 7
12 42 Vinje, Vegard H21 NOR VL0 00:23:09 NA 04:37:42 04:39:38 13
13 23 Thele, Joar Andreas H21 NOR VL0 00:23:13 NA 04:37:39 04:39:30 11
14 146 Eliassen, Petter H21 NOR VL0 00:23:15 NA 04:37:41 04:39:40 14
15 5 Pettersen, Öystein H35 NOR VL0 00:23:16 NA 04:37:43 04:39:50 15
16 22 Karlsson, Anton H21 SWE VL0 00:23:19 NA 04:37:51 04:39:58 16
17 50 Nordli, Simen Engebretsen H21 NOR VL0 00:23:21 NA 04:37:51 04:40:02 17
18 15 Pedersen, Morten Eide H21 NOR VL0 00:23:41 NA 04:38:15 04:40:22 19
19 151 Henriksson, Niklas H21 SWE VL0 00:23:41 NA 04:38:20 04:40:25 20
20 12 Persson, Oscar H21 SWE VL0 00:23:42 NA 04:38:21 04:40:30 21

9. Mora Förvarning - Finish

Split ranking nr name class nat start_group Split time Position at split Split cumulative time Race time Race position
1 3 Hoelgaard, Stian H21 NOR VL0 00:01:50 2 04:39:26 04:39:26 2
2 7 Rezac, Stanislav H45 CZE VL0 00:01:50 6 04:39:28 04:39:28 6
3 9 Gjerdalen, Tord Asle H35 NOR VL0 00:01:51 5 04:39:28 04:39:28 5
4 23 Thele, Joar Andreas H21 NOR VL0 00:01:51 11 04:39:30 04:39:30 11
5 17 Syrstad, Torleif H21 NOR VL0 00:01:52 3 04:39:27 04:39:27 3
6 1 Nygaard, Andreas H21 NOR VL0 00:01:52 4 04:39:28 04:39:28 4
7 11 Kardin, Oskar H21 SWE VL0 00:01:52 9 04:39:29 04:39:29 9
8 8 Aukland, Anders H45 NOR VL0 00:01:54 7 04:39:29 04:39:29 7
9 13 Moen Fjeld, Öyvind H21 NOR VL0 00:01:54 8 04:39:29 04:39:29 8
10 67 Jespersen, Chris André H35 NOR VL0 00:01:54 10 04:39:29 04:39:29 10
11 21 Björset Berdal, Tore H21 NOR VL0 00:01:55 1 04:39:15 04:39:15 1
12 42 Vinje, Vegard H21 NOR VL0 00:01:56 13 04:39:38 04:39:38 13
13 44 Dahl, John Kristian H35 NOR VL0 00:01:57 12 04:39:33 04:39:33 12
14 146 Eliassen, Petter H21 NOR VL0 00:01:59 14 04:39:40 04:39:40 14
15 24 Chernousov, Ilya H21 RUS VL0 00:02:01 18 04:40:22 04:40:22 18
16 138 Persson, Emil H21 SWE VL0 00:02:01 22 04:41:09 04:41:09 22
17 289 Bleken, Magnus H21 NOR VL0 00:02:01 24 04:41:10 04:41:10 24
18 129 Auger, Antoine H21 FRA VL0 00:02:01 27 04:41:11 04:41:11 27
19 40 Melin Söderström, Erik H21 SWE VL0 00:02:02 25 04:41:10 04:41:10 25
20 52 Skaug Mathisen, Runar H21 NOR VL0 00:02:02 28 04:41:11 04:41:11 28

Reuse

Citation

BibTeX citation:
@online{kainu2019,
  author = {Kainu, Markus},
  title = {Vasaloppet 2019: Split Rankings i.e. Stage Results},
  date = {2019-03-04},
  url = {https://markuskainu.fi/posts/2019-03-04-vasaloppet-2019-split-ranking},
  langid = {en}
}
For attribution, please cite this work as:
Kainu, Markus. 2019. “Vasaloppet 2019: Split Rankings i.e. Stage Results.” March 4, 2019. https://markuskainu.fi/posts/2019-03-04-vasaloppet-2019-split-ranking.