News:

Simutrans Wiki Manual
The official on-line manual for Simutrans. Read and contribute.

Revenue penalty for crowded origin/transfer stations -- discussion wanted

Started by neroden, June 22, 2013, 08:17:27 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

neroden

As I am cleaning up the revenue code in order to fix mail revenue (and eliminate a bunch of lurking inconsistencies -- the revenue code was different from the code for displaying revenue in the goods window, which was bad), I encountered the revenue penalty for goods which departed from an overcrowded station.

I do not think it is appropriate as currently implemented, and would like to discuss what we are trying to do here.
(1) The penalty is currently assessed to all goods based on speedbonus.  Frankly, mail doesn't care whether it is transferred through an overcrowded station, and neither do any other goods, except passengers; the payment should be the same.
(2) Overcrowded transfer stations should already be suffering penalties in *routing* and *average speed* because the waiting times should be increasing (as passengers, mail, and goods have to wait for the third or fourth bus or train).  (If the waiting times are not increasing, this would need to be fixed, but I'm pretty sure they are increasing.)
(3) Passengers and mail will already refuse to start their journey from an overcrowded halt.  Goods already try to start in a non-overcrowded halt.
(4) The revenue penalty for starting at an overcrowded stop is very severe.  For passengers in pak128.britain.experimental, it is a 36% penalty -- over 1/3 of the revenue is lost.  This is simply unrealistic.  Penn Station New York is extremely and unpleasantly overcrowded on a routine basis, and it doesn't really cause any of the railroads involved to lower their fares.  The system is even less realistic for mail or milk or other fast goods.
(5) Revenue penalties do not feed back into the routing system, so revenue penalties are not a good way of implementing actual passenger behavior (which is to route around overcrowded stations).  I would certainly be willing to consider additional penalties to *routing* for going through overcrowded stops -- people do make efforts to avoid transferring at Penn Station New York, and try to transfer elsewhere if possible.

Accordingly  I have a few possible suggestions:
(1) Simply delete this revenue penalty and rely on the existing combination of waiting times, and of passengers and mail avoiding overcrowded origins.
(2) Apply this revenue penalty to passengers only, and make it smaller.
(3) Delete the revenue penalty, but apply a *waiting time penalty* for passengers waiting at overcrowded stations  This is kind of how it works in reality -- an hour spent waiting at New York Penn feels like two hours waiting at a nice station, and that figures into passengers' trip choices.  This will also effectively slow down the recorded trip times, and thus the average trip times, and therefore reduce revenue.

Thoughts welcome.
----
Further point: by using the unhappy graph to generate the revenue penalty, there are some really weird and counterintuitive results.  Passengers pay less if *other* passengers gave up due to a temporary disruption, which makes no sense at all to me.  *Goods* pay less if passengers gave up due to a temporary disruption, which makes even *less* sense.

jamespetts

Thank you for thinking about this. This feature is from the very earliest versions of Experimental, and has not been given much consideration since then. Significantly, this feature was introduced before the journey time tolerance feature was introduced, which makes waiting time much more significant.

I am minded (provisionally, pending anyone else's comments on this) to suggest that we go with option no. 1 on the basis that the journey time tolerance combined with the waiting time will suffice for these purposes now.

Before any final decisions are made, however, does anyone have any alternative thoughts?
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

MCollett

Quote from: neroden on June 22, 2013, 08:17:27 PM
I have a few possible suggestions:
(1) Simply delete this revenue penalty and rely on the existing combination of waiting times, and of passengers and mail avoiding overcrowded origins.
(2) Apply this revenue penalty to passengers only, and make it smaller.
(3) Delete the revenue penalty, but apply a *waiting time penalty* for passengers waiting at overcrowded stations  This is kind of how it works in reality -- an hour spent waiting at New York Penn feels like two hours waiting at a nice station, and that figures into passengers' trip choices.  This will also effectively slow down the recorded trip times, and thus the average trip times, and therefore reduce revenue.

In the short term, I think the best fix is #1.  In the long term it would be nice to achieve something like #3 by the more general technique of giving stations a comfort rating in much the same way as vehicles, depending on the facilities (low for open platforms, high for a comfortable waiting room with catering facilities, etc.); higher comfort would make waiting time count less against journey time tolerance, and overcrowding would obviously reduce the rating.

Best wishes,
Matthew

jamespetts

Hmm - having different waiting times count for different amounts would require a somewhat fundamental change in routing code, which at present does nothing other than sort the fastest overall time. Anything that makes this substantially more complicated risks putting too heavy a burden on performance.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

neroden

#3 isn't nearly as hard as it looks.  Waiting times are currently registered when passengers depart (either by a vehicle or by "giving up").  The waiting time can be multiplied by a known factor prior to registering it.  (Presumably for passengers only.)

In fact, actual studies of people's behavior on city transit systems show that people consider waiting time to be, subjectively, twice as long as travel time.  Just to start with, before adding any "overcrowding" effects.  So this would be a very realistic way of modifying the passenger behavior.  Anyway, something to do later.

jamespetts

I am wary of things which make figures different to what they claim to be, partly because it can lead to confusion, and partly because figures can be used for more than one thing (and even if not now, in the future), with the result that skewing them produces anomalies. But this is indeed a matter for later.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

neroden

Quote from: jamespetts on June 23, 2013, 03:39:20 PM
I am wary of things which make figures different to what they claim to be, partly because it can lead to confusion, and partly because figures can be used for more than one thing (and even if not now, in the future), with the result that skewing them produces anomalies. But this is indeed a matter for later.

Good point.