News:

Simutrans.com Portal
Our Simutrans site. You can find everything about Simutrans from here.

Return on investment

Started by jamespetts, March 19, 2019, 08:06:03 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

jamespetts

Those playing on the Bridgewater-Brunel server may notice that I have set up a rather extensive 'bus network in the east under the name of the Eastern Motor Omnibus Co. This is partly because I wanted to have a go at playing the game after a long time of just developing it, but I also wanted to have an idea of what the profit margins were especially for road transport, which always seems less popular than rail (although setting up an efficient 'bus network is actually very interesting).
The actual operating margin (i.e. revenue less operating costs) is shown in the finance window: the Eastern Motor Omnibus Co. is currently managing a margin of 34.84%in 1944, which is healthy but modest comapred to some of the well established rail based companies in this game.

However, more important for balancing purposes than the margin over revenue is the return on investment. This is the annual measure of how much profit is generated against the sums invested.

For my 'bus company, I calculated this for the year 1943 by taking the cumulative spend on new vehicles and construction in the years 1942, when the company was founded, and 1943, and expressing the net profits for the complete year of 1943 as a proportion of that. The result was, to two significant figures, 55%.

55% is an extremely high figure for return on investment. By way of comparison, the London, Tilbury & Southend Railway was bought by the Midland Railway in 1913. At the time, shareholders of the LT&SR were earning on average around 6% dividends (that is, they would typically get 6% of the value of their shares in dividends every year). This was considered unusually high for railways: the much larger and more well known Midland Railway that bought it could only manage 3%, and had to give every LT&SR shareholders 2 Midland shares for ever 1 LT&SR share that they owned in the buy-out. Railway profits had been higher in earlier times, but not an order of magnitude higher - perhaps 10-15% at most.
It must be conceded that the 1940s is a very good decade to be running a 'bus company. We do not simulate the war in that decade, but we do use real statistics for private car ownership which remain static for the 1939-45 period as one might imagine. Limited private car traffic means both limited competition and limited congestion. 'Bus technology had matured by the latter 1930s and the road network in towns in the game is generally fairly decent, although a lot of cobbled streets remain, which, given that they were generated before a pakset weight limit change, have a 3t axle load which restricts use of the heavier 'buses (although the AEC Regent II RT proves to be a very good choice in this decade).

In reality, the peak year for UK 'bus traffic was 1948 - rising car ownership reduced numbers considerably thereafter. It remains to be seen how my 'bus company will manage in the 1950s and increasingly challenging 1960s. I anticipate potentially having to close some routes and re-organise others. However, by then, I should have accumulated such a large amount of cash that I could run for decades at a loss and still not go bankrupt.

It should be noted I have had to build roads and in some case bridges, so the return on investment of 55% is after deducting both construction and maintenance costs of this infrastructure, which is far more infrastructural expenditure than any real life 'bus company ever made. It should also be noted that the Bridgewater-Brunel server was created before the recalibration of towns, which increase the proportion of residents in a town and therefore increase the amount of available traffic. Thus, with the revised pakset, less infrastructure investment would be needed as more roads would be suitable for the 'buses, and also traffic would be higher.

