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

Pricing Plans: replaces integer with float in interval #546

Merged
merged 2 commits into from
Nov 2, 2023

Conversation

cmonagle
Copy link
Contributor

@cmonagle cmonagle commented Sep 27, 2023

Note: If your PR is to add, remove, or correct a system in systems.csv, please delete this template.

If you are new to the specification, please introduce yourself (name and organization/link to GBFS). It’s helpful to know who we're chatting with!

I'm Cameron with Transit app. We consume (a lot!) of GBFS.

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.

Currently, the intervals in pricing_plans don't allow floats. This means it is impossible to represent a system that, for example, bills a fixed amount for each mile (1.7km) travelled, but does not prorate by kilometre.

For example:

  • The vehicle costs $2 per mile. The rider travels 10.75 miles.
  • Currently, the producer would define a $1.24274238 "rate" with an interval of 1.
  • Since the rider traveled 17.300448 km, the price would be calculated as $21.13. (17 kilometer-long intervals * $1.24274238)
  • In reality, the price would be $20 even.

Another example would be pricing plans that prorate per meter or 100 meter, not by full km.

What is the proposal?

For per minute and per km pricing plans, the interval should allow float values.

Is this a breaking change?

  • Yes
  • No
  • Unsure

Which files are affected by this change?

@richfab richfab added gbfs.md proposal:nonbreaking v3.0-RC2 Candidate change for GBFS 3.0 (Major release) - 2nd pass labels Sep 27, 2023
@cmonagle cmonagle marked this pull request as ready for review September 27, 2023 20:14
@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, October 27th.
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.

@futuretap
Copy link
Contributor

+1 from FutureTap / Where To? – btw, I don’t think this is a breaking change. In JSON, every int can be parsed as a float.

@richfab
Copy link
Contributor

richfab commented Oct 19, 2023

Thank you Ortwin (@futuretap) for this comment.
Question: Isn't it a breaking change given that consumers of v2.3 feeds and below expected integers, but would now start receiving floats instead?

@futuretap
Copy link
Contributor

@richfab you’re right, it’s breaking for consumers, non-breaking for producers.

@cmonagle
Copy link
Contributor Author

I forget if the advocate is expected to vote or not, but if so: Transit +1

@richfab
Copy link
Contributor

richfab commented Oct 19, 2023

Thank you @cmonagle. Anyone can vote.

UPDATE:
According to the governance, the vote from Transit would not count in this quorum as Transit is the Advocate.

A vote passes if there is unanimous consensus with at least 3 votes in favor.

  • At least one of these votes MUST be from a producer and at least one MUST be from a consumer.
  • The producer and consumer votes MUST come from stakeholders other than The Advocate.
  • MobilityData serves as facilitator but does not vote on proposed changes.

Sorry about the confusion.

@PierrickP
Copy link

fluctuo: +1


+1 because it's kind of blocking for you if you want to display on miles instead of km 😸
If we want to go really further, we could keep the Integer but instead of the value in the currency, pass the value as "cents".
In many programming languages, handling floats can lead to rounding errors (0.2+0.1 = 0.30000000000000004 in js https://0.30000000000000004.com/).

Some sources:

@testower
Copy link
Contributor

+1 from Entur,

As for quorum, given that there are at least 1 vote each from a producer and a consumer, the third vote can come from the Advocate

@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.

@ezmckinn
Copy link
Contributor

+1, Superpedestrian supports this. We use time-based pricing, so this specific use case doesn't apply to us right now, and we therefore are unlikely to implement it. But it's a fine change to the standard to support different implementations.

@josee-sabourin
Copy link
Contributor

This vote has now closed, and it passes!

Votes in favor:
Whereto.app (consumer)
fluctuo (consumer)
Entur (consumer)
Superpedestrian (producer)

There were no votes against.

This change will be added to v3.0-RC2, which will be released in the coming weeks.

Copy link
Contributor

@richfab richfab left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Contributor

@richfab richfab left a comment

Choose a reason for hiding this comment

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

As of v3.0-RC2

gbfs.md Outdated Show resolved Hide resolved
gbfs.md Outdated Show resolved Hide resolved
@richfab richfab merged commit 2400629 into MobilityData:master Nov 2, 2023
1 check passed
@richfab
Copy link
Contributor

richfab commented Apr 9, 2024

Hi @cmonagle,
We have not found a producer interested in publishing a pricing plan in miles at the moment. If you don't mind, this change will be delayed to the next version to allow v3.0 to become the official version.
Thank you for your continued involvement in the GBFS spec. 🙏
Fabien

@richfab richfab removed the v3.0-RC2 Candidate change for GBFS 3.0 (Major release) - 2nd pass label 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 ❤️
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.

7 participants