RaceDay Scoring Alpha Release 0.1.3

As we continue to march toward Beta, we are getting more and more functionality into RD Scoring, the next generation of The Race Director used by timers to score over 11 Million finishers per year. We are also getting an increasing number of timers playing with the Alpha and giving us great feedback. We will do a webinar next week to show off the current status. Here are the latest improvements:

  • Continuous improvements to UI
    Added Panels to multiple setup screens to visually break up the UI better, increasing usability.

    • Added top bar to Race Frame to hold the Race Name and the Manual Sync button.
    • Scored Event setup is now much more clear
    • Scoring page is now easier to use and read. Created an “Actions” section which shows on a sidebar, so it is no longer hidden by a long listing list.
  • Add ability to send raw reads and count
    Internal mechanism to report raw read data added. Not added to the UI yet.
  • Fix Incorrect Field for Age Group Total
    Bug in “Total in Age Group” column addressed.
  • Allow question time entry without hours
  • Sync process cleanup
    • Allow sync to be disabled via Sync Settings page
    • Detected offline status (Electron only).
    • Make API less persistent when you cancel auth popup when multiple API requests need to be made in a sync cycle.
  • Fix duplicate participant bug
  • Default Participants to Event if there is only one Event
  • Sort Participant Timing Location Reads
    Addresses a reported issue where participant’s reads were not sorted correctly
  • Add Report Categories feature
    Now you are able to add a category to new reports, and select Categories from the dropdown to better organize your reports.
  • Allow duplication of existing reports
    We now support the ability to duplicate and existing report to more quickly create a similar report
  • Allow Report Column Sorting and Deleting
    Now you are able to more easily edit existing reports by deleting and moving columns by using the arrows and X’s.
  • Fixed bug which caused crash when switching Races
  • Connector will no longer start automatically – need to start manually from the settings menu in order to import times

[See the full post at: Alpha 0.1.3 Release Notes]

RD Scoring – Eating Our Own Alpha Dog Food

(Yes, the double entendre is intentional)

We used RD Scoring last night in a No Frills Prediction Race – and it worked!

Screen Shot 2017-08-09 at 5.48.20 PM.png

We scored it manually – entering in the participants by hand, and then entering in bib numbers and watch times. This is currently functional, but will improve quite a bit by the time we get to Beta.

The setup process is complicated right now since we only have the scoring “engine” built. This will become simpler as we get closer to a Beta with more wizards and preset options.

Below we will go thru the steps to set up and score this race.

Define Race
Currently, you have to create a race in RunSignUp and then Sync with RunSignUp. You will be able to define races in RD Scoring by the Beta.

There is a Sync Settings in RD Scoring that allows you to define fields. When syncing with RunSignUp, fields like Custom Questions will appear. For the prediction race, we asked a customer question of “Predicted Time” – that is what you will see in the last column below under the RDGo label. By the Beta this will have a lot of fields available including things like Giveaway, USAT membership, etc.

Screen Shot 2017-08-09 at 5.48.28 PM.png

Here, you can define RDGo Fields. In this case, we created a field called “predicted_time”. This will be used in our calculation of the Net Time Difference.

Scored Event
You have to set up which scored events you are working on. For this race, there was only one event.

Screen Shot 2017-08-09 at 5.48.42 PM.png

Age Groups
We set up age groups. There is now a quick start, and then this dynamic editor:

Screen Shot 2017-08-09 at 5.48.50 PM.png

Computed Fields

We set up 3 Computed Fields:

  • predicted_time_offset_ms – this was the subtraction of their predicted time from the clock time in milliseconds.Screen Shot 2017-08-09 at 5.49.00 PM.png

Note there are a number of Operations that can be done – in this case we did subtraction:Screen Shot 2017-08-09 at 5.49.07 PM.png

Note also that by the beta these UI’s will be cleaned up and there will be preset race formats that will hide all of these details.

  • Predicted_time_offset – This did a simple transformation from milliseconds into a standard time format:

Screen Shot 2017-08-09 at 5.49.19 PM.png

  • abs_predicted_time_offset_ms – This created an absolute value of the predicted_time_offset field. In other words it made negative numbers positive for placement – for example an estimate that was 5 second slower than a person ran would be -5, and the absolute value of that would be 5 seconds.

Screen Shot 2017-08-09 at 5.49.26 PM.png

I added all participant information manually into RD Scoring since it was a no frills race with paper entry. I just entered name, age, gender, bib and predicted time. Remember we set up the Predicted Time field in the Sync Settings where you can define fields (not the computed fields).

Screen Shot 2017-08-09 at 5.49.34 PM.png

Timing Devices and Locations
Now to enter times!

RD Scoring comes with default timing Start and Finish devices and locations. For this race we could leave Timing Devices alone, and then we did our manual entry of Scored Reads from a watch and paper tape:

Screen Shot 2017-08-09 at 5.49.44 PM.png

Clicking on the Scored Reads for the Finish, we entered the Clock Time option (rather than the timestamps option, which subtracts gun and chip times from start time).

Screen Shot 2017-08-09 at 5.49.51 PM.png

These can be incrementally saved, and they show in a list that allows you to edit and delete:

Screen Shot 2017-08-09 at 5.50.02 PM.png

Scoring is done with Listings. RD Scoring has a powerful concept called Template Listings, which is defined in JSON (see end of this blog for the code). Templates read definitions like fields, computed fields, and age groups, and create scoring templates. For example, Overall, Male 20-29, Female 50-59, etc.

Screen Shot 2017-08-09 at 5.50.11 PM.png

Right now these have to be hand made. By the Beta we will have tools to create them, as well as default ones setup for certain types of races

Clicking on a Listing once times have been posted gives you the raw results:

Screen Shot 2017-08-09 at 5.50.23 PM.png

The reporting tool has a fair amount of power now, but is very raw – there will be a lot of change in this before the beta.

Creating a Report has a couple of parts to it. First, naming the report and selecting the base listing data for the report. In this case, it is for Overall Female, and it is taken from the Listing seen above. Note there is a start and end position, which allows the report to include say the top 3 finishers:

Screen Shot 2017-08-09 at 5.50.32 PM.png

You then add columns. In the example below you:

  • Set the Column header name
  • Column alignment
  • Single Field or Multi-field – Note the first one is single, and the second, Name is multi-field – concatenating the First and Last Names.
  • The field is selected from a drop-down of fields, computed fields or scored results like Placement.
  • Transformations for different formats like bold, commas, changing milliseconds to seconds, etc.

Screen Shot 2017-08-09 at 5.50.40 PM.png

Adding Columns can be done manually, or there are “quick add” buttons at the bottom of the page.

Screen Shot 2017-08-09 at 5.50.50 PM.png

Once you have added a report, you can add more. Each report can today be viewed in RD Scoring, output HTML, CSV or Text. Uploading to RunSignUp Results will be available by the Beta. This is the view:

Screen Shot 2017-08-09 at 5.51.01 PM

Final Notes

One of the coolest things about RD Scoring is that everything is real-time. If you make a change to a participant name, every report and scored listing is updated instantly.

While there is a lot of work to do on the ease of use, the core engine is working well.

JSON file can be found here – https://racedayscoring.blog/wp-content/uploads/2017/08/basicListingTemplates-noFrillsPrediction-1.json_.zip.

RaceDay Scoring Website and Public Alpha

We are happy to announce the release of the new RaceDay Scoring website – RDScoring.com. This will be the primary communications and support channel for RaceDay Scoring, the Native PC and Mac scoring application currently in the early Alpha release stage that will be an eventual replacement for the PC software package The Race Director.

Currently in it’s Alpha format it is only available to registered Timers at RunSignUp.com.

This site will contain updates and release notes throughout the development cycle, and host a public discussion forum for users to interact with others using the software, and to submit feature requests and bug reports to our development team.

The latest Alpha is always available on the Timer Dashboard:

RaceDay Scoring Pre-Alpha Walk-Thru


We will be giving timers an Alpha version of RaceDay Scoring at the RunSignUp Symposium next week. Matt Avery will be doing a tutorial and we will be handing out USB’s with the Mac and Windows native versions. We still have a long way to go, but RD Scoring can be used to score a simple, real race. In addition, all the “guts” are there to score complex races. We are looking to get some testing and feedback at Symposium.

This blog is being written beforehand to provide some written instructions and context for either before or after the tutorial. There will be changes between the time of this blog and the Alpha even…

RDScoring has this architecture:

Screen Shot 2017-07-11 at 12.49.45 PM

The Connectors, Timing Filters and Scoring Engine are what makes up RDScoring, and is what will be installed as a native Windows or Mac app on your PC.

The main Dashboard of RD Scoring takes you thru the process of setting up a race – mostly in the order of the menu at the left. This interface is likely to change a fair amount to make things easier and hide some of the “raw” complexities that are a bit exposed in the Alpha:

Screen Shot 2017-07-11 at 3.00.01 PM.png

The typical steps to scoring a race are:

  1. Setup Race. Today this is done by connecting to RunSignUp and syncing race and participant data.
  2. Timing Devices. This is where the definition of your timing equipment is done.
  3. Timing Locations. This maps your timing devices to specific locations like Start, Finish, 10K Split, Triathlon Bike Transition Exit, etc.
  4. Scored Events. Defining which events get scored and mapping the Timing Locations. For example picking the 5K, Then setting the Start and Finish Locations, and defining the Approximate and Actual Start times.
  5. Segments. Entire Race is the default segment, but you can define any number of segments for things like splits, or triathlon segments like swim, transition, etc.
  6. Age Groups. Define age groups and gender for scoring. This will expand to have many scoring parameters like Athena and Clydesdale.
  7. Participants. This is where you can sync and edit and add participants.
  8. Scoring. This is where you define how you score top finishers (chip or gun time), how many people in each age group, whether there is double dipping, etc.
  9. Reports. This is where you format and define the output (View, HTML, PDF, Sync to RunSignUp or other API, etc.) your results.

Step 1 – Connect to RunSignUp and Sync Race and Participant Data

The gear icon at the top right takes you to a configuration page where you can set up to point to either RunSignUp Production or RunSignUp Test. Connecting will show a list of races that you can import from RunSignUp. In a later version you will be able to create stand alone races right in RD Scoring.

Once you have added a race you will see it appear in the drop-down list from the top of the page. When you connect to the race all Participant information will be automatically and bi-directionally synced on a regular basis (and you can also force syncs).

Step 2 – Set up Timing Devices

Timing Devices are the ways you are collecting the times. We support a variety of manual, file and chip timing devices. Once Devices are set up, they are available for other races. Timers with chip systems can set up all of their systems.

Screen Shot 2017-07-12 at 10.48.35 AM.png

Setting up an individual Timing Device is fairly simple, and depends on the type of device. For example, here is a view of the standard RunSignUp Protocol that we will be documenting and putting in open source:

Screen Shot 2017-07-12 at 10.50.03 AM.png

We support a variety of devices in the Alpha:

Screen Shot 2017-07-12 at 10.51.55 AM.png

Note also that we have a variety of actions that we can take on devices, depending on what the device offers and our level of support.

Step 3 – Timing Locations

Screen Shot 2017-07-12 at 1.06.37 PM.png

Once Timing Devices are setup, you can then assign the devices to one or more Timing Locations. You should typically have a Start and Finish (Lap Races will get added later), as well as Splits. There are also parameters to filter, such as bib ranges and times. You also set the priority of devices for primary and backup.

Screen Shot 2017-07-12 at 1.08.01 PM.png

Step 4 – Scored Events

A Race may have multiple Scored Events, like a 5K and a 10K. This let’s you set up each Scored Event based on the TIming Locations. In the example below, there are a number of events, and the setup is just for the 5K. Note how it aligns the Starting Point and Endpoint with one of the Timing Locations (Start and Finish).

One of the key parameters here is the entry of the Actual Start Time. This will be used for calculating gun time based off of time of day scored reads during scoring.

Step 5 – Segments

There is a default segment called Entire Race that accepts all of the data defined earlier. The only real data to change would be Endpoint occurrence in case a timing location is being passed several times in a race.

Screen Shot 2017-07-12 at 1.17.21 PM.png

You can add segments for splits and other uses like triathlons.

Step 6 – Age Groups

This is a pretty simple form today, that will gain power as we move toward release. Today it is a pretty manual process for entering in gender and age groups.

Screen Shot 2017-07-12 at 1.18.20 PM.png

Step 7 – Participants

If you are syncing with a RunSignUp race, it will also sync the participant information (bidirectionally). It has search and display capability:

Screen Shot 2017-07-12 at 1.19.45 PM.png

And you can Edit and add participants:

Screen Shot 2017-07-12 at 1.21.55 PM.png

Step 8 – Scoring

We are using a concept called a Listing. A Listing is a way of taking computed fields and doing filtering (like looking for Females 21-40) and Sorts (like sorting the fastest in that filtered group) to produce a Listing Output. The quick view of a listing output will be something like this:

Screen Shot 2017-07-12 at 1.27.13 PM.png

A group os listings will look something like this:

Screen Shot 2017-07-12 at 1.29.00 PM.png

We do not have a User Interface yet to allow you to define Listings yet. Only 3 default Listing Templates, which are mechanisms to read the setup data like Age Groups and Gender, and create each individual Listing. We are including 3 default Listing Templates:

Screen Shot 2017-07-12 at 1.22.54 PM.png

Each Template will read the setup information from previous steps (like Age Groups and Gender) and create each Listing automatically.

Techie Note: Templates are actually JSON files that define how to create a Listing (also a JSON file). This makes the RD Scoring platform very open – where anyone with the proper knowledge can create listing files. And since these Templates and Listings have a standard portable format, they can be shared in the RD Scoring community. This means there could be several different people working on the best XC Scoring Template and it will provide the community with many options and flexibility. In the Alpha version, we give you the ability to download the templates (but there is not documentation yet on how you could do your own). Eventually we will have several wizards and screens in the tool to allow you create Listings and Template Listings easily by clicking and dragging.

Screen Shot 2017-07-12 at 1.35.59 PM.png

Step 9 – Reports (Result Publication)

This is another area that will receive a lot more ease of use features before it goes to production. Right now you have to hand build each report.Screen Shot 2017-07-12 at 1.36.38 PM.png

There are several output formats today, with more coming (like API connections to RunSignUp and others). Clicking on View will run the report in RD Scoring. :

Screen Shot 2017-07-12 at 1.38.39 PM.png

This is the report builder today for the above report:

Screen Shot 2017-07-12 at 1.40.05 PM.png

See how Column 1 is multiple fields and we provide a way to concatenate these fields with a space between the First and Last names.

Fields can be static text or they can come from scored read data, participant information or output from the Listings. In this case I am adding a column to show the total number of overall finishers that is being generated by the listing:

Screen Shot 2017-07-12 at 1.47.30 PM.png

Note how I centered the new field and it is added to the Report View:

Screen Shot 2017-07-12 at 1.48.25 PM.png


As you can see, we have created much of the foundation for the next generation of Scoring. When it is fully released, it should be easier to use than The Race Director, and have the type of customization power that RunScore provides. We are also hoping for a robust community that will share Listings and Report Templates.

We are releasing the Alpha next week to start to get some input and testing. We are hoping to release a Beta in the next couple of months that will introduce more ease of use and configuration, the ability to handle non-RunSignUp races, and much more documentation than this blog.

New Individual Results UX

We have released the new User Experience (UX) for viewing individual results:


If the individual has a profile photo, then it will appear as well:

Screen Shot 2017-07-12 at 10.41.09 AM

(BTW, that photo is of Meredith Klein, our UX Engineer who designed this new page!)

We have some more improvements coming on Results, so stay tuned!

P.S. Just to remind you how horrible it used to look…


Timer Dashboard

We have released the first wave of our new Timer Dashboard. As the name implied, this is for timers to be able to manage all of their races in a single place – whether they are the Partner for a race, the actual race director or have been added as the Timer for a race:

Screen Shot 2017-07-12 at 8.46.07 AM.png

This first version is mostly focused on giving timers direct and easy access to manage RaceDay related things for races. They have quick access to each full Dashboard, or a quick “Actions” menu that will take them directly to where they need to go:

Screen Shot 2017-07-12 at 8.46.25 AM.png

You can add Secondary users, and begin to manage your information.

We will be adding a number of things over the coming months:

  • Add non-RunSignUp races easily
  • Consolidate various timer accounts you may have
  • More information about your business, which will be used to provide better guides for race directors looking for timers
  • The Race Director and RD Scoring license information
  • Direct access to RD  Scoring on the web to manage multiple local RD Scoring systems at multiple races
  • Manage your Race Calendar, similar to Sponsors – keep track of race commitments, invoice customers, collect payments, automate renewal processes, etc.
  • Track resources like equipment and people as they are assigned to races