How It Works

RaceTiming App. DIY Timing Software on the iPhone®/iPad®.

Time Your Own Race and Raise More Money for Your Cause! For Race Organizers, Coaches, Directors, and Runners

VERY EASY AND INTUITIVE: It takes two clicks to time your races. Click a button each time a runner crosses the finish line; and Enter the runner’s bib number. That is all. With the first click, RaceTiming app will capture the runner’s finish time and with the second click, the app will get the runner’s bib number.

BACKUPS: Email and save the finish times and rankings on your phone. Nothing ever gets lost.

BANDITS: Deals with unregistered finishers.

FLEXIBLE: Made a mistake. No problem. Convenient delete feature lets you delete incorrect entries.

LOW COST: You do the work yourself, so you can raise more money for your cause.

The app does not require a network connection, and supports timing a race on two separate devices to easily handle a congested finish line. Bib numbers can be exchanged between devices using Airdrop.

Download Racetiming from App Store 

Version 1.8 adds the following:

iOS 12 compatibility and adds a feature to print bib labels directly from the app to select Avery-compatible labels.

Version 1.7 adds the following:

Make compatible with iOS 11.

Version 1.6 adds the following:

Added export functions in the roster and race config screens so the final roster, and the full race information including the start time, finish times, and bib numbers can be uploaded to your Dropbox folder.

Added some additional convenience features including the possibility to directly print the race results from the results screen, a way to create a new race entry in the database with clean race information, and displaying the elapsed time in the finish time window and in the finish times email.

Updated to use Dropbox API v2 authorization and html end-points.

Version 1.5 adds the following:

Changed the race data saving to be more intuitive: Removed the default database entry and instead save and load back whatever was on the app screens when the app quits. Updated the in-app help screens.

Fixed the scrolling behavior of the finish time and bib textviews in iOS 8 that got clobbered in the update for iOS 9.

Version 1.4 adds the following:

Fixes the scrolling behavior of the finish-time and bib textviews in iOS9, and significantly improves the performance in switching to the finish-time and bib screens when there are hundreds of entries.

There is an issue with running this version and 1.3 on iOS 8 devices, the finish time and bib text boxes do not always scroll properly. The times and bibs are entered but just not displayed. The only workaround we have, (besides upgrading your device to iOS 9), is when this happens and you want to scroll to the latest entries you should go to the config screen and save it and load it back. After saving you can confirm the number of finish times and bib entries in the saved listing legend. We are working on a fix for this iOS 8 specific problem. The text boxes work fine in iOS 9.

Version 1.3 adds the following:

Fixes some navigation issues for some screens in iOS9.

Version 1.2 adds the following:

In the (race day) registration page the category entry box now has a dropdown menu where you can select existing category names currently in the roster. No need to remember complex category names!

The (race day) registration page now checks if you try to register a bib number already used in the current roster, and gives an error so you can correct the entry. When saving a roster in the Roster screen, a warning is given if there are duplicate bibs in the roster with a listing of which bibs are duplicated. The roster is nevertheless saved, but can be corrected directly in the roster text box.

The category results page now displays the results with categories sorted alphanumerically.

Some small bug fixes:
– Full name of category is now correctly displayed in the results table even when there are spaces in the category name.
– Ranks of 3 digits or more in the results table are now displayed

To properly upgrade from version 1.0 of the app on your device, you should first delete the app from your iPhone/iPad, and then download it again. (To delete version 1.0 of the RaceTiming app, touch its icon until the all the icons wiggle, then click the cross on the RaceTiming app.) Not first deleting the the app before upgrading will cause save and load problems in the Race Config screen. Updating from version 1.1 does not require first deleting the app on the iPhone/iPad.

Here is What You Need to Do to Have Your Race Timed with RaceTiming.

Timing races with the RaceTimingApp is a 2-step process: The 1st step is capturing a finish time for each runner passing the finish line, and the 2nd step is entering a bib number for each runner who crossed the finish line.

The RaceTiming App provides two easy-to-use interfaces to perform both steps. However before you time your race you will want to prepare and download your roster to the RaceTiming App.

Preparing and Downloading your Roster

Typically a few days before your race you will have a list of pre-registered racers ready for your packet pickup. You should download this list of pre-registered racers to the RaceTiming App. You can download the list using the roster screen of the app. Prepare your list of runners into a file with the following format

Last Name,First Name,Bib,Category

i.e. one runner for each line with the four items (last name, first name, bib number, and category) separated by commas. It’s easiest to get such a file by exporting a CSV file from Excel if you have your roster in an Excel file. (You should not have a blank line at the end of your file.) Usually you can download your roster from your registration site as an Excel or comma-separated format file. The category can be any string you choose but without spaces, e.g. “M” for men and “W” for women, or “5K-W-19-25” for women runners in the 5K in the 19-25 age group, etc.