I am analysing this to assist with balancing. Much of the cost structure is a long-term affair requiring substantial code changes to vehicle maintenance costs and utilisation rates, which should reduce the return on investment by reducing how much that any given vehicle can be used (i) in any given amount of time; and (ii) before requiring capital investment in the form of overhauls or replacement (the latter was added for ways from 2014 onwards, but is less relevant to an urban 'bus network using public roads than to, for example, a rail or canal network).

It also suggests that there may well be considerable scope for lowering the fares for the "very low" class passengers. Recent analysis has shown that reducing the class on trains to "very low" almost inevitably results in higher profit as lower per passenger revenue is inevitably more than compensated for by higher passenger numbers.
The current fare structure for passengers in the pakset is as follows:
value[0]=55
to_distance[0]=16
value[1]=50
to_distance[1]=500
value[2]=45
to_distance[2]=2500
value[3]=40
to_distance[3]=5000
value[4]=35
to_distance[4]=0

class_revenue_percent[0]=60
class_revenue_percent[1]=100
class_revenue_percent[2]=133
class_revenue_percent[3]=150
class_revenue_percent[4]=200

This means that passengers in class 1 (that is, "low") travelling up to 16km pay 0.55c/km, passengers travelling between 16 and 500km pay 0.50c/km, passengers travelling between 500 and 2,500 km pay 0.45c/km and passengers travelling over 5,000 km pay 0.35c/km. These distances are cumulative, which means that, even for a 5,000km journey, passengers will still pay 0.55c/km for the first 16km.

Passengers in "very low" will pay 60% of this, that is, 0.30c/km for 16 - 500km and 0.33c/km for 0-16km.

For my 'bus company, as is the default, all the routes are set to "very low". In 1943, the company earned 634,493.00c in revenue. It expended 274,282c in vehicle running costs, 61,419.00c in fixed vehicle maintenance, 63,922c in infrastructure maintenance and 13,300.00c in access charges to other players' roads and stops, leaving a net profit of 221,539c against total costs of 412,923c. In that year, it transported 950,039 passengers in total.

If the fares for very low wealth passengers were instead 40% of the fare of low class passengers, rather than 60%, the revenue would have been 422,995.33c in total against costs of 412,923c, leaving a profit of only 10,072.33c. Given that the capital investment in the first two years of operation was 405,983c, this would give a return on investment of 2.4%, which would probably be a little low, especially if future code changes will increase the costs. If we were to assume that this 'bus company (as would have been the case in reality) had no infrastructure costs, however, this would give a total cost base for the year 1943 of 349,001c, and a net profit of 73,994.33c, which, against total investment of 405,983c would give rise to a return on investment of 18% - still high, but within the realms of plausibility for a 'bus company in an imaginary war-free 1943. This would leave some margin for infrastructure investment but perhaps not in bridges. It may be desirable slightly to increase the weight limit of some bridges built by default. This will also give a margin for future increases in costs associated with maintenance and overhauls.

How realistic is this 40%? To give some calibration, the fare for a return Megabus journey from London to Oxford is normally £9.00 (see here). National Express gives the same price. Both journeys are for week-days (i.e. to-morrow). It is safe to assume that these coach fares are the equivalent of "very low".

By comparison, a standard class off-peak rail fare from London Paddington to Oxford to-morrow is £27.40, approximately 300% the cost of the coach fare. To put it another way, the coach fare was approximately 1/3rd, or 33%, of the train fare.

Thus, a figure of 40% for the "very low" category would seem entirely reasonable (and I should note that I had picked the 40% figure before conducting the comparison above).

I should be interested in any feedback or analysis from other players on these figures and the general propensity to designate rail transport as "very low" rather than the default "low" in the game. I am keen to have classes realistically balanced.
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.

DrSuperGood

I did not balance vehicle purchase costs. This is why the return on investment is so high as many of the busses and such are practically free. In reality their costs would be much higher, needing a good part of a decade of operation to get good returns. Additionally The actual running costs of vehicles were purposely made to be low to account for technical issues players could face and to not anger players who were already playing (effectively game is on easy mode, money flows in pretty much no matter what one does).

I do agree that many vehicles should cost a lot more to run, especially with monthly costs. Also overhauling would add a lot of cost to running a line, a feature that is rather poorly simulated at the moment (I did factor it in, but again with conservative numbers).

Quote
It also suggests that there may well be considerable scope for lowering the fares for the "very low" class passengers. Recent analysis has shown that reducing the class on trains to "very low" almost inevitably results in higher profit as lower per passenger revenue is inevitably more than compensated for by higher passenger numbers.
This can be considered a flaw in the simulation since it is very difficulty, if not impossible, to get good passenger numbers on anything but very low with some line configurations. Especially early on when fewer passengers travel because of smaller city sizes or because transport is too slow. In real life running a train 90% empty is not profitable, and only reason it happens is because of contractual agreements (must service every 30 minutes, etc).

jamespetts

I realise that I made an error in calculating the investment element in the return on investment calculation, as I took into account revenue that had been generated on previous investment. In reality, the investment on which the return should be calculated should be simply the initial starting capital of 250,000c. On this basis, the return on investment at current balance is an enormous 88%. With 40% rather than 60% "very low" fares, the return on investment would be a more modest but still very large 29%.

It is of course correct that the return on investment calculations cannot be finalised until full cost balancing has been completed (and, indeed, will be an integral part of full cost balancing), and that cannot be done without a more complete feature set. However, the relative fares of different classes of passengers can and should be calculated now, and that is why I am doing this at this stage.

A reason that it is difficult to get good passenger numbers with higher classes at this juncture on the Bridgewater-Brunel server is that the game was started before the town recalibration was implemented. The town recalibration greatly increases the proportion of residential buildings, giving both a greater supply of passengers and less things to satisfy passengers within walking distance, both increasing passenger demand.

It is possible that the proportion of the different classes in the buildings is not very good. One thing that I do notice is that a lot of town buildings are the very basic "hovels", which have near 100% very low passengers. The proportion of buildings in towns should be recalibrated more fully when the town growth improvements are eventually implemented.

However, if players are finding that they are making much improved profits with using "very low" rather than "low" passengers in almost every configuration, that does suggest that the fares for "very low" may be too high. The comparison with real rail/coach fares from London to Oxford seems to suggest that this might well be the case.
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.

Vladki

I was thinking about the classes of passengers, etc. and I start to feel that it is not implemented the way it was in reality.
If I understand correctly the current algorithm, travellers of a given class will search connection to their destination using vehicles of the same or lower class. When connection is found, a check on time tolerance is done, and if it is too long an alternative shorter trip may be searched or compared with the use of private car (if the traveller has one). In the default setting it woud mean that "very low" class would not be able to travel anywhere until trams are introduced.

However in real world it does not work like that. Each traveller has a time tolerance and financial budget for his trip. A low income passenger could not travel far away, even if using low-class vehicles, because the price for the long trip would be too high. On the other hand, he might use higher class vehicle for short trip if there is no other option. And if the budget is really high, he might go around the world in first class, like Phileas Fogg. Of course in early years poor people might just go on foot, and it would not be much slower than a cheap coach? Maybe introducing horses and donkeys (without coach/carriage) as a private cars. People with lower income might do the same trip as people with higher income, but not so often.

So instead of fixed traveller classes, I suggest that each traveller has a random time tolerance, and random budget (with distribution similar to current distribution of classes). The the pathfinding would try to find fastest route, and accumulating the price during the pathfinding. If the price will go over the budget, stop and try again excluding the highest class encountered during the pathfinding. If the time tolerance is exceeded, stop completely, and try alternative destination, and at last compare with private car if available.

There's another problem with private cars and classes, especially in early years. Now it does not really matter if traveller has Skoda or Ferrari. If he obeys the max speed rules, the travel time will be similar. But there is a big difference if you walk, ride a donkey, or ride a horse. So the question of private cars is not only if one has a private car, but also how fast is it?

jamespetts

I understand the point made, but the reason that it is done as it is is to reduce computational load, which would be excessive with the system that you suggest, making all but small maps unplayable.

The reason for that is that, with the current system, there are five pre-calculated routes from all stations to all other connected stations. Passengers do not actually calculate their route through the network: they just retrieve a pre-calculated route from the table of pre-calculated routes. These routes are recalculated periodically, but they are calculated far less often than they would have to be calculated if each individual passenger had to calculate her/his own route from scratch for each journey.

Route calculation of any sort is one of the most computationally intensive (useful) things that one can program a computer to do relative to the size of the input data. This is why private car transport is approximated rather than simulated directly: having private cars calculate their whole beginning to end route from scratch for each journey would be computationally untenable.

As to private cars, it is a more viable suggestion to split private cars by class. The difficulty with this in the short term is mostly the amount of work that would be necessary to produce the graphics for nearly five times as many different types of car as we have now. If anyone is volunteering, this feature could be added in the code relatively quickly.
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.

Vladki

Well, if the routes are pre-calculated, then it might work fine as well. Just add the price of the (round-)trip to each route when calculating it. Then look through the table as I suggested before - find the fastest, check price, if too expansive, check cheaper route, ...

jamespetts

Quote from: Vladki on March 20, 2019, 10:42:49 PM
Well, if the routes are pre-calculated, then it might work fine as well. Just add the price of the (round-)trip to each route when calculating it. Then look through the table as I suggested before - find the fastest, check price, if too expansive, check cheaper route, ...

It is difficult to see this working well - that would mean that short distance routes would usually attract high fares, but that few people would use long distance routes.
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.

Vladki

I think that is correct - far more people are commuting (short trip) every day, than travelling overseas. It would mean that even in the early days the short distance travel would have enough passengers even if it is not cheap. If I recall correctly even high class passenger will not use high class vehicles if lower class is providing enough comfort for their trip, so having local transport in first class would not be competitive.

Also per km price is higher in local transport then in long distance...

jamespetts

Quote from: Vladki on March 20, 2019, 11:04:02 PM
I think that is correct - far more people are commuting (short trip) every day, than travelling overseas.

But that is because of time, not cost: that is already simulated.

QuoteIt would mean that even in the early days the short distance travel would have enough passengers even if it is not cheap.

But local transport was not significant in the 18th and early 19th century - only long-distance transport. The "short stages" were the only short-ish distance transport at the time, and even they were not local in the way that trams or town 'buses are local.

QuoteIf I recall correctly even high class passenger will not use high class vehicles if lower class is providing enough comfort for their trip, so having local transport in first class would not be competitive.

That would only be so if any competitors could afford to offer local transport at lower prices, which, in the early years, is not likely to be possible once cost balancing is completed. Also, the routing algorithm takes into account only travel time, not price, so the fastest route would get the passengers.

Also, the fact that the routing algorithm itself takes into account only travel time and not price will lead to anomalous results with the system that you suggest. Suppose that a passenger wishes to go from A to C via B. A to B is a short journey, and A to C is a long journey. The passenger's budget allows using a faster route from A to B in the "medium" price bracket, but cannot afford the B to C trip in the "medium" price bracket, so has to use the "low" connexion between B and C. However, because the passenger would have to route using the "low" route from beginning to end, the passenger would also have to take the "low" route from A to B. If the overall travel time from A to C using the low priced route throughout is greater than the passenger's overall travel time budget, then the passenger will not travel to C at all, even if the passenger could have afforded to have travelled from A to C via B using the faster route from A to B, and thereby reach C within the passenger's travel time budget. Anomalies such as these would be rife if passengers had a variable budget but routing were based on fixed price levels.
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.

Jando

I believe there is still considerable scope for fare reduction.

Here is a saved game from my current passenger-only map if anybody is interested (link valid for 60 days): https://simutrans-germany.com/files/upload/Hartcester_1868.sve

Game was started in January 1861 (to get mechanical signalboxes), it's January 1868 in that saved game. Map size 256x128 kms, 30 towns, town population from 3.500 to 14.000 inhabitants, thus no real big cities. Not all towns connected yet, current vehicle count is 26 trains and 31 horse omnibuses. All vehicles used in default class configuration, no very-low class transport on that map at all. Still very high margins, above 80% at the end of a day-month. Very high return on investment, connecting another town to the network will have earned back the investment within a few game days/months.

Quote from: jamespetts on March 19, 2019, 08:06:03 PMvalue[0]=55
to_distance[0]=16
value[1]=50
to_distance[1]=500
value[2]=45
to_distance[2]=2500
value[3]=40
to_distance[3]=5000
value[4]=35
to_distance[4]=0

class_revenue_percent[0]=60
class_revenue_percent[1]=100
class_revenue_percent[2]=133
class_revenue_percent[3]=150
class_revenue_percent[4]=200

Here's a fare structure that I would like to try.

to_distance[0]=16
value[1]=50
to_distance[1]=50
value[2]=45
to_distance[2]=500
value[3]=40
to_distance[3]=5000
value[4]=35
to_distance[4]=0

class_revenue_percent[0]=40
class_revenue_percent[1]=80
class_revenue_percent[2]=100
class_revenue_percent[3]=150
class_revenue_percent[4]=200

jamespetts

I am more interested at the present in the ratio between "very low" and "low", as the overall ratio of costs to revenue will have to be dealt with when the full rebalancing takes place, which, in turn, will need to await some substantial features that are planned but not yet implemented.

Thus, "low" should always have a revenue percent of 100, and the overall cost/revenue balance should be adjusted by other means (principally by adjusting the costs when the additional features have been completed, but also by inflation based drift when the inflation feature has been completed).
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.

Ranran(retired)

class balancing issue of pak128.britain-ex?

All buses are set to very low class by default.
I noticed that there are almost no very low class passengers on my bus network in the map which started from 1928. (´・ω・`)
Then I looked around the city buildings and also noticed that there are very few houses which has very low class residents.
That's why I raised the fares of all bus routes to the low class, yeah.  :lightbulb:


This is a chart of transported and revenue. I raised the fare four months ago.

The few very low class passengers have been eliminated, but the bus route has come to higher profits. Great success!!  :thumbsup:


The fare increase policy by Ranran has created a no route at a few bus stops with very low classes living around. But overall it is a very small loss. They live only a few in the corner of the city. You can get a high profit by ignoring them. You may not need a bus stop around it. Because they never get on the train unless they lower the fare. It is very stupid to lower the train fares for the few passengers.



Please note that this is an example when the age has advanced to some extent.
In 128.Britain-EX, there is no point in transporting the very low class because the very low class people are extinct on the map starting from 2000.
And despite the fact that very low class people have become extinct, it is strange for many jobs to try to hire them.   ???

But in the example of 1930 their presence may be a bug.  ::-\
This is the only building in which the very low class people lives in.


It is written that the appearance year is until 1910. The very poor people may be extinct in 1910 originally.
Somehow they live in the initially placed cities, but they were not allowed to live in the manually placed city.  ???
After all, if cities grow, they will eventually disappear.
ひめしという日本人が開発者達の助言を無視して自分好みの機能をextendedに"強引に"実装し、
コードをぐちゃぐちゃにしてメンテナンスを困難にし(とりわけ道路と建物関連)、
挙句にバグを大量に埋め込み、それを知らんぷりして放置し(隠居するなどと言って)別のところに逃げ隠れて自分のフォーク(OTRP)は開発を続けている
その事実と彼の無責任さに日本人プレイヤーは目を向けるべき。らんらんはそれでやる気をなくした(´・ω・`)
他人の振り見て我が振り直せ。ひめしのようにならないために、らんらんが生み出したバグや問題は自分で修正しなくちゃね(´・ω・`)

jamespetts

Thank you for this. There are a number of complex interrelated issues here, mostly relating to town growth. First of all, there may be insufficient buildings in the pakset with very low class passengers in the later years. Secondly, in the Bridgewater-Brunel game, the buildings do not seem to be replaced with sufficient frequency, such that many older buildings (with a higher proportion of very low passengers) remain, with the result that a large number of very low passengers compared to other classes still wish to travel. This is something that will need to be addressed when town growth is considered.

Thirdly, it is not a bug that the old 1750-1910 building appeared: when a town is first generated with a new map, older buildings will automatically be placed to simulate the fact that the town has not just now sprung into existence. This is a (good) feature from Standard.

The relative price for very low class passengers does still need adjusting downwards, I think.
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.