In theory we should check each of your accounts every 15 minutes for new activities being uploaded. That's a very simple approach that could work if we had unlimited resources or had very few CopyMySports users. Unfortunately we do not have unlimited resources and fortunately we have many CopyMySports users. The main problem is that we can only make a limited number of requests per time unit to the site that we interact with (Garmin Connect, Strava and RunKeeper). That implies that we have to use these requests as effectively as possible.
What CopyMySports does is check at what times and days of the week you have uploaded your last activities. Based on these upload times it check more frequently around those times and less frequently at other times. For example, most users do not upload activities during the night, so there is not much use in checking for new activities for these users during the night. This way the number of unneeded checks is reduced. It also means that if you upload an activity at a time you normally do not upload activities, it may take a bit longer before it is copied over.
As you upload more activities, CopyMySports will better in determining when to check and when not to check for new activities for you.
Note: We realise that currently we're not meeting the 15 minutes target at the moment (december 2013), we working hard in fine tuning the checking algorithm and are making steps in the right direction.