To download the roster from your Dropbox folder, the location of the roster file should be at the following location with the appropriate name:

Dropbox/Apps/RaceTiming/Race_Name_roster.csv

where “Race_Name” is the name of the race in “Race Config” view of the app. An easy way to see if you have the right location in your Dropbox folder is to upload some results as the results file goes into the same folder:

Dropbox/Apps/RaceTiming/Race_Name.html

E.g. You can register one runner using the registration view, set a start time, then get a finish time and enter a bib number and generate the results. Then in the results view go to “send” and upload the results to Dropbox.

Once you have downloaded your roster save it in the roster view. In the race settings screen you can get a confirmation of the number of registered racers.

roster_downloaded   roster_saved   roster

If you have your CSV roster file (of the correct format) on a web server you can also download it to the RaceTiming App by going to Safari and navigating to the CSV file URL. Safari will give you an option to open your CSV file in the RaceTiming App.

For race day registrations, you can use the register screen in RaceTiming App (look at the “More” tab on the iPhone, or Register tab on the iPad.) For very small races you could enter all runners into the roster using only the register screen.

settings_screen     registration

The First Step: The Finish Times

1) Use RaceTimingApp to start the race. All you need to do is to click on the Set Start Now button as shown in the picture below. The app will confirm with you whether this is the correct start time and allow you to modify it by using the spinning wheels.

starttime_notset      starttime_confirm     starttime_set

2) Once the start time is set, you will start waiting for runners to cross the finish line. Each time a runner passes by, on the Finish Timing screen you will simply click the “Click to Enter Finish Time” button as shown below. This button will automatically capture the finish time for that runner. You will do this for all the runners as they pass the finish line.

finish_time

That is all you need to do to capture finish times. As you can see the app provides various other features like “Email Times”, “Delete Last Entry” and so on. These are all options that are designed to make your life easier and I will explain them below. But, you do not have to use them to get your race timed. For now, this is all you need to do to capture the finish times.

The Second Step: The Bib Entry

1) A race volunteer will stand at the finish line and collect the bib numbers from each runner crossing the finish line. A bib tag has a narrow bottom portion called a pull-tag. The pull-tag has the bib number printed and it is perforated to be torn easily. The volunteer should tear off the pull-tag to capture the bib numbers and stack them in the order that racers finish. For example, the bib number for the first runner should be at the top of the stack and the second one should come next and so on. A convenient way to collect the bibs is on a stringer.

2) You grab the stack of bib numbers and start entering those into the app in the order they are stacked as shown below. For each bib number the app will find the corresponding finish time for that runner to calculate the rankings. Let’s say you are handed a stack of bibs like this: 235, 236, 237. This means that the first runner who crossed the line has a bib number of 235 and you should first enter this person into the app. The second runner to finish is 236 and you should enter 236 into the app next. You can either enter the bib numbers at the end of the race if you are using the same device to capture finish times, or more usually you would use a second device running the RaceTiming App to enter the bib numbers in. If using a second device for bib numbers there is no need to do anything other than entering the bib numbers on this device, e.g. no need to set a start time, etc..

bib_entry     bib_entry_with_numpad

That is all you need to do to time your races with RaceTimingApp!

Below we will show you all the features and tools that RaceTimingApp comes with that will make your life easier

Frequently Asked Questions:

What is the format for the roster file?

The roster file should have the following format:

Last Name,First Name,Bib,Category

one runner for each line with the four items (last name, first name, bib number, and category) separated by commas. It’s easiest to get such a file by exporting a CSV file from Excel if you have your roster in an Excel file. (You should not have a blank line at the end of your file.) The category can be any string you choose but without spaces, e.g. “M” for men and “W” for women, or “5K-W-19-25” for women runners in the 5K in the 19-25 age group, etc.

Where should I have the roster file to download it using Dropbox?

The location of the roster file should be at the following location

Dropbox/Apps/RaceTiming/Race_Name_roster.csv

where “Race_Name” is the name of the race in “Race Config” view of the app. An easy way to see if you have the right location in your Dropbox folder is to upload some results as the results file goes to the same folder:

Dropbox/Apps/RaceTiming/Race_Name.html

You can register one runner using the registration view, set a start time, then get a finish time and enter a bib number and generate the results. Then in the results view go to “send” and upload the results to Dropbox.

Can I get results immediately for runners that have finished?

The released version of RaceTiming App does not need an internet connection and does not use a server, however you can still get results immediately on the app. Let’s say a race has 100 people, but only 20 people finished so far. If you have the bib numbers on device you are using to capture finish times on you can generate the results so a runner in the top 20 can check his/her results without having to wait for the other 80 racers to finish. Once you have generated some results you can upload them to your Dropbox location where others can also view it.

How many volunteers/race organizers do I need to time my race?

If you can, having 3 people working simultaneously is the best option although we had races where 2 people handled all of the timing just fine. Having a single person will work for small races, but we recommend having at least two volunteers. Having more volunteers will speed things up since they will work simultaneously.

If you have 3 people: One person will stand at the finish line and enter the finish times into the RaceTiming App. The second person will not do anything with the RaceTiming App, but simply collect the stack of bib numbers by tearing off the pull-tag portions from the racers. The third person will have a second device also running the RaceTiming App and enter the bib numbers into the RaceTiming App. As you notice the bibs and finish times are best entered on separate iPhones/iPads. That is fine, the person entering bib numbers can initiate a transfer of the bib numbers at anytime to the other device by using the Airdrop button on the bib entry screen. However wait for a period when no runners are going to finish before initiating the bib transfer as the other device will be interrupted by the Airdrop request. The person entering the bib numbers can try to do it in real time, if he/she cannot keep up he/she can continue entering later from the paper stack of bib numbers. It is important to collect and keep the paper stack of bib numbers for backup.

If you have a 2-people team, one person will stand at the finish line and enter the finish times into RaceTiming App. This person will also enter the bib numbers. The second person will not do anything with the RaceTiming App, but simply collect the stack of bib numbers by tearing off the pull-tag portions from the racers. The actual paper stack of bib numbers will serve as backup, and from which the first person will use to enter bib numbers. Except for tiny races or races where runners never bunch up at the finish line the first person will not be able to keep up trying to enter bib numbers in real time. In a 2-people team, my personal preference is to first enter the finish times into the app. In the meantime, I let the second person to stack all the pull-tags. Once I am done with entering times, or when there is a quiet moment in the race, I will simply take the stack of bibs and enter them into the app.

Can we use the RaceTimingApp on multiple iPhones simultaneously?

Yes, you can. In fact we designed our app so that you can have multiple race directors working simultaneously. The typical scenario is that one person will enter the finish times on his/her device and another person will enter the bib numbers on his/her device. If you need to, you can have a single device and enter both finsih times and bib numbers, too.

Can we save the roster, start time, finish times, bib numbers and results?

Version 1.1 allows saving and load the race name, crew emails, start time, finish times, and bib numbers within the app. You can save multiple races under different race names. You can also make a backup of your finish times, bib numbers, and results by emailing them to yourselves using the “Email” button on the appropriate screens. You can also upload your results to your Dropbox folder.

How do I start a new race? How do I reset the start time?

The quickest way to reset all race data is to load the “My Race” entry in the Race Config screen that came with the app, it has no start time, roster, finish time, or bib numbers. If you do not have an entry in the save races you can manually delete the roster (pre-registered racers in the Roster screen and race day registrants in the Register screen.) You need to also delete all finish times in the Finish Times screen, and Bib numbers in the Bibs screen. You do not need to reset the start time to the “Not Set” state. You can just set the new start time by touching the “Set Start Now!” button, or use the “Set the Modified Start Time” feature. We will add a more convenient “Start New Race” button in the next version.

Explaining the Views in the App and Extra Features

Below I explain the different features in the app. These are not necessary to time your race but they will make your life so much easier.

Results View

As you enter finish times and bib numbers, results can be generated or regenerated at any time using the “Generate Results!” button on the Finish Timing screen. You can see the results using the Results tab. The screen shots below shows you how the results are presented inside the app. The initial view shows a summary of the number of finishers and categories, clicking on the summary line brings up views with tables of the overall results or results by the categories you have defined, e.g. F-19-25 for females aged 19-25. The results by categories show both the category ranking as well as the overall ranking.

results    overall_results    category_results

From the results summary view you can click on “Send” to email yourself the results as a backup or for your own processing. You can also upload the results as a web (html) page to your Dropbox App folder. The web page will be uploaded to the following location

Dropbox/Apps/RaceTiming/Race_Name.html

where “Race_Name” is the name of your race given in the Race Configuration screen.

results_uploaded

Race Day Registry 

Very often, you will have runners who will show up on the race day and want to register. This is really easy to do with RaceTimingApp. You can register them with the app right there and then. Once you enter the registry data, the runner will be automatically added to your race roster. The below picture shows how the race day registry works. You type in the racer’s first  name, last name, bib number, and category. The category is case sensitive, if it does not match any of your categories in your pre-registration roster there will be a new category defined. The category can be any string you choose but without spaces, e.g. “M” for men and “W” for women, or “5K-W-19-25” for women runners in the 5K in the 19-25 age group, etc. Once you finish, you hit register and the app will automatically add the racer to your race roster.

more_tabs      registration

When you click on “Show Registered Racers” button, the app will show a confirmed list of bib numbers that are just registered on the race day. You can also check on the Race Roster view, race day registrants will appear at the bottom of the roster.

Backing Up Your Data

