One problem is that there's at least 8 different jump distances, depending on the time between W and Space key activation. I did some testing with a keyboard macro to precisely set the time in milliseconds and measure the jump distance, taking a screen shot of each.
Here's the result:
My character started on the rail at the bottom each time. The only way to deal with this is to develop a feel for the timing.