-
Notifications
You must be signed in to change notification settings - Fork 293
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
Future availability of all vehicles in the system #616
Comments
This issue covers a very important topic for us as a provider of journey planning systems. Our goal is to only provide journey itineraries where all legs are available. For public transport legs that means that the trip e.g. is not canceled. For legs with shared vehicles that means that a vehicle is actually available. |
This seems to overlap with #612 , maybe you should join forces? I'm definitely not in favor of extending the existing files with this information. |
What does the community think about adding a new (optional) endpoint listing every vehicle_id in the system and their future availability? |
I do think there's potential to model (fixed) reservations in the future. One example for this is the CommonsBooking WordPress plugin. While it has rudimentary GBFS support (partly broken due to a timezone issue), the GBFS feed can only reflect the current status even though the system manages reservations in the future. In general, reservations (days or weeks ahead into the future) are probably most common in the field of cars or cargo bikes, but it's still worth exploring, imo. |
It's a good point that there's a difference between forecasting availability based on statistical models, and having knowledge of future reservations, but they belong to the same broader category of information: future availability of vehicles. So they should at least be considered together on some level. |
Hi everyone. I have created a first straight forward proposal. Please feel free to give feedback.
This endpoint would provide the current and future availability of all vehicles that operate in a time-slot-reservation mode. That means that bookings into the future of these vehicles is possible. Usually this mode is applied to station fixed vehicles like shared cars.
example
some remarksI opted to include the availability time frames which seems easier to work with from the consumer side. Might look different for the producer where the not_available times - the booked times - might be easier to be provided. |
Thanks for the proposal! I question the duplication of fields from the Ideally, the availability feed should optionally be filterable either by |
Yes, initially I didn't include That's why I included these parameters here too. Regarding the filtering. I agree with you but would add that |
You have a point. However, we then need all fields including lat/lon, rental_uris etc. Then this feed would be an extended version of the |
From speaking with operators, I anticipate that many of them will not wish to publish the total number of vehicles per type they have in their fleet in open data due to competition. To avoid this, a solution could be to extend vehicle_types.json and indicate when at least one vehicle of that type is available at a given location. This would also avoid duplication of fields. We would lose Example (vehicle_types.json):
Looking forward to hearing your feedback! |
I think @richfab is onto something I had in mind but couldn't quite articulate. I think availability at the |
@richfab Thanks for the input. From your example I can not clearly see if the As an example the existing booked (x) and available (0) times of two vehicles at one station in 15 minutes time windows:
The
But it's not possible to book a vehicle from 8:15am to 9:45am. In the latter case with overlapping
From this one could probably infer back to the number of vehicles the operator has in service at this station. At least get a approximation for it. So the intent to hide that information is at least to some extent undermined. For right now I'm leaving out the question if the overlapping time windows are usable for trip planning systems or end user apps. But I would like to question if the future availability information needs to be open data in the sense of openly accessible, exploitable, editable and shared by anyone for any purpose. I don't think that this should be a requirement. If a producer doesn't wish to publish it as open data - which I think is perfectly understandable - it can be shared only with trusted partners. Maybe with a multimodal booking app. If booking vehicles via this app is possible then a contractual agreement will probably be necessary anyhow. And on this bases the sharing of the future availability information could be regulated too. |
Public data has always been a guiding principle of the specification. If access to the data requires a contractual agreement, then by definition it's not public. Were this not a foundational part of the project, we would have included bookings/reservations/payments/persistent IDs etc. My fear is that if we introduce a new file that's not public (requires auth), then the providers will simply require auth for all the files in the feed. If there's a way that we can serve this use case out in the open, I'm all for it. If it requires restricting access to the data then I'm not in favor. Doesn't TOMP already do this? |
Hello Mitch,
Indeed, but the TOMP has something for this, but we're investigating how to reduce the overlap with GBFS, to make them work together. If we can hand this part over to GBFS, 'separation of concerns' is applied. GBFS for data, e.g. published for planning and the TOMP can start when planning/booking is in scope.
How about standardising the future availability within GBFS, and not specifying that this is a non-public file? To me it looks quite simular: the current and future availability. Why is the current availability public and why should the future availability be non-public? If an implementating party doesn't want to publish it for the general public, so be it. That's also the current situation with the available vehicles dataset. Some parties don't want to expose it publically.
Regards,
Edwin
…________________________________
Van: Mitch Vars ***@***.***>
Verzonden: donderdag 20 juni 2024 15:05
Aan: MobilityData/gbfs ***@***.***>
CC: Edwin van den Belt ***@***.***>; Author ***@***.***>
Onderwerp: Re: [MobilityData/gbfs] Future availability of all vehicles in the system (Issue #616)
But I would like to question if the future availability information needs to be open data in the sense of openly accessible, exploitable, editable and shared by anyone for any purpose. I don't think that this should be a requirement.
Public data has always been a guiding principle of the specification. If access to the data requires a contractual agreement, then by definition it's not public. Were this not a foundational part of the project, we would have included bookings/reservations/payments/persistent IDs etc. My fear is that if we introduce a new file that's not public (requires auth), then the providers will simply require auth for all the files in the feed. If there's a way that we can serve this use case out in the open, I'm all for it. If it requires restricting access to the data then I'm not in favor.
Doesn't TOMP already do this?
—
Reply to this email directly, view it on GitHub<#616 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ACPLCNX7B5RRDXXYXF356ODZILHQPAVCNFSM6AAAAABFKNQ6ZWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOBQGYZTGNJXGE>.
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
Hello everyone, @testower Regarding representing this information in the existing file @matt-wirtz Excellent point about overlapping time intervals (a given vehicle must be available for the entire duration of the reservation). I modified my example to show overlapping intervals.
I think that the approximation of the total number of vehicles per type in the fleet from time interval overlaps is not precise enough to be usable by the competitors. Indeed, in the example with the 3 time intervals, one can only deduce that the station has a minimum of 2 vehicles, but it can have more. With the same time intervals as in your example...
... the station could have 2+n vehicles:
Thoughts? |
@richfab To think about it more thoroughly I think it's necessary to understand how the
Maybe there is a simpler description of how to do it but let's first check if this exactly describes your idea. |
Thanks for clarifying @matt-wirtz. If I'm not mistaken, the table of stations with 4 vehicles matches your description of
My intention is to show that the approximation of the total number of vehicles per type at a given station is not precise enough to be usable by the competitors (from the same set of time intervals, the station could have 2, 3, 4, n vehicles). So this aggregated data can be opened without causing problems for operators, in my opinion. Please let me know if I misunderstood anything. Thanks! |
One question. So it could be something like the station_information file, which only contains static information and includes the vehicles that are available. Such a file could also prevent duplicates. Maybe I'm missing something. I want to understand it. |
Hi @tobsesHub, Great question! The information such as equipment and pricing plan about available vehicles, can be found in the However, the information about unavailable vehicles is not shown because it is of little interest to travelers. Feel free to share use cases where information about unavailable vehicles would be useful to travelers. Thank you! |
Sorry to intervene, Fabien.
This is exactly the reason why we addressed this issue. We want to publish information about vehicles that might be in rent now, but will be available in the (near) future. We don't want to have the exact state of these, but if I, as a traveller want to hire a cargo bike this afternoon, or a bike to visit my grandma, I have to trust nowadays that there is something available. Especially for sparsely available vehicles (like cargo bikes, or bikes located at a bungalowpark) this is relevant. So, just the 'static info' about the bike should be sufficient, including a reference we can use to use in a booking process.
Regards,
Edwin
…________________________________
Van: Fabien Richard-Allouard ***@***.***>
Verzonden: woensdag 10 juli 2024 11:24
Aan: MobilityData/gbfs ***@***.***>
CC: Edwin van den Belt ***@***.***>; Author ***@***.***>
Onderwerp: Re: [MobilityData/gbfs] Future availability of all vehicles in the system (Issue #616)
Hi @tobsesHub<https://github.com/tobsesHub>,
Great question!
The information such as equipment and pricing plan about available vehicles, can be found in the vehicle_status.json file (formerly free_bike_status.json). See reference<https://github.com/MobilityData/gbfs/blob/master/gbfs.md#vehicle_statusjson>.
However, the information about unavailable vehicles is not shown because it is of little interest to travelers.
Feel free to share use cases where information about unavailable vehicles would be useful to travelers.
Thank you!
—
Reply to this email directly, view it on GitHub<#616 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ACPLCNX3SOOA3EY6XL2SPVTZLT4WPAVCNFSM6AAAAABFKNQ6ZWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMJZHE4TSNBTGY>.
You are receiving this because you authored the thread.
|
Hi all, @edwinvandenbelt Good news, the proposal under discussion addresses the need to know if at least one vehicle of a certain type is available in the future. Please find below an iteration on @matt-wirtz's proposal which should address the initial need, the availability windows constraints and open data concerns. Example (new optional file:
We could consider using the same file to represent availability forecasts (#612). Looking forward to hearing your feedback! |
Looking at the When thinking about the computational effort for calculating the So I would rather opt for an optional dedicated |
Hi @richfab. You mentioned earlier in this issue that "you anticipate that many of them [sharing operators] will not wish to publish the total number of vehicles per type they have in their fleet in open data due to competition". Have you already had the chance to get a feedback from operators if the |
Hi @matt-wirtz, |
This discussion has been automatically marked as stale because it has not had recent activity. It will be closed in 30 days if no further activity occurs. Thank you for your contributions. |
Keep open |
This discussion has been automatically marked as stale because it has not had recent activity. It will be closed in 30 days if no further activity occurs. Thank you for your contributions. |
Hi everyone! I have created a new proposal for a new optional
example
Regarding the availability windows:
@richfab: I have removed the part for dockless vehicles from your example and from the proposal for the |
Hello @matt-wirtz, Thanks for updating the proposal. It is a good idea to remove the dockless case from the proposal if there is no use case. In the same spirit, I'd recommend to make sure that this proposal is suitable for at least one data producer before opening a vote. Can you tag or talk about it to operators who want to produce this data? Indeed, the next step is to open a PR on the spec file with the proposal and open a vote 7 days later. If the vote passes, the new endpoint will have to be used by at least one data producer and one data consumer to be added to the official spec (see governance). This is to ensure that additions to the spec are used in practice and avoid speculative features. Thank you for contributing to the spec 🙏 |
Hi @matt-wirtz, we definately like the updated proposal as it addresses one of our problems we face with carsharing. If in need we can talk to data producers from our region and implement the updated format in (one of) our apps. Cheers! |
Thanks @Lefois ! Currently we are talking to a data producer in Berlin but it's great to hear that others are interested to implement it too. So maybe I will come back to you. CU! |
thanks for the discussion. Agree to @Lefois As we are transferring lots of carsharing-APIs into GBFS (MOQO, Cantamen, ShareNow, Fleetster...) at MobiData BW, we are facing exactly both issues - vehicle_availability and all_vehicles. Following EU regulation (DelVO 2024/490) and the general discussion about data sharing in the carsharing business, we would be interested in sharing detailed availability data with MaaS and routing platforms under limited data licences, but still using GBFS standard as one API for all providers. |
Dear all, For round trip carsharing, the majority of trips are booked in advance. Thats's why, as a round trip carsharing operator, I confirm that modeling future availability per station (and not per vehicle) is an identified need to feed journey planner. Thanks @edwinvandenbelt for proposing ! |
Thanks everyone for your contribution 🙏 I have opened a PR to allow a vote to be opened in 7 days or more (see governance).
Thank you! |
I am terribly sorry to join in so late and about the TL;DR. Lately I haven't had time to focus on this topic. @edwinvandenbelt asked me to vote so here I am quickly reading up on the above discussion and providing my 50 cents. Because my company contributed to this availability discussion within the TOMP group already since its early years, I'd like to offer my insights in the challenges of future availability by sharing the use cases we have already implemented. Our internal reservation API is largely based on TOMP except (obviously) for the future availability APIs. For this we implemented a custom API. One important starting point - which has been touched on halfway in the above conversation - is that our business case mainly supports booking vehicle types (as opposed to specific vehicles). This is more complicated to implement but offers the flexibility we need. One of our most complex business cases involves the situation where customers can walk in and take any available vehicle right away, without (the feeling they are) making a reservation but are also allowed to make future bookings for a vehicle type and all vehicles need to come from the same pool. The availability calculations behind this can become quite complex. As an aside, use cases where these two possibilities (bookings vs pick-and-go) are split, are much simpler to implement. I can say from experience that it is a very valid decision for an operator to keep things simpler by doing so. Still I want to base my insights on the complex variant, as that would serve as a good baseline for a specification: if you can handle this you can handle a lot of common use cases. Since we need flexibility in asset utilization we let customers book vehicle types rather than individual vehicles. Future availability is in general not affected by current availability of vehicles unless the future is 'near'. How near is 'near' is something that can be configured in our system and is something that can be used by for example maintenance crews to resupply vehicles for near (for example tomorrows') booking requirements. Honesty requires me to say that these advanced features are not used very often by our operators. In this context note that the following similar looking questions are quite different in practice:
They are so different because the second question usually requires the vehicles to already be available at the station. So the calculation logic that determines availability in this case is different. We call them short and long term reservations. The challenge is where to put the split between the two? Among others this is determined by the business' ability to resupply vehicles. Another factor is how reliable are the customers vehicle return times? Some customers insist on only making vehicles bookable if they are already physically available, but this can severely affect vehicle utilization. So other customers use expected return times in their calculations (like I suspect most car rentals will do) and any conflicts are solved ad hoc when they happen. We strive to facilitate all these different business cases with configuration. Another important factor is the risk of double bookings. When assets are scarce this is often extremely important. But many customers do not bother because they have an oversupply of vehicles or they are simply willing to take the risk based on their experience and handle these in an ad hoc fashion. In any case, these are all factors that need to be incorporated when designing an API that can facilitate a large market. In any case, our customers require exact information about the availability of vehicle types in the future. This information is used by customers who book vehicles in a web shop like interface where they can see exactly how many vehicles are available for a certain time slot, and to a lesser extent by maintenance personnel for creating booking calendars (this latter information is not necessarily public). We definitely do not want a trial and error booking interface, the user wants to know availability up front. This certainty can only be interrupted by another customer booking for the same asset type at the same time. A typical use case is a vacation park where a family wants to book 4 bikes for the period when they are staying at the park. They want to know up front if 4 bikes are available during their vacation period. In our specific use cases they are not (allowed to be) interested in specific vehicles, they just want a specific type. These numbers are shown in the booking interface. Note that we allow the business to configure max available booking spots which is different from the number of actual available bikes in the pool and also different from the actual capacity of a station. The business is free to change any of these at any time, and our system uses those numbers to calculate the current and future availability of vehicle types. In our internal APIs currently we basically return availability of types for a specific period (usually the customer booking interval). We are also experimenting with APIs that allow us to visualize availability of types in a Calendar like interface (for management/planning purposes), but this is quite challenging (as also shown in the above discussion). When I am going to vote on the proposal my main requirement will be exact future availability for vehicle types. A very-nice-to-have would be a calendar facility where the availability for a type over a large period of time can be returned and be used for planning purposes (I do realize this may be less of a requirement for public APIs). This is what our current API for the former looks like in pseudo code: Response: AssetTypeResponse( Obviously we look for a proposal that can be easily mapped on our existing APIs. I'd like to conclude with some additional constraints we facilitate on our bookings to satisfy specific customer requirements. I am not sure whether they are needed in this specification but some MPs might need them so I would like to include them for good measure:
I realize that this does not easily contribute to the existing proposals for which I apologize, but I wanted to share my experience with implementing booking systems hoping it may still provide some valuable information. |
Who am I?
Edwin van den Belt, Software architect in the Netherlands, representing the TOMP-API.
What is the issue and why is it an issue?
We started creating the TOMP-API, using the GBFS definitions, in a restful way. But we extended some of these files with additional functionality, search functionality for availability in the future. This also required to publish all vehicles, without status information (in GBFS it shows only the available vehicles in the 'here-and-now'). It is mainly required for reservation purposes, but it cannot be handled by GBFS right now.
Please describe some potential solutions you have considered (even if they aren’t related to GBFS).
For more information, look at: https://github.com/TOMP-WG/TOMP-API/blob/master/documents/presentations/TOMP-API%20-%20GBFS%20-%20availability.pptx
Is your potential solution a breaking change?
The text was updated successfully, but these errors were encountered: