Skip to content

Definition Improvement of Trip Durations#48

Closed
timMillet wants to merge 1 commit intomasterfrom
timMillet-MeanTripDuration-SafeTripDuration
Closed

Definition Improvement of Trip Durations#48
timMillet wants to merge 1 commit intomasterfrom
timMillet-MeanTripDuration-SafeTripDuration

Conversation

@timMillet
Copy link
Contributor

@timMillet timMillet commented Jun 17, 2021

- Better definition of the "mean" and "safe" concepts
- Replace "travel" durations (rider-oriented) by "trip" durations (vehicle-oriented)
- Define when the trip durations start and end
- Consistency and complementarity with wait time definitions in [Internal] GOFS phase 1: Service Discoverability (Draft) (URL:https://docs.google.com/document/d/1f_QBieLKAhX_xBGPNKPc82KvxlwLTHvunKFp41-_aYA/edit#heading=h.o5w29bphr5n8)
@timMillet timMillet requested a review from sccmcca June 17, 2021 19:54
@westontrillium
Copy link
Contributor

I think I agree these are necessary changes if we are explicitly defining wait times apart from vehicle travel time ("trip time") with GOFS. I'd be interested to hear others' thoughts. @tsherlockcraig?

A small typo in the changes: “Mean” represents the average time the rider travels in the vehicle...

@tsherlockcraig
Copy link
Contributor

Yep. lgtm (other than the small typo @westontrillium noted)

| `drop_off_type` | Enum | **Conditionally Forbidden** | Indicates drop off method. Valid options are:<br><br> `0` or empty - Regularly scheduled drop off.<br> `1` - No drop off available.<br> `2` - Must phone agency to arrange drop off.<br> `3` - Must coordinate with driver to arrange drop off.<br><br> **Conditionally Forbidden**:<br> - `drop_off_type=0` **forbidden** for `stop_times.stop_id` referring to `location_groups.location_group_id` or `id` from `locations.geojson`.<br> - Optional otherwise.
| `mean_duration_factor`<br><br>and<br><br>`mean_duration_offset` | Float | **Conditionally Forbidden** | Together, `mean_duration_factor` and `mean_duration_offset` allow an estimation of the duration a rider’s trip will take, in minutes, using the on-demand service in a GeoJSON location or location group. <br><br> Data consumers are expected to use `mean_duration_factor` and `mean_duration_offset` to make the following calculation:<br><br>`MeanTravelDuration = mean_duration_factor × DrivingDuration + mean_duration_offset`<br><br>Where `DrivingDuration` is the time it would take in a car to travel the distance being calculated for the on-demand service, and `MeanTravelDuration` is the calculated average time one expects to travel the same trip using the on-demand service.<br><br>The `MeanTravelDuration` may be calculated for the time and the day of the trip to take into account traffic; in other words the consumer is expected to know that `DrivingDuration` is dynamic. Producers should thus provide values that reflect increases in `DrivingDuration` due to additional pickups and drop offs beyond that of the passenger. A downtown TNC will likely always have a `mean_duration_factor` of 1, with or without traffic, since it goes with the flow. But a shared service can have a factor of 2 or more if many additional pickups and drop offs are expected. `mean_duration_offset` can be utilized to increase travel times of shorter trips relatively more than times for longer trips.<br><br>While traveling through undefined space between GeoJSON locations or location groups, it is assumed that:<br><br>`MeanTravelDuration = DrivingDuration`<br><br>**Conditionally Forbidden**:<br>- **Forbidden** if `stop_times.stop_id` does not refer to a `location_groups.location_group_id` or an `id` from `locations.geojson`.<br>- Optional otherwise. |
| `safe_duration_factor`<br><br>and<br><br>`safe_duration_offset` | Float | **Conditionally Forbidden** | Together, `safe_duration_factor` and `safe_duration_offset` allow an estimation of the longest amount of time a rider can expect the on-demand service in a GeoJSON location or location group may require, in minutes, for 95% of trips. <br><br> Data consumers are expected to use `safe_duration_factor` and `safe_duration_offset` to make the following calculation:<br><br> `SafeTravelDuration = safe_duration_factor × DrivingDuration + safe_duration_offset`<br><br> Where `DrivingDuration` is the time it would take in a car to travel the distance being calculated for the on-demand service, and `SafeTravelDuration` is the longest amount of time a rider can expect the on-demand service in a GeoJSON location or location group may require.<br><br>**Conditionally Forbidden**:<br>- **Forbidden** if `stop_times.stop_id` does not refer to a `location_groups.location_group_id` or an `id` from `locations.geojson`.<br>- Optional otherwise. |
| `mean_duration_factor`<br><br>and<br><br>`mean_duration_offset` | Float | **Conditionally Forbidden** | Together, `mean_duration_factor` and `mean_duration_offset` allow an estimation of the mean trip duration, in minutes, of an on-demand service in a GeoJSON location or location group. “Mean” represents the average time the rider travel in the vehicle based on historical data. The trip duration starts at rider pickup, and ends at rider drop off. <br><br> Data consumers are expected to use `mean_duration_factor` and `mean_duration_offset` to make the following calculation:<br><br>`MeanTripDuration = mean_duration_factor × DrivingDuration + mean_duration_offset`<br><br>Where `DrivingDuration` is the time it would take in a car to travel the distance being calculated for the on-demand service, and `MeanTripDuration` is the calculated average time one expects to travel the same trip using the on-demand service.<br><br>The `MeanTripDuration` may be calculated for the time and the day of the trip to take into account traffic; in other words the consumer is expected to know that `DrivingDuration` is dynamic. Producers should thus provide values that reflect increases in `DrivingDuration` due to additional pickups and drop offs beyond that of the passenger. A downtown TNC will likely always have a `mean_duration_factor` of 1, with or without traffic, since it goes with the flow. But a shared service can have a factor of 2 or more if many additional pickups and drop offs are expected. `mean_duration_offset` can be utilized to increase the duration of shorter trips relatively more than times for longer trips.<br><br>While traveling through undefined space between GeoJSON locations or location groups, it is assumed that:<br><br>`MeanTripDuration = DrivingDuration`<br><br>**Conditionally Forbidden**:<br>- **Forbidden** if `stop_times.stop_id` does not refer to a `location_groups.location_group_id` or an `id` from `locations.geojson`.<br>- Optional otherwise. |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| `mean_duration_factor`<br><br>and<br><br>`mean_duration_offset` | Float | **Conditionally Forbidden** | Together, `mean_duration_factor` and `mean_duration_offset` allow an estimation of the mean trip duration, in minutes, of an on-demand service in a GeoJSON location or location group. “Mean” represents the average time the rider travel in the vehicle based on historical data. The trip duration starts at rider pickup, and ends at rider drop off. <br><br> Data consumers are expected to use `mean_duration_factor` and `mean_duration_offset` to make the following calculation:<br><br>`MeanTripDuration = mean_duration_factor × DrivingDuration + mean_duration_offset`<br><br>Where `DrivingDuration` is the time it would take in a car to travel the distance being calculated for the on-demand service, and `MeanTripDuration` is the calculated average time one expects to travel the same trip using the on-demand service.<br><br>The `MeanTripDuration` may be calculated for the time and the day of the trip to take into account traffic; in other words the consumer is expected to know that `DrivingDuration` is dynamic. Producers should thus provide values that reflect increases in `DrivingDuration` due to additional pickups and drop offs beyond that of the passenger. A downtown TNC will likely always have a `mean_duration_factor` of 1, with or without traffic, since it goes with the flow. But a shared service can have a factor of 2 or more if many additional pickups and drop offs are expected. `mean_duration_offset` can be utilized to increase the duration of shorter trips relatively more than times for longer trips.<br><br>While traveling through undefined space between GeoJSON locations or location groups, it is assumed that:<br><br>`MeanTripDuration = DrivingDuration`<br><br>**Conditionally Forbidden**:<br>- **Forbidden** if `stop_times.stop_id` does not refer to a `location_groups.location_group_id` or an `id` from `locations.geojson`.<br>- Optional otherwise. |
| `mean_duration_factor`<br><br>and<br><br>`mean_duration_offset` | Float | **Conditionally Forbidden** | Together, `mean_duration_factor` and `mean_duration_offset` allow an estimation of the mean trip duration, in minutes, of an on-demand service in a GeoJSON location or location group. The mean trip duration represents the average time the rider travel in the vehicle based on historical data. The trip duration starts at rider pickup, and ends at rider drop off. <br><br> Data consumers are expected to use `mean_duration_factor` and `mean_duration_offset` to make the following calculation:<br><br>`MeanTripDuration = mean_duration_factor × DrivingDuration + mean_duration_offset`<br><br>Where `DrivingDuration` is the time it would take in a car to travel the distance being calculated for the on-demand service, and `MeanTripDuration` is the calculated average time one expects to travel the same trip using the on-demand service.<br><br>The `MeanTripDuration` may be calculated for the time and the day of the trip to take into account traffic; in other words the consumer is expected to know that `DrivingDuration` is dynamic. Producers should thus provide values that reflect increases in `DrivingDuration` due to additional pickups and drop offs beyond that of the passenger. A downtown TNC will likely always have a `mean_duration_factor` of 1, with or without traffic, since it goes with the flow. But a shared service can have a factor of 2 or more if many additional pickups and drop offs are expected. `mean_duration_offset` can be utilized to increase the duration of shorter trips relatively more than times for longer trips.<br><br>While traveling through undefined space between GeoJSON locations or location groups, it is assumed that:<br><br>`MeanTripDuration = DrivingDuration`<br><br>**Conditionally Forbidden**:<br>- **Forbidden** if `stop_times.stop_id` does not refer to a `location_groups.location_group_id` or an `id` from `locations.geojson`.<br>- Optional otherwise. |

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion to swap "Mean" with "The mean trip duration" to be consistent and clear with styling for "safe trip duration" below.

Copy link

@sccmcca sccmcca left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One suggestion for wording. Otherwise, LGTM!

| `drop_off_type` | Enum | **Conditionally Forbidden** | Indicates drop off method. Valid options are:<br><br> `0` or empty - Regularly scheduled drop off.<br> `1` - No drop off available.<br> `2` - Must phone agency to arrange drop off.<br> `3` - Must coordinate with driver to arrange drop off.<br><br> **Conditionally Forbidden**:<br> - `drop_off_type=0` **forbidden** for `stop_times.stop_id` referring to `location_groups.location_group_id` or `id` from `locations.geojson`.<br> - Optional otherwise.
| `mean_duration_factor`<br><br>and<br><br>`mean_duration_offset` | Float | **Conditionally Forbidden** | Together, `mean_duration_factor` and `mean_duration_offset` allow an estimation of the duration a rider’s trip will take, in minutes, using the on-demand service in a GeoJSON location or location group. <br><br> Data consumers are expected to use `mean_duration_factor` and `mean_duration_offset` to make the following calculation:<br><br>`MeanTravelDuration = mean_duration_factor × DrivingDuration + mean_duration_offset`<br><br>Where `DrivingDuration` is the time it would take in a car to travel the distance being calculated for the on-demand service, and `MeanTravelDuration` is the calculated average time one expects to travel the same trip using the on-demand service.<br><br>The `MeanTravelDuration` may be calculated for the time and the day of the trip to take into account traffic; in other words the consumer is expected to know that `DrivingDuration` is dynamic. Producers should thus provide values that reflect increases in `DrivingDuration` due to additional pickups and drop offs beyond that of the passenger. A downtown TNC will likely always have a `mean_duration_factor` of 1, with or without traffic, since it goes with the flow. But a shared service can have a factor of 2 or more if many additional pickups and drop offs are expected. `mean_duration_offset` can be utilized to increase travel times of shorter trips relatively more than times for longer trips.<br><br>While traveling through undefined space between GeoJSON locations or location groups, it is assumed that:<br><br>`MeanTravelDuration = DrivingDuration`<br><br>**Conditionally Forbidden**:<br>- **Forbidden** if `stop_times.stop_id` does not refer to a `location_groups.location_group_id` or an `id` from `locations.geojson`.<br>- Optional otherwise. |
| `safe_duration_factor`<br><br>and<br><br>`safe_duration_offset` | Float | **Conditionally Forbidden** | Together, `safe_duration_factor` and `safe_duration_offset` allow an estimation of the longest amount of time a rider can expect the on-demand service in a GeoJSON location or location group may require, in minutes, for 95% of trips. <br><br> Data consumers are expected to use `safe_duration_factor` and `safe_duration_offset` to make the following calculation:<br><br> `SafeTravelDuration = safe_duration_factor × DrivingDuration + safe_duration_offset`<br><br> Where `DrivingDuration` is the time it would take in a car to travel the distance being calculated for the on-demand service, and `SafeTravelDuration` is the longest amount of time a rider can expect the on-demand service in a GeoJSON location or location group may require.<br><br>**Conditionally Forbidden**:<br>- **Forbidden** if `stop_times.stop_id` does not refer to a `location_groups.location_group_id` or an `id` from `locations.geojson`.<br>- Optional otherwise. |
| `mean_duration_factor`<br><br>and<br><br>`mean_duration_offset` | Float | **Conditionally Forbidden** | Together, `mean_duration_factor` and `mean_duration_offset` allow an estimation of the mean trip duration, in minutes, of an on-demand service in a GeoJSON location or location group. “Mean” represents the average time the rider travel in the vehicle based on historical data. The trip duration starts at rider pickup, and ends at rider drop off. <br><br> Data consumers are expected to use `mean_duration_factor` and `mean_duration_offset` to make the following calculation:<br><br>`MeanTripDuration = mean_duration_factor × DrivingDuration + mean_duration_offset`<br><br>Where `DrivingDuration` is the time it would take in a car to travel the distance being calculated for the on-demand service, and `MeanTripDuration` is the calculated average time one expects to travel the same trip using the on-demand service.<br><br>The `MeanTripDuration` may be calculated for the time and the day of the trip to take into account traffic; in other words the consumer is expected to know that `DrivingDuration` is dynamic. Producers should thus provide values that reflect increases in `DrivingDuration` due to additional pickups and drop offs beyond that of the passenger. A downtown TNC will likely always have a `mean_duration_factor` of 1, with or without traffic, since it goes with the flow. But a shared service can have a factor of 2 or more if many additional pickups and drop offs are expected. `mean_duration_offset` can be utilized to increase the duration of shorter trips relatively more than times for longer trips.<br><br>While traveling through undefined space between GeoJSON locations or location groups, it is assumed that:<br><br>`MeanTripDuration = DrivingDuration`<br><br>**Conditionally Forbidden**:<br>- **Forbidden** if `stop_times.stop_id` does not refer to a `location_groups.location_group_id` or an `id` from `locations.geojson`.<br>- Optional otherwise. |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion to swap "Mean" with "The mean trip duration" to be consistent and clear with styling for "safe trip duration" below.

@tzujenchanmbd
Copy link
Contributor

Closing this PR since there has been many changes (45 commits) on current flex proposal during the past 2 years. Please see the new PR#74 for these proposed changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants