Is there any way to clean up stationary timeline items?

In the stationary timeline there can be everything from airplanes to bikes in addition to walking or being stationary

Is there any easy way to clean it up so it only shows stationary and walking since I’m not likely to be flying when in a location?

Yep! Definitely. And the good news is once you’ve done the cleanup, new visits to that place will have much less noise/mess in the segments, because the cleanup effort trains the Machine Learning to do a better job at that location.

Basically just go into the Individual Segments view for the visit, and change every airplane/cycling/etc nonsense segment to stationary. It’s a bit of a tedious job if there’s a lot of mess in there, but each time you do it for that place, there’ll be less cleanup work to do in the next visit.

My Home place now gets no nonsense segments at all, most days. Occasionally it’ll get a sprinkle of two or three cycling segments, but that’s much easier to clean up quickly.

Oh one more benefit of doing cleanup of the nonsense segments inside visits is Arc will then automatically delete a whole bunch of them, as part of its “Visit sample pruning” cleanup process.

Basically Arc will only keep one sample per every 2 minutes of a long visit’s duration, to avoid ending up with thousands of samples for days where you didn’t go anywhere at all.

But it will only delete two kinds of samples inside visits: samples recorded during sleep mode, and samples classified as “stationary”. So by changing all those airplane/cycling/etc nonsense segments to stationary you make them eligible for deletion. That can result in the visit’s total samples going from for example 5,000 samples down to 500 samples. Lots of unnecessary cruft cleaned out of the database!

That cleanup of unnecessary samples makes the database smaller, and lets the app run faster.

Any possibility for more automation of this, I have a lot of places from 2017-2020 where I’d didn’t clear out the data but assigned a location so it’s just hard to clean up

Maybe in a future version a different confirmation for stationary places similar to the movement for the arbitrary segments? It’s just really tedious since I have to go through each day and then click each location several times to get to the right menu

It is automated - it just needs you to kickstart the process, by teaching it to identify the nonsense segments inside visits to that place. The more corrections you make, the less often it will make mistakes. And that will affect previous visits too, due to old samples being reclassified after 3 months (or maybe 6 months - I forget the exact time).

Basically Arc is always automatically updating activity types, merging items, correcting the start and end edges of visits, and a bunch of other things, both for newly recorded data and old data (when you go back to view it). All of those automatic processes are based on what you’ve taught the app, so every time you make new corrections/confirmations/cleanups, that is fed into the app’s learning, and results in more/better automatic cleanup in future.

I’d definitely like to clean up that workflow! I’ve got a few things in mind. Hopefully will get a chance to work on them at some stage.

Would you suggest I start with more recent data? I’ve been working my way forward from the last data but if it reclassifies I’m not sure if it matters for the model

I think the models use all samples from the past 2 years, if I remember right. Yep, just double checked the code, and it’s past 2 years.

So as long as it’s within the past 2 years, it doesn’t matter much which you clean up. It certainly doesn’t have to be all of it! Even just cleaning up a tiny fraction of mess will help a lot, and get much cleaner results for new visits (or old visits that get reclassified on view).

I just occasionally do a bit of cleanup in a messy visit when I see it, if I can be bothered at the time. And that’s enough to keep my common everyday places with very clean segments.

So if I moved two years ago will the new models not update the old locations? How frequently does arc decide to update older places?

like if i leave the app open will it slowly work through older locations?

Ah, Place models are separate from ActivityType models, so that’s two different thresholds.

Place models I think update using all confirmed visits to the place. While ActivityTypes (walking, running, etc) update by using samples within the last 2 years.

So that means if there’s some road you haven’t cycled down for over 2 years, then knowledge of that will drop out of the ML model’s knowledge, and it won’t recognise it quite as well it you cycle on it again. (But then once the model has been updated after that new cycle trip, it’ll be fine again).

Each Place model and ActivityType model is queued for update after the related data changes. For example a new visit to a Place, or a new trip of a certain activity type. Then when iOS runs the scheduled model updates task, Arc will work through updating all of the queued ones until either they’re all done or iOS stops the task before completion (iOS does that a lot).

Typically those model updates will happen when you’re not using the phone, but the phone is plugged in to power. That’s when iOS is most likely to run those background tasks (and those ones are flagged as requiring power, so they’ll definitely not get run when the phone is unplugged).

Any way to have a mark all segments button? so all segments inside this Stationary activity will mark as a activty we choosed.

@o1x I recommend filing it as a feature request on the Changemap site.

Lol well i spent some time going through all my old place data while watching Netflix so that data going forwards would be accurate so i guess this isn’t an issue for me anymore but i think, just migrating from edit[moves], was that confirming a location would also make the associated data would all be labeled as stationary since that was the shortcut they used

Also similar with manually marking bogus segments, i see that they get removed from timeline view but the underlying data isnt changed

I do see now though, that I’ve properly sorted all the past data, that all the new data class is written very accruately, it was just a little annoying that arc isn’t very aggressive in sorting old data that I haven’t sorted yet, especially when there were a lot of nolo datapoints from earlier in arc’s developments

A big difference with Moves was that Moves basically didn’t keep any recorded data for inside Visits. A Visit object had a start and an end time, and nothing between. Arc instead keeps recording samples while you’re inside a Visit (albeit at a much reduced frequency, to save battery).

That extra data makes it possible to do things like extract out smaller visits inside bigger ones, for example if you went to a mall, then went to several shops inside the mall, and you decide you want to split all of those out separately in the timeline. Arc has recorded samples for all the walking around inside the mall, so it’s possible to split those inner visits out, if the mood takes you. That’s something that wasn’t possible with old Moves app.

Yeah Arc doesn’t delete any data unless it’s truly redundant/useless data. So when you mark something as bogus, Arc will hide that segment from the timeline and the item details view, but it’s still in the database. Though if the data is automatically deemed truly redundant/useless then one of the daily housekeeping tasks might completely delete some of it, to slim down the database size and save space.

Yeah this is an unfortunate battery use trade off. Arc could be much more aggressive about reprocessing old data and doing more cleanup over time, but that would come at a performance cost (eg slower timeline loading and browsing when going back to old data), and energy cost, thus shorter battery life and also more risk of making iOS angry. So I’ve set it to be fairly conservative about reprocessing old data.