I don’t know what I am doing wrong. My typical evening walks are about 30 minutes long. Yesterday’s shows 43 minutes. When I look at the segments, the stationary segments should be part of “Home” and only the middle one should be “Walking.” That’s what I’ll import into Apple workouts. However, when I re-label the stationary segments as “Home,” they quickly revert back and I can’t get this “workout” down to only 26 minutes. Here’s a screen recording showing the problem. I’d really like to know how to fix this as it happens a lot. For example, a 15-minute trip in my car shows as 50+ minutes long and I can’t split off the time at the beginning or end which should be at the previous or following location. Thanks for any guidance.
Unfortunately this one is a weakness in Arc’s processing logic. Though one that I do have plans for how to potentially fix/improve.
There’s a couple of ways to either fully or partially work around it, but first I’ll give you a little background on why it’s happening, which will help to build an intuition for how to deal with it better when it does.
Arc’s processing engine does what it calls “edge stealing”, moving samples between adjacent timeline items based on various rules. So for example if the adjacent items are “walking → Home”, that’s a “Trip → Visit” relationship, and it will move edge samples between the Trip and Visit based on some “gravity” kind of maths.
The visit’s samples lead to the visit having a centre coordinate and a radius. That’s what you see on the map as the purple circle around the visit dot. Samples at the beginning of the visit, adjacent to the walking trip, are considered for edge stealing. If they are within the visit’s “gravity well” (ie centre and radius) they will stay inside the visit. If they fall outside of the gravity well they will get moved to the walking Trip item instead.
That’s what you’re seeing happen. Samples at the start of your home visit are too close to the radius edge (or rather probably outside of it), so they get edge stolen, moved over to the walking trip item, because they’re outside of the visit’s gravity well.
Ok that was a longer explanation than I wanted to give. But hopefully it makes sense to you! Now I can move on to describing the workarounds.
The first workaround is to create a new private place, for example “Parking”, “Garage”, “Foyer”, “Lobby” etc. Then assigning those troublesome edge stationary samples/segment to that new place. That new visit will then have a centre of gravity at that location, so the samples won’t get stolen out of it.
But that workaround only really makes sense if there is such an edge place. It works great for larger buildings, with parking areas, lobbies, etc, but doesn’t work well for or make sense for smaller buildings. In those smaller building cases the second workaround makes more sense.
So the second workaround is to not try to assign the entire troublesome stationary segment to the visit, because it’ll just get shunted out again, undoing your effort. Instead you can split the segment in half, so that half is walking on the walking trip’s side, and half stationary on the visit side, then try to only assign the stationary half to the visit.
That can work sometimes because … well I’m not entirely sure why, to be honest. But often it does!
Anyway yeah, this is obviously all quite annoying. And sometimes can mean the trip durations get shown wrong by many minutes. Not great. Which is why I’m plotting out some smarter ways to deal with it inside Arc’s processing engine / processing rules. Hopefully I’ll get to building those soon!