I am trying to make everything as self-explanatory as possible, but I will be updating this page with common questions and problems.

Perhaps most importantly, the prerequisites for obtaining shifting data are as follows:

There is a bug in how the D-Fly data is recorded in the Garmin devices. The only data recorded is shifting events. There is no initial gear recorded. I have created my algorithm to make an educated guess about the initial gear based on the first shift. There are certain scenarios if you are near the end range of the cassette or if your first shift is a front shift and you only have two front chainrings, where I can calculate the initial gear exactly. In other scenarios, I currently assume if the first shift is a rear shift that it is an upshift into a harder gear in the rear cassette. Based on that assumption, I can calculate the front and rear gear numbers and store them for later. If you ever shift into those gear numbers again, then the D-Fly will tell me exactly how many teeth are on the chainring and cassette in those positions. If you shift a bunch of times, this initial guess (if wrong) won't matter. But if you only shift a few times in the entire ride and the initial guess was wrong, then that can definitely have an impact on the shifting percentages, etc...

If you want to be really sure that everything is correct ... always start your ride with two shifts immediately after you start the timer and start moving. If the initial guess was wrong, it will be corrected by the second shift. Since the initial incorrect gear only lasted a second or two, it should have no impact on the overall shifting percentages.