Public transport fare

From OpenStreetMap Wiki
Jump to navigation Jump to search

This article or section may contain out-of-date information: Public Transport routes are most commonly mapped with the standard fee=* and charge=* keys
If you know about the current state of affairs, please help keep everyone informed by updating this information. (Discussion)

Fare information is necessary to let PT routers inform users of the cost of a trip. This page is for ideas on how this might be added to OSM. Please discuss and help improve it.

Network-wide changes

At it simplest, a fare=* key could be added to PT route master relations. However, this might be difficult to maintain. It would be nicer to have a network-wide default which can be overridden by individual routes.

This could be accomplished by using network relations. This is not a new idea, and was earlier mentioned here

Route masters which have a fare key would override the network-relation specified default; this would elegantly handle cases like the Delhi Metro Airport Express Line, express bus routes, and routes like DTC's bus #37, which have to pay a toll and thus have slightly different fares from normal buses.

Describing fares

An opening hours-like syntax could be used for a fare=* key.

Example 1 - flat fare

Some share auto (share taxi) routes in Delhi have a flat fare - you pay that amount no matter the distance or number of stops you travel.

fare:currency=INR
fare=10

This means that you pay ₹10 for traveling.

Example 2 - fare based on distances

A basic example, suitable for DTC buses in Delhi -

fare:currency=INR
fare="3 5; 7 10; 15"

The first digits in the first two semicolon-separated clauses represent distances in kilometers. This value means that for a distance of 0-3 and 4-7 kilometers, the cost is ₹5 and ₹10 respectively.

The last clause functions as a fallback, and doesn't have a distance value - in this case, it means that for distances of 8 kilometers or more, the cost is ₹15.

Example 3 - fare based on number of stops

The Delhi Metro calculates the fare based upon the number of stops traversed. This can be specified by simply adding 'stops' as a unit -

fare:currency=INR
fare="3 stops 5; 7 stops 10; 15"

Now, the fare for 1-3 stops * and 4-7 stops is ₹5 and ₹10 respectively. For rides of 8 stops or more, the fare is ₹15.

Different fares for AC/non-AC services

For instance, DTC buses have separate fare slabs for AC (air conditioned) and non-AC buses. In such cases, fare=* would mean regular, non-AC services. fare:ac=* could be used for AC services.

An example approximating DTC's AC buses -

fare:currency=INR
fare:ac="3 10; 7 15; 10 20; 25"

(Note that this example has four slabs/clauses. There can be as many of them as required.)

Usually, both AC and non-AC buses can ply on the same route. Sometimes, only AC buses ply on a route, or as is the case with the Delhi Metro, there is no non-AC service. In such cases, fare=* can be omitted and fare:ac=* could be used to indicate this.