It is very important that you do not lose the runners’ finish times and the bib order. The RaceTimingApp has options for backup. Both when you enter the finish times and the bib numbers, you have an option to email the data. Look at the “Email Times” and “Email Bibs” buttons in the upper right corners of the pictures below.

finish_time      bib_entry

When you click on Email Times and Email Bibs buttons, you will be presented with a email compose view, with  finish times all converted to seconds, or bib numbers in the order they are entered into the app. Just make sure the to field is filled in and hit send, and a back up email will be on its way. If you have entered any email addresses into the “Race Crew Email” view in the Race Settings tab, these will automatically be filled into the Email “To:” field. If you do not have internet you can hit “Cancel” instead of “Send” and save a draft of the email to your device locally.

You can also save the start time, finish times, and bib numbers in the app itself under the Save/Load Race Configuration view. In this view saved races are listed in a table under the race name and with what information is saved.

What Happens if the Cellular Network Goes Down?

No problem. iPhone email is designed to handle cellular outages. It will save a local copy of your email so your data is kept on your phone (inside your outbox folder in the email app). Whenever the network restores itself, the iPhone will send the emails automatically. So with or without network, your data will not get lost. And you have a very simple way to obtain it.

This version of RaceTiming app does not rely on a server and thus can be safely used even without cellular or network service. If you are using a second device to collect bib numbers you can transfer the bib numbers over using airdrop, which uses Bluetooth and WIFI locally and does not need an internet connection. We recommend you backup (email) the finish times and bib numbers periodically so you will have a backup from which to reconstruct the results so something happen, e.g. if you lose power completely on your device. Your collection of physical bib tag stacks will also be your backup of bib numbers and ordering.

Bandits

Occasionally there will be runners who will run your race without any proper registration and a bib number. We call them “Bandits”. Naturally, you will want to exclude these people from your race results. The RaceTimingApp provides an easy way to do this.

When you work the finish line, you would be busy with capturing everyone’s finish time. So you cannot and should not pay any attention whether a runner has a bib number or not. Just continue to time everyone that crosses the finish line. It does not matter whether they have a valid bib tag or not. We will take care of it later.

When you, or the other race volunteer, start tearing off the bib numbers from racers, you will notice that some runners have no bib tags. Since the order of racers is very important, you will want to mark those runners without a bib numbers. To do this, you will just use a blank bib tag or a blank piece of paper, something that signals to you that someone at that finish position does not have a bib. Let’s say you stacked the bib numbers as following: 231, 276, 301. This means runner with bib number 231 is the first to cross the finish line and 276 is the second and so on. When you have a bandit at the fourth position, you should put a blank bib tag such as 231, 276, 301, Blank. So you know the runner at the fourth position is not a legitimate runner

When you later enter the bib numbers into the app, you should enter 231, 276 and 301 normally. When you see the blank tag, you should click on the “Bandit” button on the bottom right corner of the Bib Entry View. Now the RaceTimingApp will know that fourth runner is really a bandit and will exclude his time from the overall results.

bib_entry

Search View

Sometimes you need to find information about a runner fast. This comes in real handy if you want to announce runners’ names and where they are from as they cross the finish line. Some races have special announcers and audio system set up to just do that. The problem is that the announcer needs a very quick way to look up the racer’s info as they approach the finish line. Usually announcers print out a large copy of the race roster and hope they can find the bibs fast enough. Another time you will need the search function is when a runner comes to find out their finish time.

The RaceTimingApp provides a Search view that allows you to do all of this easily. In the Search view you either enter the runner’s name or the bib number, and it finds all the information about the runner. If the runner already finished the race, it will show you his/her results too. If she/he has not finished yet, these fields will show up as N/A. The data that can be returned is up to what you put into the race roster.

search_withbib      search_withname     search

Race Settings

In the Race Settings tab you can enter your race crew emails, setup the race start time, download and view your race roster, and save and/or load a race configuration. In the Race Config screen you can change the name of your race (remember to hit “Done” after changing the name), generate a new race id, and save these information and the crew emails to the app database. The race id is provided to help us distinguish between races, the database uses the race name as the unique identifier. Saved race config information is given in the lower table of the Race Config screen.

settings_screen      config

 In the race config screen you can save your current race information which consists of the race name, crew emails, race Id. Additional information is saved if you have set the start time, have finish times, or bib numbers entered. What information for a race is saved is displayed using the following legend:

ST – start time
R(M,N) – Roster with a total of M registrants, including N race-day registrants
FT(X) – Finish times (X of them)
B(Y) – Bib numbers (Y of them)

Help View

On the “More/Help” tab you can find some some help screens giving you some of the same information given on this page.

help_settings     help_roster


Apple ®, the Apple logo, iPhone, and iPad are trademarks of Apple Inc., registered in the U.S. and other countries. App Store is a service mark of Apple Inc.