CMC Virtual Cycling League

The CMC Virtual Cycling League – supported by JDElliott, Victus and Chalk-Air is a social challenge over 5 weekly events presented by Cape Multisport Club and Commix Digital.
Entry is FREE and open to ALL cyclists!
Compete individually, with results from the 4 best events contributing to your total for the League. Results are adjusted via a handicap system, so everyone can compete.
Events are automatically timed using the Strava API – remember to connect your account!
Events take place on from Monday to Thursday. Complete the designated Strava segment at any time during the day, as many times as you like. Ride in a group of friends or on your own. Best time for the day counts.

The 2022 Season starts on 12/09/2022!

(Keep an eye out for our Spring road series running concurrently and Hillclimb challenge to follow soon after this one!)

Registration - once off setup

Register account on
Skip this if already registered and signed in.
Link your Strava account to user profile

Spring League Registration Details


Event details

The nitty gritty


Please reach out to our admin team on / our Facebook page to request to be added to our Leauge-specific Whatsapp group (we had too many problems with unsavory internet characters joining if we paste the link on this page).

The Routes

12-16 September 2022: Tick Tock
19-23 September 2022: Legends and Lava
26-30 September 2022: Figure 8
03-07 October 2022: Road to Ruins
10-14 October 2022: Out and Back Again

The Rules

The CMC Virtual Cycling League is a social challenge aimed at getting riders out on the (virtual, in this case) road to challenge themselves to improve – and have some friendly competition to boot. It is not a race – please don’t take it too seriously!

Anyone can enter at no cost – regardless of team, club affiliation or fitness level. Donations to the club are welcome – detail at the bottom of the page.

The planned routes and Strava segments will be published on the website and confirmed ahead of time. In case of the virtual challenge, adverse weather is not an excuse, so we won’t adjust the dates, although loadshedding might count as the virtual version of bad weather! Any change will be communicated on the relevant website(s) and groups.

Provisional results will be available on the website as activities are uploaded. The cutoff for uploading activities is the Friday evening following the event. Final results will be verified and published on the weekend following the event.

Spirit of the rides

This is a friendly league and we expect riders to participate in the spirit of fairness and honesty. Drafting, riding in a group / official Zwift event, etc is all fine. Choosing the best bike / wheel combination for the route is simply good tactics. Otherwise no outside assistance, etc (miscalibrated trainer, Zwift weight / height doping / etc). If you need to wonder if it’s allowed, it’s probably not – a simple Google search for “Zwift cheating” will give you a good idea of what is not allowed. If there are any questions, please reach out to the organizers – their decision will be final.

Handicap details (short version)

(for the full version, scroll down further)
Your elapsed time (“result”) for the specified Strava segment will be adjusted by factoring in a handicap to produce an “adjusted_result” used to determine League results. Your handicap is calculated in a similar way as your Racetec seeding. If you do not have a handicap yet, your first League event will be used to calculate your handicap.

For team results, the “adjusted_result” is determined for each individual rider first. The team result is the third highest adjusted result.

Handicaps will be recalculated every Friday, based on the previous weeks’ results. For the duration of a League, your handicap can only be adjusted downwards (we are all trying to improve, right!).


We publish two types of leader boards – one with the detailed results per event and a league points table. We publish both the adjusted and original result times / points on each of the leader boards.

Points table

First 25 individual earn league points as per table below.

Individual points (position / points):

  • 1 / 25
  • 2 / 22
  • 3 / 19
  • 4 / 17
  • 5 / 16
  • 6 / 15
  • 7 / 14
  • 8 / 13
  • 9 / 12
  • 10 / 11
  • 11 / 10
  • 12 / 9
  • 13 / 8
  • 14 / 7
  • 15 / 6
  • 16 / 5
  • 17 / 4
  • 18 / 3
  • 19 / 2
  • 20 / 1


The event is held in the virtual world of Zwift. You will need to have an active Zwift subscription (for your own account) and relevant equiptment to do virtual rides. Let us know if you need assistance with getting set up.

Banking Details

Should you want to contribute to the road league, please feel free to make a donation to our club account. Donations can be made anonymous so you can be sure it won’t affect the results! All funds will be applied to cycling events and challenges in 2022.

Even better – why don’t you join our CMC family? Membership for the rest of 2022 is only R300. Contact for all the details.

Account: Cape Multisport Club
Bank: FNB
Branch: Willowbridge
Account Number: 62184973876
Branch Code: 210655
Proof of transfer to

Handicap calculation


The idea of using a handicap to adjust the results came about to allow riders of all abilities and fitness levels to participate in the League and still feel like they can compete. We want to encourage participation rather than have only a small field of really strong riders fighting it out.

The basic idea

We wanted the handicap we use to function on a similar idea as a golf handicap where a higher handicap player can still compete against a better player based on their relative handicaps. Of course we will publish both the original and adjusted times for each ride (similar to the gross and net score in golf), so the strong riders can still compare their actual ride times and results.

How it works

Each rider’s official finish time will be adjusted based on his/her rider’s index to determine the resulting time used for official league results. The formula mirrors that used by Racetec, whereby the finish time is compared to the winner’s time.

Racetec Formula for seeding index = (((finish time / winners time) – 1)/ Beta) * 100

  • Beta = difficulty index. For simplicity we keep the Beta at 1
  • Winners time = Strava segment KOM time

The reverse of the above formula is applied to determine the adjusted event finish time:

CMC Cycling League Adjusted time = Finish time / (((index*Beta) / 100) +1)

Rider handicaps will be recalculated (using the Racetec formula above) over the weekend following each event and published on out Facebook / Instagram / Whatsapp groups. This handicap will be applied to the results of the following week’s event. The only exception if for the first event a rider participates in. Since he/she will not have a handicap yet the first league event will be used to calculate your handicap and directly applied to the results of that same event.

For the duration of the league your handicap will only be adjusted downwards. After the league completes, handicaps will be increased by 1 points per month until the next league (CMC aims to run 2 leagues per year).

The same handicap is used for all cycling events. Individual route difficulty can be adjusted using the Beta weighting in cases where we feel there is a large difference between challenges for different cycling disciplines.