Happy to share those details!
It's not a simple answer, as we described in blog
https://www.virzoom.com/2019/03/29/track-your-stats/
For the purpose of Fitbit reporting, we presume 10 mph for light bicycling at 60 rpm, regardless of game difficulty.
Your virtual speed in the games is more complicated. We start with a speed factor of 14.45 mph at 60 rpm at the default difficulty of 5, which corresponded to resistance setting on the original VZ Bike. Then we modify it for difficulties 1-8 by this formula:
Speed * (1 - ((Difficulty - 5) * 0.1))
That corresponds to 10 mph for difficulty 8 and 20 mph for difficulty 1 at 60 rpm.
We further modify speed based on hilliness in the forward direction (to make it feel like you are going up or down hills), hilliness in the sideways direction (to match expectations of going slower in such conditions), and whether you are going backward or flying or drafting.
Finally we multiply and clamp speed by factors per game. For Explorer the speed multiplier is one, with a clamp of 22 mph so that we don't exceed the rate of Streetview images. At a difficulty of 5 that kicks in at 90 rpm, but note we account for higher rpms for keeping up with the virtual trainer.