## News:

Simutrans Sites
Know our official sites. Find tools and resources for Simutrans.

## [Patch] Realistic transportation measurement

Started by Ranran on indefinite leave, January 19, 2022, 05:43:34 PM

0 Members and 1 Guest are viewing this topic.

#### Ranran on indefinite leave

In my opinion, among the statistics used in simutrans, "transported" uses ambiguous data that is unrealistic and of little use.
To get to the point first, I think it would be better to change the "transportation unit" to one that is more practical and valuable.

It may be seen in detail in the following page on wikipedia.
https://en.wikipedia.org/wiki/Units_of_transportation_measurement
I do not speak English, so I may not be able to explain it well, but I believe it describes what I want to achieve.

Currently in simutrans, the transport unit is expressed as a number of pieces. In some cases, this reduces the value of the statistics, for example in convoy statistics, where all cargo categories are mixed together.
(1) Is the value of transporting a mail really the same as that of a passenger being? For example, a convoy with 100 passengers and mail capacity of 500.
(2a) Should transporting a traveler who travels 1km from origin to destination and transporting a traveler who travels 1000km both be considered the same achievement? Currently they both count as transported count 1.
(2b) A passenger who rides from the first station to the last station is counted as one transported passenger. A passenger who get off on the way is counted as 1, and another passenger who sits in that empty seat is also counted as 1. Then one seat can count 2 passengers on the same journey.

In the real world, statistical units such as those shown in above wikipedia page are used, and I believe that it is best to mimic them.
This is because it solves problems (1) and (2) and makes for useful statistics, while at the same time being similar to the real world, so it is not difficult for players to understand.
To make (2) clearer, it is better to use a table of the number of cargo between stations, but I wish to implement that in the future.

In brief, record of "transported" is torn into three parts by this patch.
- passenger-kilometre for passengers
- tonne-kilometre or kilogram-kilometre for mail
- tonne-kilometre for goods

The charts that will be affected are finance, line, convoy.
The charts are accompanied by suffixes to facilitate understanding. These can be translated.
Recording memory increase is 12 months*2 for each line, 12 months*2 for each convoy (int64). For finance dialog there is no increase because those record memories already existed even though they were not used.

Please note that the above are only units for transportation. Successful journeys will still be counted as before. I mean, during the journey, they may use the player's transportation several times. The new transportation units will be used for those statistics. In other words, travel and transportation are different concepts.
The remaining "Transported" button has been changed to "Travelled" to avoid player misunderstanding. This keeps track of the number of times a generated passenger has successfully traveled, but I don't speak English, so I'm not sure if this word is appropriate.

Unfortunately, it is not compatible with older records.
Therefore, this patch increases the version by 0.1 to indicate this fact.
In other words, to say "Starting from 14.17, transport records will be changed and related records will be discarded or units will be changed because they are not compatible. Current players will be aware of the fact that the transportation record categories have been split, so they will be aware of that fact. But unfortunately, it's a temporary mess. (´・ω・｀)
However, as I have already explained, the transportation record so far is not very useful. The value of "1" is unstable, because passenger and mail are sometimes mixed. There was also no correlation with distance. I believe this change will be an improvement when old records are lost and new games are started.

Note that the same kind of problem exists with freecapacity records. I haven't made any changes to this as I couldn't think of any ideas to improve this.
I am curious if anyone has any ideas to improve this.

This change in statistics will also allow us to calculate the "transportation density". This is a number used in Japan for statistics on routes, and can be used to determine how well a route is operating, as well as statistics on demand and profitability.
Due to motorization, Japanese National Railways used this evaluation standard to abolish many railway lines.
This is also worth using as a parameter to compare lines.
The display of the transportation density will be added to the bottom left of the linemanagement dialog.

I have thrown a pull request for this patch. #470, please check.
This patch adds the following translation terms.
`Pax-kmMail-kmFreight-kmpkmkgkmtkmA measure of the amount of passengers transported, expressed in passenger-kilometreA measure of the amount of mail transported, expressed in tonne-kilometreA measure of the amount of freight transported, expressed in tonne-kilometreTransportation densityYearly average/mon`

I would be grateful if you guys could let me know what you guys think about this change in transportation unit. Thank you.

#### Sirius

#1
Quote from: Ranran on January 19, 2022, 05:43:34 PMwould be grateful if you guys could let me know what you guys think about this change in transportation unit.
This change is quite valuable.
I see two concepts in there:
1. use unit-kilometers unit
2. split the record into three categories

The first feels like a best practice indeed!
The second feels like a good start, definitely better than not splitting these at all, but it might not be fine-grained enough.
Different freight types do not compare well in tkm nor in any other unit-kilometer. They are simply incomparable.

Instead of splitting this into pax/mail/freight, did you consider a finer grained splitting into goods categories as used for vehicle capacities and so on?
That is pax, mail, piecegoods, longgoods, bulk and so on.

That might require an own "transport stats" tab/window as the display relies on a freight type to be selected, but this should be fine I guess.

Memory consumption might speak against it.
On the other hand, assuming 10k vehicles in pak128.britain (11 categories)  this would result in just 10.56 MB, still leaving room for improvement by not storing categories not used by this specific transport stat entity.
10k vehicles is the magnitude of a B-B savegame

#### wlindley

The original "passenger and freight count" measure is indeed misleading.  Such mistakes are not uncommon in the real world: Amtrak regrettably trumpets how many passengers carried, as if one passenger from Trenton to New York generated as much revenue as a passenger from Los Angeles to Atlanta!

If we could also graph:

• total passengers carried (like original measure, but just for passengers)
• total revenue from passengers only
• total units of mail carried
• total revenue from mail only
• revenue per passenger-km (revenue / ( transported_count * km_distance )) -- we already have distance and total convoy km_distance; this is just a calculation on those figures.
• expenses per passenger-km
• profit per passenger-km
• total freight kilograms transported
• revenue per freight kilogram-km (and likewise expenses per; and profit per)
• revenue per convoy-km (and likewise expenses per; and profit per)
that would give further insight into how well our companies are doing.  Those are the same figures that railroads, airlines, and trucking companies always compute in the Real World.

#### jamespetts

Excellent, thank you - this is very helpful. I have incorporated this. These are indeed much more useful metrics, and will be very helpful in balancing, as these are comparable with real life historical data.

As to free capacity, can you not use the same metrics for that: free passenger km, free mail km and free freight km? This will show how much more can be transported than is being transported, and then allow a calculation of a meaningful ratio of used to free capacity. Indeed, if you do not want to clutter the charts with lots of different free capacity graphs, you can simply use the free capacity graph as a single percentage figure and only record the ratio, discarding the raw data for each of the categories after the percentage has been calculated.

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

#### Ranran on indefinite leave

Quote from: wlindley on January 19, 2022, 11:08:35 PMIf we could also graph:
total passengers carried (like original measure, but just for passengers)
total revenue from passengers only
total units of mail carried
total revenue from mail only
revenue per passenger-km (revenue / ( transported_count * km_distance )) -- we already have distance and total convoy km_distance; this is just a calculation on those figures.
expenses per passenger-km
profit per passenger-km
total freight kilograms transported
revenue per freight kilogram-km (and likewise expenses per; and profit per)
revenue per convoy-km (and likewise expenses per; and profit per)
that would give further insight into how well our companies are doing.  Those are the same figures that railroads, airlines, and trucking companies always compute in the Real World.
Check out the finance dialog. There you will find statistics for each type of transport. You can check the statistics of XX tonnne-km transported by ship or XX tonne-km transported by rail.
Therefore, profitability can be checked a little more in-depth.

Note that just as there are different types of cargo, there are different classes of passenger and mail. Earnings will also vary depending on the total distance. For example, goods that are transported too far will not generate a profit.
To be exact, the system is very complex. This patch will stay with a simple system that mimics reality.

Quote from: jamespetts on January 21, 2022, 09:42:44 PMAs to free capacity, can you not use the same metrics for that: free passenger km, free mail km and free freight km?
Should freecapacity also be split into three categories, i.e. add two records?
We can record the distance the "empty seat" has been transported and compare it to the distance it has been carried to calculate the percentage used.

#### jamespetts

Quote from: Ranran on January 21, 2022, 10:29:14 PM
Should freecapacity also be split into three categories, i.e. add two records?
We can record the distance the "empty seat" has been transported and compare it to the distance it has been carried to calculate the percentage used.

I am not sure that this is necessary - but I do not have a strong view on this. I should be interested in others' views.

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

#### zook2

#6
It's good to see that this is being worked on! May I ask how transportation density is measured?

While we're at it, the old window displayed a little arrow next to the convoys which were going in "reverse" order. I found that very helpful. Can you bring that back?

#### jamespetts

This has now been incorporated - density is measured in units (e.g. passengers or tones) transported per kilometre.

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

#### Ranran on indefinite leave

Quote from: zook2 on June 03, 2022, 08:09:39 AMIt's good to see that this is being worked on! May I ask how transportation density is measured?
In terms of "density," density is defined as payload-distance divided by frequency. As such, the calculated value as the density per month is shown here.

Quote from: zook2 on June 03, 2022, 08:09:39 AMWhile we're at it, the old window displayed a little arrow next to the convoys which were going in "reverse" order. I found that very helpful. Can you bring that back?

If you're talking about this arrow, it's still visible. However, the location may have changed from before.

#### wlindley

Would anyone find it useful to have another button to also display "global" (all companies) metrics? So you could compare "my" share against the overall trends?

Or perhaps on the Finance graph screen:
• Check-box: All graphs as a percentage of the global share (e.g., My Revenue as a percentage of all companies' revenue; my passenger-km as a percentage of all companies — these effectively show you, your company's "market share")
• Finances for transport type: An extra option showing rail, road, water, etc., as a stacked bar chart with percentages of your company's total (or, with the above check-box enabled, as a percentage share of the global market)

#### Matthew

Quote from: wlindley on June 03, 2022, 07:10:58 PMWould anyone find it useful to have another button to also display "global" (all companies) metrics? So you could compare "my" share against the overall trends?

Or perhaps on the Finance graph screen:
• Check-box: All graphs as a percentage of the global share (e.g., My Revenue as a percentage of all companies' revenue; my passenger-km as a percentage of all companies — these effectively show you, your company's "market share")
• Finances for transport type: An extra option showing rail, road, water, etc., as a stacked bar chart with percentages of your company's total (or, with the above check-box enabled, as a percentage share of the global market)

It would be interesting, but not interesting enough for me to try to learn to code it.
(Signature being tested) If you enjoy playing Simutrans, then you might also enjoy watching Japan Railway Journal
Available in English and simplified Chinese

#### zook2

Quote from: Ranran on June 03, 2022, 01:08:31 PMIf you're talking about this arrow, it's still visible. However, the location may have changed from before.
Sorry, I meant the convoy list in the Line Manager. There used to be a Reverse arrow, too. That's gone.

#### Ranran on indefinite leave

Quote from: wlindley on June 03, 2022, 07:10:58 PMWould anyone find it useful to have another button to also display "global" (all companies) metrics? So you could compare "my" share against the overall trends?
I have always wanted to create something like the CIV6 score chart.
This will be useful for network games. Players can also be aware of competition for many items. This leads to motivation.
I don't think it's impossible, but it will take a lot of time to make it. The day may or may not come when I will work on it.
But it is also possible for those who aspire to it to create it themselves.

Quote from: zook2 on June 04, 2022, 08:08:10 AMSorry, I meant the convoy list in the Line Manager. There used to be a Reverse arrow, too. That's gone.
I made a patch to improve this. I think it will improve things.

#### zook2

Quote from: wlindley on January 19, 2022, 11:08:35 PM
• total freight kilograms transported
• revenue per freight kilogram-km (and likewise expenses per; and profit per)
I'd like to second that. For example, I'm busily running trucks to pick up large amounts of fresh fruit now. The old tons-per-month graph allowed me to easily compare orchard production/month to the monthly amount that my trucks moved. I know I can simply divide ton-kilometers by route length, but that frequently involves mentally handling numbers greater than ten and stresses me out to no end.

#### Matthew

Quote from: zook2 on June 09, 2022, 08:39:17 PMI'd like to second that. For example, I'm busily running trucks to pick up large amounts of fresh fruit now. The old tons-per-month graph allowed me to easily compare orchard production/month to the monthly amount that my trucks moved. I know I can simply divide ton-kilometers by route length, but that frequently involves mentally handling numbers greater than ten and stresses me out to no end.

Yes, I would also prefer the old tons-per-month graph back for exactly this reason.
(Signature being tested) If you enjoy playing Simutrans, then you might also enjoy watching Japan Railway Journal
Available in English and simplified Chinese

#### Ranran on indefinite leave

#15
Quote from: Matthew on June 10, 2022, 07:49:43 AMthe old tons-per-month graph back
What are you guys talking about? Did it ever have such a chart?
It should be remembered that the volume of transport is a mixture of all cargo and the units are mixed.

#### wlindley

#16
• I believe the last comments meant "the old units-per-month graph."
• With a coal or iron mine, industry outputs are listed in tons-per-month, charts are in tons-per-month, this is easy.
• With farms, output goods-produced charts are in crates or sacks or barrels, while station goods-handled charts are in tons — this is a units mismatch and difficult to interpret.

At the very least, all goods charts should be expressed in the same units, tons.  For that matter, since the Goods List window expresses everything in Kg, why are we using tons at all; surely everything should be in Kg to dispense with Imperial units.

The industry window might need to be updated as, Production: "Fruit, 1/3, 34 crates (700Kg)/month" to explain the units in the graph.

Further, the confusing list of goods at a station, as seen here (232 barrels waiting... oh, whoops! some are crates or sacks! and then sorted alphabetically by goods name and then by goods type, rather than by "via" destination as promised! Arrrgh.), surely should be expressed in the form of:

• 3000Kg piece goods waiting
• 1000Kg via Arnhill Broadway Railway Station
• 80Kg (8 barrels) cider
• 20Kg (2 crates) china
and so on; this explains, sorted by destination station, what the transportation "density" really is and where we need to add capacity.  Mixing barrels, crates, all-the-units-mixed, tons, and kilograms is needlessly difficult to understand or use.

p.s., With a goods-waiting list as shown above, it can be seen that another column, based on distance to each station and the estimated revenue-per-km for each goods type, a subtotal of "Expected Revenue Per Goods Type Waiting" can be shown.  (Thus answering the question, if I can only add one freight car to my train, should I add a goods car or a coal car to raise the most revenue?)

#### Ranran on indefinite leave

#17
As I have explained many times, the method of unifying the transportation units is not possible without dividing all the charts of factories, stations and convoys by cargo type. It means that the number of chart records must be increased by the number of goods. If not, the unit of weight is a unit that can be commonly used by all. A unit is a confused unit. For example, 1suck, 1mail, 1passenger, 1car are all one unit. I don't think it's good to go back to the old way of counting all of these in the same way. Note that one unit is a unique unit determined at the discretion of the dictator of pakset. Therefore, it is neither an international standard nor an intuitive unit common to all.

The reason for this strange thing is that simutrans doesn't consider volume. Real objects have mass and volume. Since simutrans doesn't handle volume, we won't be able to simulate reality correctly. Generally, the cargo capacity is determined by one of the limits.

Therefore, we need to choose a better method within that constraint.

Quote from: wlindley on June 10, 2022, 10:02:38 AMAt the very least, all goods charts should be expressed in the same units, tons.  For that matter, since the Goods List window expresses everything in Kg, why are we using tons at all; surely everything should be in Kg to dispense with Imperial units.
Does the world really use kg to represent cargo handling volume? kg is a very small unit.
Therefore, I don't think there is much advantage in displaying a lot of 000 in many UIs and occupying the width, IMO.
But in games big numbers like 99999 will be preferred for pleasure.
Also, if your claim is correct, all weight values for convoy/vehicle should also be changed from the current "t"(tons) to "kg".

I think it's a good idea to display the weight on the number of waits at the station. The weight of the luggage directly increases the weight of the vehicle, which can affect the axle weight. Also, convoy always displays the weight. But as I said, it should be noted that the capacity of stations and freight cars is tied to strange units that are not based on weight or volume.
I think it's a very good idea to change all of them, but changing it can be a daunting task.

EDIT:
Quote from: wlindley on June 10, 2022, 10:02:38 AM3000Kg piece goods waiting
• 1000Kg via Arnhill Broadway Railway Station
• 80Kg (8 barrels) cider
• 20Kg (2 crates) china
It should be noted that the cargo has a separate mass notation.
For example, one unit of coal weighs 1000 kg, and mass is "t".
That is, currently 1 unit of coal is written as "1t coal".
Therefore, such changes can conflict with current specifications and lead to large mess. The kg of the goods list is rather a reference value, and many people don't care too much.

#### Octavius

Quote from: Ranran on June 10, 2022, 10:32:06 AMDoes the world really use kg to represent cargo handling volume?
Usually not, although it has happened in the past. Quoting from the first annual report of Dutch railways (1840):
QuoteAfter having wrestled through so many generally little understood difficulties, one could then enjoy to have seen the first section of the railway in use throughout the entire year, with a transport, far exceeding expectations, of 371019 passengers and 314626 Dutch pounds of goods and a revenue of 183266.37 guilders, whilst during that year not a single accident had happened.
(Translation mine)
A Dutch pound was defined as a kilogramme. They don't give the distance, but at the time, the line only had two stations, 15km apart. As you see, it was passenger-dominated.

But generally, in the modern day, one uses metric tonnes, even when the device measuring the load actually measures the volume.

There are two main exceptions though. The first is cargo in iso containers. Those are measured in TEU. Transport companies only know the weight of a particular container at the last moment, so for planning they have to assume the worst, which is 24 tonnes/TEU. Even that is just 623kg/m3, so when carrying iso containers, you're rarely weight limited. Only lorries carrying two 20-foot containers or double-stack container trains carrying four 20-foot containers per wagon may exceed weight limits. 40-foot containers (of 2 TEU each) are twice the size of 20-foot containers, but at maximum weight only 27% heavier. A lorry handles 2 TEU, a European train about 100 and a large container ship up to 20000.

The other important exception are road vehicles. Those are measured in lane-metres. For road-legal vehicles (which have to fit in a standard width and height (but passenger cars tend to be half-height)), this is the length of the vehicle plus some margins. Cars have a density of about 100kg/m3 (taking the bounding box as the volume), so you're rarely weight limited when loading cars. A normal European car train handles about 1200 lane-metres, a cruise ferry about 4000 and a pure car carrier 25000.

There are also cases where one measures pallets or floor area, for goods that cannot be stacked. In general, if the capacity of the vehicle isn't limited by weight or volume, one measures the cargo in the dimension that limits the capacity of the vehicle.

For the time being, Simutrans Extended doesn't deal with iso containers, car ferries or unstackable goods (like furniture – wait, we have that), so for the moment, expressing everything in metric tonnes is acceptable to me.

#### zook2

I would just like to point out that the Free Capacity graph is now meaningless because it still measures the old units-per-month.

#### Ranran on indefinite leave

Quote from: Ranran on January 19, 2022, 05:43:34 PMNote that the same kind of problem exists with freecapacity records. I haven't made any changes to this as I couldn't think of any ideas to improve this.
I am curious if anyone has any ideas to improve this.
I would like to point out what I have already mentioned in the first post.
As mentioned in the first post, any thoughts on how best to handle this would be appreciated.

#### zook2

What about a percentage of capacity * kilometers instead of absolute units?

#### Junna

I would like to be able to see the numbers of passenger trips as well as the numbers of pkm (they can deviate a lot after all, I would like to be able to see both); and the ability to see total passenger use of a station again (it is now split between visiting and commuting trips, being able to also see cumulative use would also be good).

This would also solve the issue of the free capacity (for passengers any how).

#### Ranran on indefinite leave

The number of people carried by convoy and the number of station users are different statistics. Station users are counted as evaluation records.
However, station users are counted only at the departure station. The data on how many people the convoy carried is ambiguous and almost useless as explained.
The most ideal is a record of how many people were carried between stations on a schedule or line, and such records are also used in the real world (at least in Japan).
What I would like to implement is such statistics.
For example something like this
https://statresearch.jp/traffic/train/congestion_line_284.html
https://statresearch.jp/traffic/train/images/congestion_line_284_0_b.svg

#### Octavius

There's no point in knowing that a train is on average 60% full if it's almost empty on one half of its route and overcrowded on the other half. You want the data per station. Ideally, every convoy or line should keep a record of used capacity and free capacity of every cargo and passenger class on departure at each station.

#### Sirius

#25
Indeed, a player impersonates many different roles in the company.
Pax/mail/goods stats are most important in the Line management role.

Given a few lines,
L1: A - B - C - D
L2: E - B - C - F
L3: A - G - D
As a Line Manager, I am interessted in two kinds of transport stats:
1. Stats per edge.
That means, how much was transported and how much capacity was available on A - B, B - C, C - D, E - B, C - F, A - G, G - D
2. The same as 1. but further split per line.
Surely both per freight type

Freightkilometers is not of much interesst in that role, they are quite valuable stats in the business analyst role though.

#### Ranran on indefinite leave

#26
This patch(PR#572) replaces "free capacity" with something like "vacant seats * km" for passengers and unifies the unit of transportation statistics. This gives us one of the more useful statistics specific to passenger traffic.
Old "Free capacity" records are discarded when the save is loaded.
This is information about how much of the entire convoy journey was empty.
By comparing this with passenger km, you can see how much waste is occurring.
For example, when passenger km and vacant seat km are the same, it is shown that about 50% of the seats are occupied for the entire itinerary.
The lower the "vacant seats * km" value, the better. It should be noted that overcrowded (standing ppl) still shows negative values.
Note that this is not an absolute number, but a percentage of the "journey length", as explained many times in this thread. Even if some sections are crowded, the vacant seat km ratio will be higher if there are many empty seats on longer sections. In this case, it means that your line operation is inefficient.
Due to the reuse of recording slots, this is currently passenger only.

It may be worth considering that we add a mail version of the record. It is not possible to add this type of statistic with a combined freight category, as freight varies in weight depending on the item.
Future updates to the line management dialog and convoy lists may allow this to be used to add sorting for (passenger's) seat utilization.

"Free capacity" should be changed to another translation to clarify this change. It has now been changed to "Vacant seat", but I'm not English speaker, so please re-edit this accordingly. Note that the unit is passenger km.

This patch contains #PR570. You can merge after it or test it at the same time.

#### wlindley

The standard measurement is called "Load Factor" — in other words, 100% minus your "vacant seat" percentage.

Examples:
An overcrowded train for example might be at 104% load factor;
a line where 20% of the seat-km are empty would have an 80% load factor.