cancel
Showing results for 
Search instead for 
Did you mean: 
mgoyanes
Mt. Kenya
Status: Gathering Kudos

Hello.

I frequently come across segments that have at-the-top placings activities with bad GPS data.
In this category, we have two types of users:

  1. People who unintended end up being placed on the top placings;
  2. People who deliberately try to cheat.

Regarding 1, I've seen this frequently if a person ends up starting/ending a segment after/before the start/end of the segment. Example: https://www.strava.com/segments/27533634 

mgoyanes_0-1662041847910.png

mgoyanes_1-1662041895616.png

The first image is from the CR and the second image is for the second placing. This could be easily detected by Strava. Their “threshold” for detecting if the people started/ended the segment is too high.

In regard to the cheaters, I found the following situations too frequently:

  • Change their devices recording GPS points to be higher than 1 second, thus making straight lines (the shortest distance between two points is a straight line);
  • They know the start and end positions of the segment, so they pause their device's recording before the start and after already entering the segment is when they start again the recording. They do the same for the ending, that is, pause the recording before the segment end and resume it some meters after the segment end.

My suggestions would be:

  • Only allow a segment to be valid if all the points from start to end of the segment happen at an interval of 1 second;
  • Don't allow segments with wobbling GPS data;
  • Only allow to count for segment if the device is collecting GPS data before and after the start and end points, that is, the recording should incorporate all the segment and not parts of the segment as now it is possible.
3 Comments
THENEWMEXICAN
Shkhara

That third suggestion is the bees knees. Though it took me down a rabbit hole of whether the fault is in the app and the potential allowance for wobbling GPS data or the potential of the device capturing the data actually capturing an imaginary chicane; which took me back to suggestion 2. 

Status changed to: Gathering Kudos
Soren
Community Manager Community Manager
Community Manager
 
Silentvoyager
Elbrus

In most cases it isn't cheating - it is Strava segment matching algorithm being too imprecise when matching segments. I see this problem most often on some short uphill running segments. Often a person who takes the first place just turns around too early. Strava matching radius is the same for all sports and it is clearly in excess of 50 meters, which is a lot when running uphill. That can easily save someone 20-30 seconds.

The radius is so great is because Strava wants segment matching still work for cyclists going at high speed while they use Garmin smart recording, which ends up producing trackpoints every few seconds. I think at the minimum the radius should be dependent on sport. And ideally interpolation / extrapolation should be used to narrow down the segment match. For example, let's say the current algorithm is used to find the best segment start or finish point (using the current large match radius and all other current parameters). Let's call that the point N. Strava could then look at the two points (N-1 and N+1) recorded just before and just after the matched point. Then Strava could interpolate on the [N-1, N] and [N, N+1] intervals to see if that brings the match any closer to the segment start (or finish), now using a tighter match radius. That would produce a much more accurate match and it would also detect the cases when someone didn't go entire segment distance, for example by entering a segment from a side or by turning around too early. This shouldn't be too hard to implement, and should be too costly to run because the interpolation would apply only on the two initially matched points for every segment.

I think this would cover at least 90% of so called cheaters, who are not really cheaters in the first place. They are just ignorant users who unknowingly take advantage of the poor segment matching algorithm.