Skip to content
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

Reservation Price #457

Merged

Conversation

mplsmitch
Copy link
Collaborator

What problem does your proposal solve? Please begin with the relevant issue number. If there is no existing issue, please also describe alternative solutions you have considered.

There are a number of providers that charge a fee to reserve vehicles in advance of initiating a rental. The current specification does support this component of rental pricing. These fees are either charged as a flat rate per reservation, or on a per minute basis for the duration of the reservation until the rental is initiated by unlocking the vehicle. Examples and further discussion of this topic can be found in issue #401 .

What is the proposal?

This PR adds two OPTIONAL fields, one which describes reservation price as a flat rate, and one that describes the rate on a per minute basis. These fields are to be used in conjunction with vehicle_types.json#default_reserve_time to describe the cost of reservation. They are exclusive of each other and are not to be combined within a single pricing plan.

Is this a breaking change?

  • Yes
  • No
  • Unsure

Which files are affected by this change?

gbfs.md: system_pricing_plans.json

Adds fields to system_pricing_plans.json to describe cost of reserving a vehicle, charged either as a flat rate or per minute of reserve time.
@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@josee-sabourin josee-sabourin mentioned this pull request Oct 17, 2022
3 tasks
@mplsmitch mplsmitch mentioned this pull request Oct 28, 2022
3 tasks
@josee-sabourin
Copy link
Contributor

I hereby call a vote on this proposal. Voting will be open for 10 full calendar days until 11:59PM UTC on Friday, January 20th.

Please vote for or against the proposal, and include the organization for which you are voting in your comment.

Please note if you can commit to implementing the proposal.

@josee-sabourin josee-sabourin added Vote open v3.0-RC Candidate change for GBFS 3.0 (Major release) labels Jan 10, 2023
@testower
Copy link
Contributor

+1 from Entur

gbfs.md Outdated
@@ -963,6 +963,8 @@ Field Name | REQUIRED | Type | Defines
\- `name` | Yes | String | Name of this pricing plan.
\-&nbsp;`currency` | Yes | String | Currency used to pay the fare. <br /><br /> This pricing is in ISO 4217 code: http://en.wikipedia.org/wiki/ISO_4217 <br />(for example, `CAD` for Canadian dollars, `EUR` for euros, or `JPY` for Japanese yen.)
\-&nbsp;`price` | Yes | Non-Negative Float | Fare price, in the unit specified by `currency`. <br/>*(added in v2.2)* In case of non-rate price, this field is the total price. In case of rate price, this field is the base price that is charged only once per trip (typically the price for unlocking) in addition to `per_km_pricing` and/or `per_min_pricing`.
\-&nbsp;`reservation_price_per_min` | OPTIONAL | Non-Negative Float | The cost, described as per minute rate, to reserve the vehicle prior to beginning a rental. This amount is charged for each minute of the vehicle reservation until the rental is initiated, or until the number of minutes defined in `vehicle_types.json#default_reserve_time` elapses, whichever comes first. When using this field, you MUST declare a value in `vehicle_types.json#default_reserve_time`. This field MUST NOT be combined in a single pricing plan with `reservation_price_flat_rate`.
\-&nbsp;`reservation_price_flat_rate` | OPTIONAL | Non-Negative Float | The cost, described as a flat rate, to reserve the vehicle prior to beginning a rental. This amount is charged once to reserve the vehicle for the duration of the time defined by `vehicle_types.json#default_reserve_time`. When using this field, you MUST declare a value in `vehicle_types.json#default_reserve_time`.This field MUST NOT be combined in a single pricing plan with `reservation_price_per_min`.
Copy link
Contributor

Choose a reason for hiding this comment

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

Should default_reserve_time be changed to "Conditionally REQUIRED` to go along with this change?

Also nit: space after period for ".This field MUST NOT..."

Copy link
Contributor

Choose a reason for hiding this comment

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

Good catch - I would agree. @mplsmitch, thoughts?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

agree- I'll update the PR

josee-sabourin pushed a commit that referenced this pull request Jan 17, 2023
Change child fields of optional parent from Conditionally Required to Required.  Change incorrect string to boolean.
Needed for PR #457
Changes `default_reserve_time` to Conditionally REQUIRED when reservation price fields are used
@josee-sabourin
Copy link
Contributor

Voting on this PR closes in 2 calendar days. Please vote for or against the proposal, and include the organization for which you are voting in your comment. Please note if you can commit to implementing the proposal.

@rootsixtysix
Copy link

+1 from nextbike by TIER

@josee-sabourin josee-sabourin mentioned this pull request Jan 19, 2023
3 tasks
@@ -963,6 +963,8 @@ Field Name | REQUIRED | Type | Defines
\-&nbsp;`name` | Yes | String | Name of this pricing plan.
\-&nbsp;`currency` | Yes | String | Currency used to pay the fare. <br /><br /> This pricing is in ISO 4217 code: http://en.wikipedia.org/wiki/ISO_4217 <br />(for example, `CAD` for Canadian dollars, `EUR` for euros, or `JPY` for Japanese yen.)
\-&nbsp;`price` | Yes | Non-Negative Float | Fare price, in the unit specified by `currency`. <br/>*(added in v2.2)* In case of non-rate price, this field is the total price. In case of rate price, this field is the base price that is charged only once per trip (typically the price for unlocking) in addition to `per_km_pricing` and/or `per_min_pricing`.
\-&nbsp;`reservation_price_per_min` | OPTIONAL | Non-Negative Float | The cost, described as per minute rate, to reserve the vehicle prior to beginning a rental. This amount is charged for each minute of the vehicle reservation until the rental is initiated, or until the number of minutes defined in `vehicle_types.json#default_reserve_time` elapses, whichever comes first. When using this field, you MUST declare a value in `vehicle_types.json#default_reserve_time`. This field MUST NOT be combined in a single pricing plan with `reservation_price_flat_rate`.

Choose a reason for hiding this comment

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

Curious to hear your thoughts on not doing something similar to per_min_pricing which provides flexibility to do tiered pricing.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I'm not sure I understand your question. These fields set a fee to reserve a vehicle prior to beginning a trip. They can be used with either per_min_pricing or per_km_pricing. Regardless of which type of pricing you're using you can set your reservation fee as a flat rate, or charge per minute.

@benwedge
Copy link

+1 from Joyride

@fbouchPBSC
Copy link
Contributor

+1 from PBSC

@rickbruce
Copy link

+1 from Ito

@ezmckinn
Copy link
Contributor

+1 from Superpedestrian. Seems like a wise extension of the spec.

@schnuerle
Copy link
Contributor

+1 from OMF staff

@josee-sabourin
Copy link
Contributor

This vote has now closed, and it passes!

Votes in favor:
Entur (consumer)
Nextbike (producer)
Joyride (producer)
PBSC (producer)
Ito World (producer)
Superpedestrian (producer)
OMF (3rd party)

There were no votes against.
Thank you to everyone who took the time to review and to vote on this! We incorporate it into 3.0-RC, which should be ready to go in the coming week.

josee-sabourin pushed a commit that referenced this pull request Jan 23, 2023
* Objects to arrays

Changes objects vehicle_type_dock_capacity and vehicle_type_area_capacity to arrays.

* formatting fixes

formatting fixes to JSON examples

* Change child field requirements, remove string (#475)

Change child fields of optional parent from Conditionally Required to Required.  Change incorrect string to boolean.
Needed for PR #457

* Fix typo in vehicle_type_dock_capacity (#478)

* Change child field requirements, remove string

Change child fields of optional parent from Conditionally Required to Required.  Change incorrect string to boolean.

* fix typo in vehicle_type_dock_capacity

Co-authored-by: Mitch Vars <mitch@mobilitydata.org>
@josee-sabourin josee-sabourin merged commit 3e208b0 into MobilityData:master Jan 23, 2023
josee-sabourin added a commit that referenced this pull request Jan 23, 2023
Adds in-line annotations to changes made in v3.0-RC (#460, #454, #457, #462, #470)
Removes "RC" from annotations in v2.3-RC and RC2
josee-sabourin added a commit that referenced this pull request Jan 23, 2023
* Add versions to new and updated fields

Adds in-line annotations to changes made in v3.0-RC (#460, #454, #457, #462, #470)
Removes "RC" from annotations in v2.3-RC and RC2
Editorial changes
@richfab
Copy link
Contributor

richfab commented Jan 25, 2024

In the absence of producers to implement this change, it will be postponed to v3.1-RC.

Please add in a comment if you are a producer planning to implement this change in the next few weeks.

Thank you!

@richfab
Copy link
Contributor

richfab commented Apr 9, 2024

This change is delayed to the next version to allow v3.0 to become the official version.

Indeed, despite the high engagement on the vote, no producer or consumer has come forward as a First Adopter for this change since its release in March 2023.

This useful change can always be added to the spec later.

Thank you all for your continued involvement in the GBFS spec. 🙏

@richfab richfab added v3.1-RC and removed v3.0-RC Candidate change for GBFS 3.0 (Major release) labels Apr 9, 2024
richfab added a commit that referenced this pull request Apr 10, 2024
richfab added a commit that referenced this pull request Apr 11, 2024
* Withdraw PR #546 Floating Interval in price

* Withdraw PR #457 Reservation Price

* Remove -RC and -RC2 from the spec

* Update current version number in spec

* Fix earlier version URLs

* Update current version in README to v3.0

* Set version history URL to Release Notes
richfab added a commit to futuretap/gbfs that referenced this pull request May 17, 2024
commit e0c48b2
Author: Fabien Richard-Allouard <fabien@mobilitydata.org>
Date:   Mon Apr 29 11:13:47 2024 +0200

    Clarify vehicle_id persistence rule (MobilityData#632)

    This PR:
    - Makes the rule about vehicle_id persistence more explicit: rotation is between rentals (not every time the feed is loaded)
    - Updates a forgotten reference to free_bike_status.json (now vehicle_status.json)

    Thanks @testower for flagging!

commit 73d135d
Author: Fabien Richard-Allouard <fabien@mobilitydata.org>
Date:   Tue Apr 16 15:22:18 2024 +0200

    Set the migration guide as the v3.0 Release Notes (MobilityData#628)

    This PR sets the migration guide article as the v3.0 Release Notes: https://mobilitydata.org/how-to-upgrade-to-gbfs-v3-0/

commit 457cb71
Author: Fabien Richard-Allouard <fabien@mobilitydata.org>
Date:   Thu Apr 11 14:19:32 2024 +0200

    Update current version to v3.0 (MobilityData#625)

    * Withdraw PR MobilityData#546 Floating Interval in price

    * Withdraw PR MobilityData#457 Reservation Price

    * Remove -RC and -RC2 from the spec

    * Update current version number in spec

    * Fix earlier version URLs

    * Update current version in README to v3.0

    * Set version history URL to Release Notes

commit f4dc269
Author: Mitch Vars <mplsmitch@gmail.com>
Date:   Thu Apr 11 01:10:58 2024 -0500

    Correction systems.csv (MobilityData#623)

    Fix missing csv comma

commit 940cd63
Author: Mitch Vars <mplsmitch@gmail.com>
Date:   Tue Apr 9 11:11:26 2024 -0500

    Update systems.csv to remove dead feeds (MobilityData#622)

    * Update systems.csv

    Remove obsolete feeds

    * Update systems.csv

    * Add 4 feeds that now return status code 200

    ---------

    Co-authored-by: Fabien Richard-Allouard <fabien@mobilitydata.org>

commit a77c5c2
Author: Fabien Richard-Allouard <fabien@mobilitydata.org>
Date:   Tue Apr 9 15:40:21 2024 +0200

    Mark system_hours and system_calendar as removed (MobilityData#621)

    ## Problem
    The files system_hours.json and system_calendar.json were removed in MobilityData#328. However, the spec says these files were “deprecated”, which usually means permitted, but discouraged.

    ## Solution
    Replace "deprecated” with "removed" for the files system_hours.json and system_calendar.json in the spec.

commit 45e944a
Author: indigotachizawa <tachizawa@indigo.co.jp>
Date:   Mon Apr 8 21:01:42 2024 +0900

    add new service 'kotobike' (MobilityData#620)

commit 2f5aaad
Author: Fabien Richard-Allouard <fabien@mobilitydata.org>
Date:   Wed Mar 20 17:07:56 2024 +0100

    Authentication information for Voi Brussels (MobilityData#613)

    This PR adds authentication information for Voi Brussels.

    > Access and usage of Voi’s GBFS data is subject to the following licensing terms: https://www.voi.com/voi-licencing-agreement.

    More info on the Belgium NAP: https://www.transportdata.be/dataset/voi

commit a72d597
Author: Mitch Vars <mplsmitch@gmail.com>
Date:   Wed Mar 13 12:03:36 2024 -0500

    Update Nextbike URLs (MobilityData#610)

    * Update Nextbike URLs

    * Update 4 additional Nextbike URLs

    ---------

    Co-authored-by: Fabien Richard-Allouard <fabien@mobilitydata.org>

commit 4b4d3f7
Author: Fabien Richard-Allouard <fabien@mobilitydata.org>
Date:   Wed Mar 13 14:31:38 2024 +0100

    Fix FAQ URL in issue template (MobilityData#609)

    This PR fixes the FAQ URL in the issue template.

    Before | After
    -- | --
    https://gbfs.mobilitydata.org/faq | https://gbfs.org/learn/faq/

commit b286e95
Author: Fabien Richard-Allouard <fabien@mobilitydata.org>
Date:   Fri Mar 1 17:06:20 2024 +0100

    Update roadmap URL in README (MobilityData#605)

    This PR updates the roadmap URL in the README:

    - Before: Github wiki
    - After: https://portal.productboard.com/26qpteg4wct9px3jts94uqv8/tabs/99-planned

commit bea68ce
Author: Fabien Richard-Allouard <fabien@mobilitydata.org>
Date:   Tue Feb 27 16:03:23 2024 +0100

    Delete obselete feed Donkey Republic Barcelona (MobilityData#599)

commit b9d8390
Author: Fabien Richard-Allouard <fabien@mobilitydata.org>
Date:   Wed Feb 14 12:54:14 2024 +0100

    Fix geofencing examples (MobilityData#595)

    * Remove overlapping polygon from example

    * Change rule to override global rules in example

commit 6a9150c
Author: Fabien Richard-Allouard <fabien@mobilitydata.org>
Date:   Mon Jan 29 14:16:55 2024 +0100

    Fix markdown formatting (MobilityData#596)

    This PR fixes the markdown formatting when governance.md is imported on https://gbfs.org/specification/process/

commit a3d68f6
Author: Fabien Richard-Allouard <fabien@mobilitydata.org>
Date:   Thu Jan 25 17:08:37 2024 +0100

    Syncs systems.csv with transport.data.gouv (MobilityData#593)

    * Syncs systems.csv with transport.data.gouv

    * Move public keys to Authentication Info column

    * Update Authentication Info description in README

    * Rephrase Authentication Info description in README

commit 0775ee4
Author: Fabien Richard-Allouard <fabien@mobilitydata.org>
Date:   Tue Jan 23 17:39:47 2024 +0100

    Label global_rules field as added in v3.0-RC (MobilityData#594)

    This editorial change adds a missing label under the field `global_rules` to explain that the field was added in v3.0-RC.

commit e9fc5aa
Author: Ortwin Gentz, FutureTap <futuretap@users.noreply.github.com>
Date:   Mon Jan 22 15:39:26 2024 +0100

    gbfs.md: Fix language about iOS links (MobilityData#585)

commit 411b4f4
Author: Fabien Richard-Allouard <fabien@mobilitydata.org>
Date:   Mon Jan 15 15:44:59 2024 +0100

    README.md: Add link to v2.3 Release Notes (MobilityData#592)

    This PR adds the link to the [v2.3 Release Notes](https://github.com/MobilityData/gbfs/releases/tag/v2.3) in the Current Version table of the [README.md](https://github.com/MobilityData/gbfs/blob/master/README.md).

commit 32ccae4
Author: Fabien Richard-Allouard <fabien@mobilitydata.org>
Date:   Mon Jan 15 15:00:59 2024 +0100

    GBFS Governance Revisions (MobilityData#579)

    * Add release cycles to the governance

    * Link README to governance.md for Release Cycles

    * Simplify MINOR version release line

    * Update stale bot

    * Typo

commit 4e9c72f
Author: Merja Kajava <50193837+merjakaj@users.noreply.github.com>
Date:   Thu Jan 11 17:49:29 2024 +0200

    Updated location names in systems.csv (MobilityData#590)

commit 43b9be7
Author: Fabien Richard-Allouard <fabien@mobilitydata.org>
Date:   Thu Jan 11 14:39:23 2024 +0100

    Add country name when location is empty (MobilityData#589)

commit 3806cdc
Author: Merja Kajava <50193837+merjakaj@users.noreply.github.com>
Date:   Thu Jan 11 12:37:46 2024 +0200

    Removed nextbike_fo from systems.csv (MobilityData#588)

commit f6a9c56
Author: Fabien Richard-Allouard <fabien@mobilitydata.org>
Date:   Wed Jan 10 16:54:59 2024 +0100

    Location formatting recommendation in systems.csv (MobilityData#587)

    * Location formatting recommendation in systems.csv

    This PR adds a recommendation in README.md about the formatting of the system location in systems.csv.

    * Remove country code from formatting recommendation

    * Remove country code from Location column

commit a36a103
Author: Fabien Richard-Allouard <fabien@mobilitydata.org>
Date:   Wed Jan 10 14:52:57 2024 +0100

    Update VéloZef (Brest, FR) system_id (MobilityData#586)

    This PR updates the system_id of VéloZef (Brest, FR) to match the system_id from the [feed](https://api.prod.partners-fs37hd8.zoov.eu/gbfs/2.2/brest/en/system_information.json?&key=OGNhZDNjMDQtYTA0Yi00NzU2LWE0MTItOGJlYzE1Y2E4NGEx): `velozef`.

    Thanks to @XioNoX for noticing ❤️
richfab added a commit that referenced this pull request May 22, 2024
* manifest.json: include area, country_code #572
* Reservation Price #457
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet