Well, I did it.

I beat my season 2019 meterage.

  • 706,783 meters
  • 67:57:35.6 hours

Whew. I’m still pretty slow, but I made some progress. My second full year of erging was overall an improvement, even though I got sick and out of practice and spent a few months not erging at all. Positive results nonetheless.

My first 2 seasons of erg, sort of summarized. 2020:

Date Work Distance Work Time Pace Avg Watts
2020-04-30 1000 00:03:57.8 1:58.9 208
2020-04-28 2000 00:08:38.6 2:09.6 161
2020-04-27 5000 00:23:40.8 2:22.0 122
2020-02-27 6000 00:29:22.5 2:26.8 110
2020-04-29 10000 00:50:49.5 2:32.4 99

And 2019:

Date Work Distance Work Time Pace Avg Watts
2019-04-20 1000 00:04:09.5 2:04.7 180
2019-03-19 2000 00:08:58.8 2:14.7 143
2019-04-15 5000 00:24:02.6 2:24.2 117
2019-03-25 6000 00:29:43.8 2:28.6 107
2019-03-31 10000 00:52:02.9 2:36.1 92

So season “2021” will start tomorrow, 2020-05-01. A good time to oil the chain.


So, this is a bit hard to comprehend, even with fancy graphs I don’t care for, so let me focus on some key perspectives:

All in watts:


  • 2019: 180 / 151 / 148
  • 2020: 208 / 174 / 109


  • 2019: 143 / 142 / 133
  • 2020: 161 / 118 / 113


  • 2019: 117 / 109 / 107
  • 2020: 122 / 111 / 109


  • 2019: 92 / 90 / 85
  • 2020: 99 / 81 / 81

Well, my watts are up. That’s good! Shorter distances up +10%, longer distances less so.

I also didn’t try to max, over and over again. I mostly just put in volume, then max’d once. I guess I just don’t have the endurance (yet?) to put down many “race pace” 2Km and 5Km pieces. It’s a lot more tiring than pulling an easy 10Km, for example. I mostly just pulled stuff like 4x750m/2:00.

I rowed a lot more variety of distances last season, probably trying to do parts of the Pete Plan beginner training.

I rowed 3Km and 4Km a lot faster last year, which are not distances I’ve done much this year.

Still, I rowed a 134W 4Km (last season!), and I still haven’t brought my 5Km up much past 120W (either season!). This is clearly where I need to improve. Oddly, I only pulled 131W on the 3Km that season, so the 134W was clearly a strong piece.

I did a lot of interval training the past year, so I’m not too surprised I’m getting better at those and not the longer pieces. To be honest, I usually pull up the 2am concept2 email, the workout of the day, then I turn on the erg, pull up ErgData (..connect..) then switch back to the email to dial in the B-D-D-A-E-.. etc etc. Then you have to switch back to ErgData (!) or else it won’t record the workout, but ez pz lemon squeezy so far.

I didn’t wear the heart rate monitor as much. I’m not sure it would’ve helped (yet). Maybe next season I can try targeting a certain heartrate versus pace or rate, but it gets really sweaty and clamps on my chest, which is just not something I need when I’m erging.

Looking back

I set some goals on a sticky note exactly 1 year ago:

  • 1Km: 4:08- (actual: 3:57.8)
  • 2Km: 8:50- (8:38.6)
  • 5Km: 24:00- (23:40.8)
  • 6Km: 29:40- (29:22.5)
  • 10Km: 52:00- (50:49.5)

I hit all my goals!! Sometimes you aim low.

I submitted those workouts to the rankings, and man! I place poorly. Lmao. My 1Km is pretty strong, 24th to 40th percentile depending on the filters. But my 6Km time is legit 2nd-worst, percentile = 1. Holy shit.. I mean I wasn’t trying to row a super fast 6Km, I just wanted to inch up my PR on that.

If I turn off all of the filters, my percentiles are 45 / 27 / 18 / 13 / 9. So clearly I’m “weaker” on longer pieces. On the other hand, when I really put down the power, I’m almost average. That’s great! I just don’t have the experience rowing many longer pieces.

It takes a lot of effort to sustainably do large volume. I have not taken that for granted these past couple weeks. In the last 16 days of this season, I pulled nearly 120Km. I wasn’t sure I could do it! The challenge in December is to pull 100Km before Christmas. That seemed hard, and it is! But now that I think about it, I think some people pulled 200Km. I may be ready for that this season.

I had to be careful not to overdo it. I have overdone it this season, pulling two long pieces Saturday / Sunday back to back, with you know, hour-long mowing-the-lawn sessions in between etc. I have a good routine, now. (before, not so much) I stretch consistently. I use good shoes, good shorts, etc. I don’t wonder what kind of workout I should be doing (thanks, c2 email!). I got a legit seat pad, so my butt never hurts. I have hard shoes for setting PRs and comfy shoes for training.

I used to put in effort pulling a 26:00 5Km at R26, but now that seems crazy. Now I can pull a 24:36 5Km at R24 or so, and that’s a reasonable volume workout. I think I can drop a minute or two off my current 5Km PR (23:40.8).

This is not what peak performance looks like.. but it is progress.

Looking to next season

I want to set some modest goals:

  • pull 1Mm in season 2021 (averaging 700Km/season so far)
  • 1Km: 3:50-
  • 2Km: 8:30-
  • 5Km: 22:40-
  • 6Km: 28:00-
  • 10Km: 48:00-
  • row 250 days (just maintain my average)
  • do as many of the concept2 challenges as I can (except the half-marathon over the next couple weeks, yikes I need more work on 10Km first)

I think I can do all of these, especially with some help from my 1080p friend, that is..


I spent almost 68 hours on the erg this season. That seems like a lot! But not really, I guess. 365 hours would be a lot. A lot of that time was spent watching TV. It is a little bit difficult to follow a show and erg hard (it’s kind of one or the other), but for volume it gets real nice.

Parks & Rec is my go-to workout show. I’m almost done with it (the box says it’s 49 hours 17 minutes, and I’m about 40 hours in). Next up, I think I will watch .. Reno 911 (32 hours 25 minutes). Then maybe Parks & Rec, again. Just kidding. Maybe Daria (26 hours 26 minutes). Maybe Spartacus (36 hours 13 minutes)! Maybe I’ll just stream Silicon Valley, from the beginning (40? hours). I don’t want to watch anything too hard to follow (like Game of Thrones was). It’s hard to hear details over the noise of the erg.

I do like going through all of the deleted scenes. I mean, half of Parks & Rec is deleted! Feels that way, anyway. I don’t like how streaming services don’t offer the same on that level.

It seems like such a freebie, such a cheap throw-in, until streaming doesn’t offer the same …

Well, anyhow, technical details below.


So, how do we generate that data? PostgreSQL!

It looks like the CSV files have changed since last year, so let’s log into postgres and load ‘em. I’ve already got a database named erg:

$ sudo -u postgres psql -d erg
create table erg2020 (
  "ID" numeric
  , "Date" timestamp with time zone
  , "Description" text
  , "Work Time (Formatted)" text
  , "Work Time (Seconds)" text
  , "Rest Time (Formatted)" text
  , "Rest Time (Seconds)" numeric
  , "Work Distance" numeric
  , "Rest Distance" numeric
  , "Stroke Rate/Cadence" numeric
  , "Stroke Count" numeric
  , "Pace" text
  , "Avg Watts" numeric
  , "Cal/Hour" numeric
  , "Total Cal" numeric
  , "Avg Heart Rate" numeric
  , "Drag Factor" numeric
  , "Age" numeric
  , "Weight" text
  , "Type" text
  , "Ranked" text
  , "Comments" text

And I had to loosen up the nulls on some columns, I didn’t realize when you enter a workout through the website, a lot of info is lost. Sometimes I don’t notice that my phone is not connected to the erg until the workout is already over, so I had to enter a couple by hand (it’s not too.. hard).

erg=# copy erg2020 from '/home/alechollingsworth/2020-04-30 concept2-season-2020.csv' 
  with (format csv, null '', header, force_null (
    "Rest Time (Seconds)", "Rest Distance", "Stroke Rate/Cadence", 
    "Stroke Count", "Avg Heart Rate", "Drag Factor"

Do the same for both seasons, since last season’s CSV didn’t include the Total Cal column (and I didn’t store any analysis back into the tables, so I don’t mind wiping them).

To load season 2019, you just replace 2020 with 2019, et cetera.


The tables above:

with t as (
    cast("Date" as date) "Date"
    , "Work Distance"
    , row_number() over (
        partition by "Work Distance"
        order by "Work Time (Seconds)"
      ) as place
    , cast("Work Time (Seconds)" as numeric) * interval '1 second' "Work Time"
    , "Pace"
    , "Avg Watts"
    , "Avg Heart Rate"
    , case when now() - interval '1 year' - "Date" < interval '3 weeks' then 'Recent' else '' end
    as "recent?"
  from erg2020               -- select year/table here
    "Work Distance" % 500 = 0
    and "Work Distance" > 500
    and "Rest Time (Seconds)" is null
  select "Date", "Work Distance", "Work Time", "Pace", "Avg Watts" from T
    place <= 1 and "Work Distance" in (1000,2000,5000,6000,10000)
  order by
    "Work Distance"
    , place