Public transport fare

From OpenStreetMap Wiki
Jump to navigation Jump to search

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.