The course is simple: out 51 miles, back 51 miles. There's a checkpoint @ 32 miles on the way out (Bitterwater), another at the turnaround @ 51 miles, then back at Bitterwater @ 70 miles, then of course the finish, at 102 miles.
Since it's not a mass-start event, and we don't allow drafting to prevent it from becoming a road race, we want riders to start at different times. To make things easier on volunteers, we wanted to encourage faster riders to start later, slower riders to start earlier. It's easy to see this results in less of a spread in finish times than if fast riders started before slower riders.
So to economize on checkpoint time, we put the responsibility on riders to start an an appropriate time for their speed. If you want to blitz the course at 25 mph, you need to start as late as possible. On the other hand, if you want as much time as possible to finish, you should be ready to roll when volunteers are ready for the first starter at 8 am.
A slight complication is we also offer a 100 km option: out to Bitterwater and back. The only compromise needed to be made here is the finish checkpoint needs to open earlier. So I won't discuss the 100 km scheduling here.
First is the start and finish line scheduling. So I pick a target fast and slow time: in this case 4 hours for the fastest scheduled time, and 8 hours for the slowest. 4 hours seems fast, but since we allow teams, a fast team time trial squad can go 25 mph on flat roads without too much wind. These roads aren't flat, and there's rarely too much wind, but since we also allow recumbents, hybrid-electric bikes, and even hybrid-electric recumbent bikes, 25 mph is a real possibility (Bill Bushnell was even faster on his hybrid-electric recumbent this year, but in Bill's case we stretched the limits of the schedule slightly).
This is a spread of 4 hours which must be allocated between start and finish checkpoints. I picked a 1.5 hour window for starting, and so would need at least a 2.5 hour window for the finish line, with the finish closing 8 hours after the earliest start time, at 4 pm. This implies the finish line should open no later than 1:30 pm. Well, here's where the 100 km comes in: someone leaving for the 100 km ride at 9:30 am might finish in 2.5 hours, using that 25 mph "fast" target. So the finish line opens at noon.
So the start goes from 8 am to 9:30 am, and the finish opens from noon to 4 pm. That leaves Bitterwater and the turn-around at CA198. You'd think the limit here would again be the early slow rider and the fast late rider. But you'd be incorrect. Actually, the checkpoints need to open in time for the fastest early starter, and need to close based on a schedule for the slowest late starter. So this means limits need to be set for these riders.
Obviously we don't want to accommodate a 25 mph starter at 8 am: anyone that fast should be leaving later. If an 8 am starter were to just be caught by a really fast 9:30 am starter (4:30), the 8 am starter would finish in 6 hours, so we allow early starters to go at this pace. Anyone faster than 6 hours should realize they're not going to need that full 8 hours to finish and can start later. This puts the 100 km opening at 10 am, the turn-around at 11 am, and the opening for Bitterwater return riders at noon, rounding liberally. The rider would then finish around 2pm: exactly the time I'd established for the fastest starters leaving at 9:30 am.
But what about slow 9:30 am starters? If they finish just at the closing of the finish at 4 pm, that's 6.5 hours. That puts the limit on closing times. So Bitterwater should close at around 11:50 am, the CA198 turnaround at 1 pm, then Bitterwater on the return at around 2:10 pm.
Since 200 km riders might be slower, we simply let them check into Bitterwater any time from 10 am to 2 pm. We then stretch the Bitterwater closing for outgoing riders to noon, which gives a bit of extra time unless an early puncture causes delays to a 9:30 am starter.
So considering these four rides: fast late and slow early setting the start/finish times, then slow late and fast early setting the checkpoint times, I make the following chart:
I need to come clean, however. The actual scoring code has the following:
my %cut_off_time = ( "BW(out)" => "12:05", "198(turn)" => "13:05", "BW(in)" => "14:15", "BW(turn)" => "14:15", "finish" => "16:05", );
So I coded in a 5 minute safety buffer. Of course no guarantee the checkpoint volunteers will stick around that long.
We've been using this schedule since 2008, the first year on the present course, and it still amazes me how well it works.