Create Course Record Standard scoring for challenges

Issue #544 resolved
Gregory Smith created an issue

See attached document

Comments (19)

  1. Sander Roosendaal repo owner

    Currently mixed is already an option for all boat classes except single. Also crew is asked to give a average age for all boat classes except single, where it is calculated from the user data.

    i don’t know if Club etc categories is a good idea because different countries have different systems and these systems change.

    also wouldn’t it be better to do an age fit to a smooth curve like nonathlon?

    i like the idea of handicap tables based on a gold standard, though. This could be world records for erg (already partially implemented) and a system of user editable tables for OTW events.

    that would enable users to also define event specific categories (family 2x) etc

  2. Sander Roosendaal repo owner

    Here is my initial idea. Add a object “CourseRecords” stored in the database. Users can create and manage CourseRecords independent of Course objects.

    When a new Virtual Challenge (OTW) is created, a CourseRecords can be selected (not mandatory) and assigned to the Challenge. CourseRecords assigned to a Challenge govern the options that participants have (see below). When a valid result is submitted, a corrected time is stored in the Result object together with the raw time. In this way, we ensure that the corrected time is calculated once and this is not changed when somebody updates CourseRecords in the future.

    After the challenge result submission window closes, the Challenge organiser has the option to recalculate and freeze corrected times (in case he decides to split categories or else while the race is on).

    A CourseRecords holds a CourseRecord pace, a Notes field, plus a collection of TargetPace objects (internally stored as percentage of CourseRecord for easier calculations). Each TargetPace object would have the following Attributes:

    • Name
    • AgeMin
    • AgeMax
    • Gender (Male, Female, Mix)
    • WeightClass
    • SkillClass (Open, Club, Beginner)
    • Adaptive Class
    • Boat Class
    • TargetPercentage ← Percentage of the CourseRecord speed

    For example. HOCR CourseRecord 4.56 m/s, notes says Men Open 1x. And then we would have a TargetPace

    Name: OpenLW1x

    AgeMin: 15

    AgeMax: 120

    Gender: F

    WeightClass: L

    SkillClass: Open

    TargetPercentage: 90.5% (19:00 instead of 17:11 for the course record)

    Then all CorrectedTimes are calculated as TargetPercentage x RawTime

  3. Gregory Smith reporter

    @sanderroosendaal Re: club. I agree there are different definitions and complex rules for this. Leaving it as open and she groups is enough. Re: age smoothing. Most rowers I talk to in the us prefer to have groups without handicapping in the group. It makes the racing feel more real. The purpose of the course record standard is to allow comparison of different groups.

  4. Sander Roosendaal repo owner

    In the Registration form, we would need the following entries

    TeamName (optional)

    WeightCategory

    BoatClass

    Age

    Adaptive Class

    Skill Class

    I am wondering if Adaptive and Skill class should not be merged into one Adaptive/Skill Class?

  5. Sander Roosendaal repo owner

    Would need to build functionality for creating and updating of CourseRecords objects.

  6. Sander Roosendaal repo owner

    Dutch rowing has Beginner, Advanced and Elite. You are Beginner until you win your first final in a qualifying regatta. Advanced teams should not exceed 5 final wins per rower (i.e. a four needs to have less than 20 wins for the entire crew). You are allowed to start in a higher category than you are. Points are recorded for sweep rowing and sculling separately.

    This is a simplification compared to when I rowed in the 1990s when we had Beginner (0), Novice (less than 3), Transition (3 to 5) and Elite.

  7. Sander Roosendaal repo owner

    One more comment. A challenge using a handicap will have its boat class, age class, gender and weight categories limited to those that are present in the associated standards set.

    For example, using the course records from the doc above, only singles are allowed

  8. Gregory Smith reporter

    My comments below

    Here is my initial idea. Add a object “CourseRecords” stored in the database. Users can create and manage CourseRecords independent of Course objects.

    When a new Virtual Challenge (OTW) is created, a CourseRecords can be selected (not mandatory) and assigned to the Challenge. CourseRecords assigned to a Challenge govern the options that participants have (see below). When a valid result is submitted, a corrected time is stored in the Result object together with the raw time. In this way, we ensure that the corrected time is calculated once and this is not changed when somebody updates CourseRecords in the future.

    I think that course records should be an option for both OTW and ERG challenges

    I don’t think I like the idea of corrected time. That’s not how the HOK system works. Your time is your time, but you compete on the basis of % of Course Record performance. There is a lot of “anti-handicapping” sentiment that I have heard from masters rowers in my area, and I think the % of standard was a clever way to satisfy both the desire to keep times “pure” and allow for competition and bragging rights between groups.

    After the challenge result submission window closes, the Challenge organiser has the option to recalculate and freeze corrected times (in case he decides to split categories or else while the race is on).

    A CourseRecords holds a CourseRecord pace, a Notes field, plus a collection of TargetPace objects (internally stored as percentage of CourseRecord for easier calculations). Each TargetPace object would have the following Attributes:

    • Name
    • AgeMin
    • AgeMax
    • Gender (Male, Female, Mix)
    • WeightClass
    • SkillClass (Open, Club, Beginner)
    • Adaptive Class
    • Boat Class
    • TargetPercentage ← Percentage of the CourseRecord speed

    For example. HOCR CourseRecord 4.56 m/s, notes says Men Open 1x. And then we would have a TargetPace

    I think this is potentially a problem. Wouldn’t that mean that everything would need to be recalculated if a new, faster group is added to the table? I was thinking that the logic would identify the applicable group for a results and then calculate the %CR from the course record pace in the table, so that there are no dependencies between groups.

    Name: OpenLW1x

    AgeMin: 15

    AgeMax: 120

    Gender: F

    WeightClass: L

    SkillClass: Open

    TargetPercentage: 90.5% (19:00 instead of 17:11 for the course record)

    Then all CorrectedTimes are calculated as TargetPercentage x RawTime

  9. Gregory Smith reporter

    I am wondering if Adaptive and Skill class should not be merged into one Adaptive/Skill Class?

    If it makes things a lot easier, I don’t see a real problem. It’s not the way I think of it, and it would make it harder if at some point, things evolve to the point of having novice adaptive and open adaptive. If you have different fields, then you could just not have entries for those groups in the course record table.

  10. Sander Roosendaal repo owner

    No, it wouldnt mean that everything would have to be recalculated if a new, faster group is added to the table. It doesn’t matter whether you store one absolute course record and a bunch of percentages or separate course records.

  11. Sander Roosendaal repo owner

    I am OK to calculate a “percentage of course record” instead of a corrected time. However, you may add a new class without a course record, so you invent some kind of standard, right?

  12. Gregory Smith reporter

    Would need to build functionality for creating and updating of CourseRecords objects.

    This might be easiest as a template and upload of CSV for now. It would only be used by organizers. I don’t see a lot of value in developing an editor for this.

  13. Sander Roosendaal repo owner

    This might be easiest as a template and upload of CSV for now. It would only be used by organizers. I don’t see a lot of value in developing an editor for this.

    Hm, that would mean I would have to catch errors in CSVs. Not sure what is the lesser evil. Will have to think about it.

  14. Gregory Smith reporter

    No, it wouldnt mean that everything would have to be recalculated if a new, faster group is added to the table. It doesn’t matter whether you store one absolute course record and a bunch of percentages or separate course records.

    I don’t understand. In the definition of the course record entry in your comment, you said that the field TargetPercentage would be the % of course record speed. Wouldn’t that need to be redone, if a faster course record speed is added? For example, if you added Male Open 2x, wouldn’t all other groups need to be rebenchmarked against that by your logic?

  15. Gregory Smith reporter

    OK, that makes sense. I think the field is only needed if you are going to generate corrected times. I see it’s necessity in that case.

  16. Sander Roosendaal repo owner

    @Gregory Smith Forget about the percentages. It is just a matter of how I store this internally. What matters is that the “score” that is shown is a percentage of a target pace, which is calculated in some way.

  17. Log in to comment