-
Notifications
You must be signed in to change notification settings - Fork 231
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
Carshare Support #640
Comments
Thank you for this detailed proposal! We are aware of the need for more formal and detailed car share data support in MDS, and know that some organizations are making MDS work with car share now. Be on the lookout for an announcement of how we are going to convene orgs like yours to discuss this with others who want or are implementing a version of car sharing data. The WGSC will look and see if this could be put on the WG call agenda soon. |
First, I'd like to chime in to say that the Portland Bureau of Transportation fully supports this proposal and hopes the OMF/MDS community can quickly initiate the work to support these carshare specific use cases. Additionally, I wanted to add another piece of other vehicle data that would be useful is telematics information that could help determine which side of the street a vehicle is parked on. For example, if the vehicle was last headed southbound on a street in the U.S. and then it parked, then the vehicle is likely parked on the west side of the street. This information would be useful for monitoring compliance with policy rules around parking. |
I want to call out that this issue has a relationship to #642. Currently, MDS requires the trips endpoint to return all trips that intersect with the service area, and the entire route including portions outside the service area. This might not be appropriate for car share. It would mean, for example, that a City receives the entire route of my weekend getaway trip that I started via carshare in the city. |
Re: Vehicle Idle Time Just adding a quick thought, one state that appears in the prototype Taxi implementation of MDS that I've been working on recently (check out the draft spec here if you're interested) is the -- EDIT because I didn't think this warranted another comment -- |
Note that in this GBFS PR there is a modification to vehicle_types.json's
We should consider align these to the existing ones in MDS as well, as part of the work on this feature. We currently have only (though these can be combined, unlike GBFS):
Additionally, there is a new
There is also a |
I love the idea of adopting some more I also wonder if instead of abstracting things to the level of Alignment with GBFS is certainly ideal, but this might be one of those places where it makes sense for MDS to contain some more detailed information, different use-cases! IMO, divergence is okay sometimes, and if we want to make that divergence sting a little bit less, we could explore having a formalized translation layer for MDS -> GBFS. |
Another issue we're running into with our carshare implementation is the fact that a user can take multiple "trips" (each with its own trip start, stop, and end) during a single "booking" event. For example, I can "reserve" and then "book" the carshare vehicle and start paying by the minute, hour, day, and within that period of time I can drive to the grocery store for one trip, then take another trip to Home Depot, then go to the garden supply center, and finally drive home, where I end my "booking" and pay. Within that single "booking" event, I could take four or five trips during a two hour period; within a "booking" event of three days, it could be many many more. I could be wrong, but right now in MDS it doesn't seem we have any capability to associate the "booking" (or "session") parent-event and related children "trip" events. This parent-child and temporal issue would also likely need to be addressed with private for-hire (taxis and TNCs) where the driver would take multiple "trips" during a "shift." |
@jacob-sherman Fantastic point to bring up! This maps pretty closely to a problem we've run into with Taxi work as well, and really comes down to a philosophical discussion around what a Trip really means. The way we consider a Trip for Taxi is that it's essentially a passenger reservation, and when the vehicle doesn't currently have a pending or active booking, but is still "on shift", it's considered See https://github.com/lacuna-tech/mobility-data-specification/blob/add-taxi-mode/general-information.md#taxi-vehicle-states--events for an idea of how we adjusted things with our Taxi work, if you're curious! I believe that with the awesome work that's being done with Delivery Bots, different portions of a package's journey are considered as separate Trips, and the encompassing Delivery is denoted by a persistent UUID for each package that's on the vehicle. I think that there's a bit of a tension around what the definition of a Trip should be due to the fact that the construct of a Trip has much more gravity in Provider than it does Agency (at least right now); for Provider, you don't have detailed route information outside of a Trip, while in Agency you certainly could. Additionally, there's the real-time-ness of how that Trip information is conveyed: for near real-time transfer of the Trip information in Provider, it could be seen as preferable to break things up into smaller Trips, because that means that those individual segments will be available in the For example, if hypothetically I said that the complete journey for a given package on a delivery bot starts at 15:30, and ends at 17:10 and I'm counting it as one Trip, as a Provider API consumer I really wouldn't see any detailed information for that Trip until sometime after 17:10. However, if I segmented that package's journey into different Trips (picking up the package, driving it to the destination), then theoretically I could start seeing some of that information sooner for the first Trip. At the end of the day, I think we probably need to discuss what a Trip really is in a WG call. In my mind, it's really a chunk of time that some party is paying for and the vehicle is 'in use' by them (I personally consider a carshare vehicle which the customer is not driving to technically be in use by them still, ergo still on a Trip). I think that our existing API limitations (namely, that for a Trip only minimal information is available until the Trip is completed) trend thinking towards segmenting Trips into the smallest chunks possible; but, I am a little concerned that we may get into hierarchical plinko with that. First it's I'd like to play out the thought experiment of having a Trip be "a chunk of time the user is paying for" or "a booking" or "a delivery" (all the same, in essence), and think about ways we could extend our existing APIs to more proactively communicate information about ongoing Trips and their segments prior to them being completed. |
In discussion of #643, it came up that it would be useful to carshare to be able to better understand fuel consumption of different trips, particularly in mixed-fleet (ICE / electric) environments. In particular
|
Just wanted to note that vehicle heading information is being addressed by #653. |
We've opened up some specific discussion topics here:
|
Some traction on vehicle properties around carshare at these issues/PRs in GBFS: |
Noting that GBFS work is now approved in latest version. Here are propulsion_types: https://github.com/NABSA/gbfs/blob/master/gbfs.md#vehicle_typesjson Vehicle_types updated too now form_factor. https://github.com/NABSA/gbfs/blob/master/gbfs.md#vehicle_typesjson Lots of optional vehicle properties possible now too. Car_types still in draft. |
We are working hard to add Careshare as a new mode in MDS 2.0, with a big focus on this in September's Modes Month. There is a Task Force with a mailing list where we are working on adding what's needed to MDS for carshare. If you are an OMF member, there is also a Carshare Member Network you can join. On September 29 we will doing a deep dive in our public meeting about Carshare, so please attend. In the meantime leave your use cases and ideas here as a comment! Here is who we know of operating careshare now, and some are using a form of MDS for this. If you have other add them in the comments. If you are part of these orgs, please leave comments about what data you use or share
|
Clarifying a few items above:
Carsharing is where MDS and CDS begin to converge — at least the way Populus treats the data and the key use cases of the cities we work with. Most original city carsharing permits required that operators pay for the on-street parking that they utilize based on existing parking policies. For Populus and the cities we validate on-street parking for, this has been a great testing ground for GPS-based parking payment (that can then pave the way for digital curb management). |
SFMTA's On-Street Car Share Program dedicates curb spaces for car share vehicles. These are for the round-trip car share model where the vehicle is picked up and dropped off at the same parking space. Since carsharing helps reduce household vehicle ownership and the car sharing companies can’t find off-street spaces to use across the city, dedicating on-street spaces helps support the use of carsharing in SF. We require a monthly aggregated report that provides the following metrics by each on-street space:
Another flavor of this is our Shared Electric Moped Parking Permit Program. We are meeting many of this programs needs through MDS already, including the Vehicles, Status Changes and Trips endpoints. We also receive a monthly report with:
It seems like we could beef up the reports endpoint to meet the aggregate monthly reports. Note that both of these programs are parking permit programs. While we're interested in trips in the aggregate to know about curb use and general utilization of the services, we're not interested in the routing of each trip and have disallowed trip routing in our permit language and Requirements file. |
This is a good scenario of how CDS 1.0 could collect some of this data now in SFTMA @alexdemisch. Since there are on-street ROW parking spaces for the carshare, each of these spaced could be a CDS Curb Zone using the Curbs API. Then the company could send CDS Events API data when a car enters or leave one of the zones. This CDS data could be a subset of the report data a city needs, and MDS 2.0 could make up the rest (distance, duration, reservations). |
New here so not sure I'm doing this right but want to be clear that here in Seattle we have GIG car share but we directly ingest it into our own data warehouse, not with Populus. Also no more LimePods. Also - one thing I don't think I'm seeing is that we do have another type of car share - Zipcar - where they reserve a specific parking space. Currently we don't track anything about these trips and don't get any data from them. Maybe an application of CDS.
|
Thank you @beckyedmonds so much for your reply, you are doing everything right! For GIG into your data warehouse, could you provide in a comment (or edit your first comment) the data fields you get, and some of your use cases for that if have that available? Your Zipcar scenario sounds like SFMTA's example above. You could use CDS to define the designed parking spaces as curb zones, then have Zipcar send 'event' data when a vehicle is using one of the spaces. That way you'd at least know where and when things are happening, and maybe some info about the vehicle. Let us know if you'd like to explore that further. You could also ask for MDS 2.0 with carshare from Zipcar, and ask for some specific fields or attributes that you may need for regulation or policy. |
|
@schnuerle Regarding seasonal/removable equipment, as mentioned in today's working group call, I am aware that ride share vehicles can have:
And conceivably could have:
Or other items I haven't thought of. |
Hi @PeterSP I've added these options in the car share feature branch draft. https://github.com/openmobilityfoundation/mobility-data-specification/blob/feature-car-share/modes/car-share.md#vehicle-attributes |
Hi @RyanMcCann-DOTI for your use case list in Denver DOTI, MDS should be able to support:
And MDS should help with:
For these use cases, MDS may be able to wholly or partially help, but you may also need additional information from operators and customers:
Since the survey is mostly qualitative, only a fraction of the data will be available in MDS. You will still need to survey your residents to get answers to most of your survey questions. |
@alexdemisch Permit ID will be covered with MDS by permit_licence_number in trip attributes. Some of the other fields too like year, month, date/time info. The details about the on-street space may not be directly known, but could be calculated if only one operator fleet is allowed to use it. MDS data would tell you when a vehicle was in the spot based on GPS, and by inference when no vehicle was there, allowing you to calculate the rest. This could be a chance to add a
These items in the monthly report could all be calculated using MDS data. So I'm not sure you would need these in the monthly Provider Reports too?
You can certainly disallow trip routes as part of MDS Requirements. |
I'm going to work on incorporating more feedback from our car share working group meeting next.
|
Based on our public working group meetings during Modes Month, and the feedback from the working group on GitHub, we now have a draft of the Car Share mode in MDS for you to review and provide feedback on.
We will likely be talking about this and other modes at our working group meeting on November 10. |
This sounds great! Using CDS for this makes sense since curb use is ultimately what we're interested in, not the trip.
True, although I don't know how we'd get unique users. The daily person movement metric may be a moped-specific item since our operator Revel can tell us if there is a second person on the trip since they need to register separately. |
Thank you all for your work on this new mode for MDS 2.0! Most updates happened in #797. |
@schnuerle - Would like to reopen this issue to address your previous post about adding car types:
Use cases: |
Hi @bergenklem Could you put your most recent comment into a new issue? I'm not going to reopen this one as it was a general issue about how to support car share in MDS, which we've now done with 2.0. The addition of car type distinctions is a great idea, just needs a new issue for good discussion! Note that we do have new fields now for vehicle |
Is your feature request related to a problem? Please describe.
Background:
Ride Report is working with a variety of carshare operators on MDS and is looking to develop the spec to support carshare specific use cases we have identified.
Use Cases:
unavailable
vehicle state, however with carshare a user can rent a vehicle for up to a week at a time and there is no state representing a reserved vehicle that is parked.Describe the solution you'd like
TBD, We are working on a more formal technical proposal.
Is this a breaking change
Impacted Spec
For which spec is this feature being requested?
provider
policy
Additional Information
List of some agencies and orgs that are known to have carshare. If you have other add them in the comments. If you are part of these orgs, please leave comments about what data you use or share
The text was updated successfully, but these errors were encountered: