-
Notifications
You must be signed in to change notification settings - Fork 232
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Standardize lookback periods #749
Comments
I can confirm that this issue also causes confusion from the operator side, and would support capturing this in the spec in some way. An initial question is, where would a A second question is, how often do cities need to hear from scooters? One heart beat per day? We'll have to strike a balance between reporting enough status changes to meet cities' use cases, without cluttering the /status_changes feed. A third question: are heartbeats state dependent? If a scooter is |
Just noting here that even if we get a heartbeat, like every 10 minutes, that we'll still need a lookback period in case due to comms issues the vehicle skips a checkin and returns at the next one. But it could be in the range of hours rather than the current days that are being implemented. |
The original hope for the Some contextThe most common way to use MDS data is to answer the question "how many vehicles are in PROW right now?". The way everyone thinks to do this is to say "what MDS state are all the vehicles in my market in now, just count the ones in PROW states according to the spec". In 0.3 there was a problem: one could only move a vehicle into a non-PROW state via a pickup or decommissioning. But providers and cities tended to agree that after some period of time with no new events it did not make sense to count certain vehicles as in PROW, since they had likely gone missing. They had not been picked up, and perhaps not yet decommissioned (this tends to be done on a conservative basis, and cities don't like to see vehicles "come back" from being decommissioned, which does happen occasionally with "missing" vehicles), so moving them into Many cities and aggregators decided to use the notion of a "lookback", but this has the unfortunate implication that just because a vehicle is in a PROW state does not mean it will count as in PROW, which raises the question of what a "PROW state" even means if it doesn't mean "counts as in PROW". There were also complications because different cities and aggregators use different lookback windows. All this combines to mean that the exact same MDS data could be counted by different cities in different ways, which is pretty much the opposite of what you want to have happen when working with a standard. How does
|
@wellorder, to clarify, are you proposing that all vehicles in the I've seen instances where vehicles have a lot of transitions into and out of |
We will be discussing this at tomorrow's working group meeting. |
I think it's reasonable to want to treat For MDS 2.0 we could "split" |
Whether a vehicle state is considered in or out of the PROW matters a lot for something like determining how long a vehicle has been parked in one place, which is a common regulation we help enforce at Populus. A vehicle that enters |
Isn't PROW a geographical information while "unknown" is an operational information? The answer to "is a vehicle in unknown state in PROW?" can only be "we don't know – if we knew, it would not be in unknown state". |
@wellorder could you make a PR for this on how you think the use and clarification of |
@wellorder alternatively if you could propose here how you think we could standardize transitions to unknown states then the task force can draft a PR based on the info you provide. Let us know also if you prefer to do this over a call. |
Sorry for the delay; there has been some team reshuffling and I no longer work as closely with our MDS implementation. Please bear with me if I use the wrong terms here and there. I would say the main goal with Having
At Bird currently we just do 1 or 2, depending on the city or aggregator we are working with. This raises another issue (I think brought up by @mrsimpson back when we discussed this in May): to what degree do we want how To sum up:
Pretty much any of the possibilities I laid out above are workable for answering "When does We've always held that it's fair for a city to evaluate us on how much time our vehicles spend in |
One other thing worth mentioning: lookbacks and
This is perverse. It rewards providers that send less data about their operations and penalizes those that send more. We ultimately just stopped sending |
I agree that in an ideal world we wouldn't need lookback periods, but the practical case is that without them we'd still be counting vehicles where the last we heard was that it was available in 2018. I think it's been a mistake to have a state that is "maybe PROW" and in fact @jean-populus floated the 6th idea from above to me last week: that we should deprecate the |
As a provider, we're very incentivized to remove dead vehicles from our feeds, since they take up room in our caps. I'm sure you can find some exceptions (bugs and edge cases abound, unfortunately), but we have entire processes in place to try to make sure that, for example, once we write off a vehicle as a lost cause, to send a We also want The use of the two transitions is different, so I could definitely get behind turning it into 2 states. I think the question for "when is the operator justified in transitioning to In such a world, "send the vehicle to |
I think it helps in that with these states operators have a sanctioned way of saying "we dunno what happened to this vehicle and assume it's gone" in a way that we all (hopefully) agree on and that will remove vehicles from in-PROW counts. I expect lookback periods to remain necessary for retiring vehicles that never get a |
Based on the conversations so far I'd like to propose the following changes to
workflow
The assumption is that providers will implement this new schema and send the new vehicle states and transitions. If implemented rigorously - ie if providers update the vehicle state based on last heard 'heartbeat' as recommended - then we don't necessarily need a lookback period or separate 'heartbeat' data for most use cases (this can be up for discussion!). It could be assumed that any vehicles with no updates are still in the last reported state even if it's been several days or weeks. |
I would prefer |
During the working group meeting today there was general consensus to move this forward. Next steps is to see if we can definite standard timing for the transitions.
|
I can see two options for negotiating the lookback used
I'd prefer the effective lookback period as part of the event (so that providers can change this), I don't have a bias for the regulations-part. In any case, I'd prefer an explicit communication over a "most probably acceptable standard" since the requirements / understandings across the globe may vary. Does that make sense to you? |
Replaced 'unknown' with 'non-contactable' and 'missing' in the Vehicles States table to be clearer about the transition from Yes PROW -> No PROW as discussed in openmobilityfoundation#749. Changed explanatory paragraph on 'unknown' to instead describe use of 'non-contactable' and 'missing'. Open Question: should MDS recommend a specific time limit for the transition from 'non-contactable' to 'missing' if the city does not have an SLA around this?
Changed 'missing' to 'not_located' since there's a new vehicle state for 'missing'. Clarified 'located' to match. See openmobilityfoundation#749 (comment)
I believe this issue has been resolved completely with PR #814. Please comment if you think this is correct or incorrect. |
I believe that is correct.
…On Mon, Jan 9, 2023 at 12:53 PM Michael Schnuerle ***@***.***> wrote:
I believe this issue has been resolved completely with PR #814
<#814>.
Please comment if you think this is correct or incorrect.
—
Reply to this email directly, view it on GitHub
<#749 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AN6R4GF5BG4BHTTWLCCRYA3WRR3ETANCNFSM5PI7OBPQ>
.
You are receiving this because you were mentioned.Message ID:
<openmobilityfoundation/mobility-data-specification/issues/749/1376299649@
github.com>
|
Replaced 'unknown' with 'non-contactable' and 'missing' in the Vehicles States table to be clearer about the transition from Yes PROW -> No PROW as discussed in openmobilityfoundation/mobility-data-specification#749. Changed explanatory paragraph on 'unknown' to instead describe use of 'non-contactable' and 'missing'. Open Question: should MDS recommend a specific time limit for the transition from 'non-contactable' to 'missing' if the city does not have an SLA around this?
Changed 'missing' to 'not_located' since there's a new vehicle state for 'missing'. Clarified 'located' to match. See openmobilityfoundation/mobility-data-specification#749 (comment)
Is your feature request related to a problem? Please describe.
For the historical data we get through MDS Provider /status_changes we only get updates from a vehicle when the vehicle state changes. That means we might not “hear” from a vehicle for several days if it just stays parked in one location. After a certain time - aka the lookback period - if we don’t “hear” from a vehicle then we assume it’s been lost and remove it from the counts.
Different cities have different ideas on how long this lookback period should be.
Describe the solution you'd like
It would be helpful if there was a shared understanding and recommendation on a standard lookback period. Currently each city/provider/3rd party is a separate conversation and unique lookback period.
For example, we could say if a vehicle ID is not in /vehicles then it should be considered removed until it reappears.
We could also consider how operators are tracking their vehicle " heartbeat" (#750) and integrate that into /vehicles, making the "heartbeat" the metric for lookback period.
Is this a breaking change
Impacted Spec
policy
Describe alternatives you've considered
n/a
Additional context
see 2022.02.17 working group discussion
The text was updated successfully, but these errors were encountered: