Parsing Results Canada race results tables with perl
Did you ever want to understand your placing in a race a bit better? Do you ask questions like:
- If I was one minute faster in the swim, how would my overall placing have changed?
- How many people were less than five minutes faster than me?
- If I train better and get five minutes faster overall, will I win my age group?
I asked myself these questions and found that I needed to run faster.
In order to ask these questions, I wrote a set of programs in Perl. These programs parse the tables that the resultscanada software generates and provide me with additional information. When I have time, I'll document those programs here. For anybody who wants additional information from tables that look like below, email me!
Merlin Ford Lincoln
Spin Off Spadina Triathlon
Saskatoon, SK
June 14, 2009
Timing by "Results Canada"- www.resultscanada.com
Sprint Distance
Junior Men Sprint Triathlon Results
Place Total Numb Category Competitor City Swim Bike Run
===== ======= ==== ================= ======================= ============ ======= ======= =======
1 1:02:23 233 Junior Men Jeramie Anderson Saskatoon 10:02 33:57 18:24
2 1:03:29 236 Junior Men Joel Howlett Saskatoon 9:55 35:24 18:10
3 1:03:33 71 Junior Men Sash Broda Saskatoon 10:20 34:21 18:53
4 1:11:56 235 Junior Men Alex Dolman Saskatoon 10:22 38:05 23:30
5 1:13:29 232 Junior Men Sean Hooper Regina 11:44 41:53 19:53
6 1:14:34 234 Junior Men Duncan Shury Saskatoon 9:55 39:20 25:21
7 1:18:07 237 Junior Men Alex Donald Saskatoon 10:00 45:08 23:00
I summarized my performance in my first two triathlons. Note that At this point, I could barely run and it shows!
Event: 2009 ReginaBeach Sprint
overall - Chad: 01:31:07 overall avg: 01:40:45 (-09:22) Men 30-39 avg: 01:31:44 ( 00:23)
swim - Chad: 00:12:09 overall avg: 00:17:04 (-04:05) Men 30-39 avg: 00:16:00 (-03:09)
bike - Chad: 00:44:23 overall avg: 00:49:36 (-05:47) Men 30-39 avg: 00:45:23 (-01:00)
run - Chad: 00:34:36 overall avg: 00:34:07 ( 00:29) Men 30-39 avg: 00:30:22 ( 04:14)
Event: 2009 SpinOffSpadina Triathlon Sprint
overall - Chad: 01:31:07 overall avg: 01:22:28 ( 08:39) Men 30-39 avg: 01:16:18 ( 14:49)
swim - Chad: 00:11:48 overall avg: 00:15:01 (-03:47) Men 30-39 avg: 00:14:30 (-02:18)
bike - Chad: 00:47:12 overall avg: 00:43:54 ( 03:18) Men 30-39 avg: 00:42:16 ( 04:56)
run - Chad: 00:32:08 overall avg: 00:25:55 ( 06:13) Men 30-39 avg: 00:26:20 ( 05:48)
My software presents a detailed summary. My objective was knowing who I had to beat and how much I had to improve to beat them.
'2009 ReginaBeach Sprint ' => HASH(0x8587248)
'0. Overall ' => HASH(0x8587218)
'Chad number faster ' => 0
'Chad number slower ' => 0
'Chads placing overall ' => '12 of 61'
'Chads time ' => '01:31:07'
'Men 20-29 number faster ' => '1 (Stephen Loden)'
'Men 20-29 number slower ' => 5
'Men 30-39 3 faster ' => HASH(0x85793b0)
'Brad Spokes, Saskatoon ' => '01:12:43'
'Jim Markatos, Regina ' => '01:24:55'
'Men 30-39 average time ' => '01:31:44'
'Men 30-39 number faster ' => '2 (Brad Spokes, Jim Markatos)'
'Men 30-39 number slower ' => 5
'Men 30-39 place ' => 3
'Men 40-49 number faster ' => '2 (Brent Lawson, Lyle Bittman)'
'Men 40-49 number slower ' => 4
'Men 50-59 number faster ' => '2 (Brian Ross, Kevin Sutton)'
'Men 50-59 number slower ' => 1
'Men 60+ number faster ' => 0
'Men 60+ number slower ' => 1
'Sprint average time ' => '01:40:45'
'Sprint number faster ' => 11
'Sprint number slower ' => 49
'Women 20-29 number faster ' => 0
'Women 20-29 number slower ' => 11
'Women 30-39 number faster ' => '3 (Carmen Bell, Jessica Gawley, Maggie Vaughan)'
'Women 30-39 number slower ' => 15
'Women 40-49 number faster ' => '1 (Leanne Helfrich)'
'Women 40-49 number slower ' => 4
'Women 50-59 number faster ' => 0
'Women 50-59 number slower ' => 2
'Women 60+ number faster ' => 0
'Women 60+ number slower ' => 1
'1. Swim ' => HASH(0x85871b8)
'Chad number faster ' => 0
'Chad number slower ' => 0
'Chads placing overall ' => '3 of 61'
'Chads time ' => '00:12:09'
'Men 20-29 number faster ' => 0
'Men 20-29 number slower ' => 6
'Men 30-39 3 faster ' => HASH(0x8579a90)
'Brad Spokes, Saskatoon ' => '00:11:24'
'Men 30-39 average time ' => '00:16:00'
'Men 30-39 number faster ' => '1 (Brad Spokes)'
'Men 30-39 number slower ' => 6
'Men 30-39 place ' => 2
'Men 40-49 number faster ' => 0
'Men 40-49 number slower ' => 6
'Men 50-59 number faster ' => '1 (Kevin Sutton)'
'Men 50-59 number slower ' => 2
'Men 60+ number faster ' => 0
'Men 60+ number slower ' => 1
'Sprint average time ' => '00:17:04'
'Sprint number faster ' => '2 (Brad Spokes, Kevin Sutton)'
'Sprint number slower ' => 58
'Women 20-29 number faster ' => 0
'Women 20-29 number slower ' => 11
'Women 30-39 number faster ' => 0
'Women 30-39 number slower ' => 18
'Women 40-49 number faster ' => 0
'Women 40-49 number slower ' => 5
'Women 50-59 number faster ' => 0
'Women 50-59 number slower ' => 2
'Women 60+ number faster ' => 0
'Women 60+ number slower ' => 1
'2. Bike ' => HASH(0x8587228)
'Chad number faster ' => 0
'Chad number slower ' => 0
'Chads placing overall ' => '12 of 61'
'Chads speed ' => '27.0 km/h'
'Chads time ' => '00:44:23'
'Men 20-29 number faster ' => '1 (Stephen Loden)'
'Men 20-29 number slower ' => 5
'Men 30-39 3 faster ' => HASH(0x8579160)
'Brad Spokes, Saskatoon ' => '00:38:12'
'Jim Markatos, Regina ' => '00:43:57'
'Shae Nichols, Moose Jaw ' => '00:43:59'
'Men 30-39 average time ' => '00:45:23'
'Men 30-39 number faster ' => '3 (Brad Spokes, Jim Markatos, Shae Nichols)'
'Men 30-39 number slower ' => 4
'Men 30-39 place ' => 4
'Men 40-49 number faster ' => '3 (Brent Lawson, Dave Neuberger, Lyle Bittman)'
'Men 40-49 number slower ' => 3
'Men 50-59 number faster ' => '2 (Brian Ross, Kevin Sutton)'
'Men 50-59 number slower ' => 1
'Men 60+ number faster ' => 0
'Men 60+ number slower ' => 1
'Sprint average speed ' => '24.59 km/h'
'Sprint average time ' => '00:49:36'
'Sprint number faster ' => 11
'Sprint number slower ' => 49
'Women 20-29 number faster ' => 0
'Women 20-29 number slower ' => 11
'Women 30-39 number faster ' => '2 (Carmen Bell, Maggie Vaughan)'
'Women 30-39 number slower ' => 16
'Women 40-49 number faster ' => 0
'Women 40-49 number slower ' => 5
'Women 50-59 number faster ' => 0
'Women 50-59 number slower ' => 2
'Women 60+ number faster ' => 0
'Women 60+ number slower ' => 1
'3. Run ' => HASH(0x85871a8)
'Chad number faster ' => 0
'Chad number slower ' => 0
'Chads average speed ' => ' 8.7 km/h'
'Chads avg time/km ' => '00:06:56 HH:MM:SS/km'
'Chads placing overall ' => '40 of 61'
'Chads time ' => '00:34:36'
'Men 20-29 number faster ' => 6
'Men 20-29 number slower ' => 0
'Men 30-39 3 faster ' => HASH(0x85763a8)
'Andrew Henley, Regin ' => '00:33:34'
'Fausto Rodriguez, Regina ' => '00:33:20'
'Shae Nichols, Moose Jaw ' => '00:32:22'
'Men 30-39 average time ' => '00:30:22'
'Men 30-39 number faster ' => 7
'Men 30-39 number slower ' => 0
'Men 30-39 place ' => 8
'Men 40-49 number faster ' => 5
'Men 40-49 number slower ' => 1
'Men 50-59 number faster ' => '3 (Brian Ross, Gerry Mitchell, Kevin Sutton)'
'Men 50-59 number slower ' => 0
'Men 60+ number faster ' => 0
'Men 60+ number slower ' => 1
'Sprint average time ' => '00:34:07'
'Sprint number faster ' => 39
'Sprint number slower ' => 21
'Women 20-29 number faster ' => 5
'Women 20-29 number slower ' => 6
'Women 30-39 number faster ' => 9
'Women 30-39 number slower ' => 9
'Women 40-49 number faster ' => '2 (Leanne Helfrich, Maureen Powell)'
'Women 40-49 number slower ' => 3
'Women 50-59 number faster ' => '2 (Diann Sutherland, Doris Henry)'
'Women 50-59 number slower ' => 0
'Women 60+ number faster ' => 0
'Women 60+ number slower ' => 1
'overall average speed ' => ' 8.8 km/h'
'overall avg time/km ' => '00:06:49 HH:MM:SS/km'


