Sid Meier's Railroads! HookedGamers.com Wiki Resource Growth Illustrations Page, Restored
A Single Auto Production Chain
Click any image twice to see it at full size.
Snoopy55's Hill Valley Mess was used (thanks, dude!). Robber Baron difficulty level (Difficulty affects revenue - more to come later). Three trains were set up, one for each resource (Coal, Steel, and Autos). All three were set to "Wait 8" (wait until the train is full) so I could precisely monitor carloads in the production chain.
Coal fed into Shawan, a Village with a Steel Mill. Steel was transported to Fox Ridge, a Village with an Auto factory. Autos were transported to Snyder, a Metropolis. The three track segments were somewhat short (see Setup inset). All cities had Depots (so prices would appear more slowly).
After every train dropped a load, the date and Lifetime Revenue for each train and industry was written down. (Actually, if you're recording train date and revenue, you only need industry date and revenue when the industry changes size. It otherwise works just like it says - Small 20%, Medium 35%, Large 50% - and can be computed from its train's revenue.)
Note that in work of this type, never record "Profit" numbers or "Last 5 Year" numbers. Always use the Lifetime column, and the Revenue number. This prevents data problems due to shifting numbers (Last 5 Years) or maintenance costs (Profit). Of course, the results do not take Maintenance into account, then - but this can be easily handled by subtracting ARC <gimped Wayback> values for the three trains afterwards, or whatever.
Three charts are presented:
- Months Between Trains shows how quickly trains moved. Coal drives the whole chain - as the size of the Coal grew, Steel and Autos tracked it. There is a 1:1 ratio of input to output at each stage, but a couple of wrinkles were seen, such as when industries became Large.
- Cumulative Revenue shows how much money each train and industry made, cumulatively. Also see the Total Revenue section below.
- Prices For Resources shows how Coal, Steel, and Auto market prices fluctuated over time. More precisely, this is actual revenue per individual trainload, divided by 8. Prices often fall from the first car in a train to the last one, so it's an average. I consider train revenue to be the only accurate way to show actual market prices. The prices shown on the F5 Resources page are liable to be up to 4k higher than what is actually being seen in the game, for unknown reasons. The numbers in the pop-up over the mini-map are always fairly accurate, but it's too much work to write down individual car prices.
- Note that the Coal resource - which drives the rest of the chain - actually fluctuates in its output, within a given size of Coal. In particular, when it's Small, it is slowly accelerating its output (seen by the train taking fewer months, in the inset). Medium Coal appears to do this too, but only right after Coal turns Medium. It's not really seen once Coal reaches Large, but perhaps it's just shrunk to be negligible, as the Small to Medium progression hints.
- For what it's worth, you can estimate cars of Coal output per year (or whatever) using the Months Between Trains chart.
- Other work suggests that industries run very slightly "slower" than raw resources when size matched (Small resource to Small industry, etc.). This is why there was a small burst of Steel and Auto production at ~45 years, when these two industries become Large size, while Coal was still Medium. That is, they used up a small coal "backlog" that had been building up, while both the resource and the industry had been at Medium. In that other work, I found that Large resources produce about 4.40 cars/year, whereas Large industry can handle about 4.38 cars/year. Large industry creates a small backlog when matched to Large; given the burst when industry went to Large (in the Months Between Trains chart), it looks like Medium ones do, too.
- Note that industries always grow faster than the raw resources supplying them, because they have both and input and output. Two exceptions:
- Hospitals and Newspapers only grow half as fast as other industries, because they do not have output.
- Sheep farms have two outputs, so they can grow twice as fast as other raw resources (and just as fast as industries). If, of course, both outputs are picked up. (tested and verified)
- Although prices per carload had been fluctuating early in the game, they quickly stabilized (within 10 years) once Coal grew to Large. Note that the inset shows the average price per car in an 8-car train, but as a given train dumped its load, prices would in fact be higher at first and then sink as all 8 cars got sold - but the average price stayed the same, as can be seen. Apparently the game mechanics are tuned to Large sizes in some way that stabilizes the prices, once everything in a chain is Large.
An analysis of Total Revenue shows how much each of the components contribute to the money made on the whole chain. For purposes of analysis, the revenue is broken into three parts depending on the size of the Coal resource: Small (to 20 years), Medium (30 to 65 years), and Large (70+ years). Transition years have been removed from the three "sized" rows, but are included in the All (0 to 107 years) row.
Revenue figures (compare the Cumulative Revenue inset):
Steel Auto Total Revenue Level Coal Mill Steel Plant Autos Revenue Years Per Year All 4883 2129 9221 4083 15223 35539 107.4 331 Sml 547 136 768 172 960 2583 19.5 132 Med 1950 868 3380 1496 5631 13325 35.3 377 Lrg 1930 965 4265 2133 7280 16573 42.5 390
Same revenues, as a percent of Total Revenue for each row:
Steel Auto Total Ind. Ind. Total as % Level Coal Mill Steel Plant Autos Revenue Total of Total Revenue All 13.7% 6.0% 25.9% 11.5% 42.8% 35539 6212 17.5% Sml 21.2% 5.3% 29.7% 6.7% 37.2% 2583 308 11.9% Med 14.6% 6.5% 25.4% 11.2% 42.3% 13325 2364 17.7% Lrg 11.6% 5.8% 25.7% 12.9% 43.9% 16573 3098 18.7%
- Coal stands out at first (the Small row) because the other two chains are waiting to get started. (This period saw 5 Coal trains, 4 Steel trains, and 3 Auto trains.) For Medium and Large, there is an equal number of trains for all three (the startup lag only affected the Small row).
- By the Large period, Coal is much smaller, because its price has hit bottom (10k/car). Market prices for the other ones have not: Steel stabilizes at 22.43 vs. a min of 15 (+50%), Autos stabilize at 38.36 vs. a min of 25 (+53%). (Mins are from RR_Goods.XML.) Undoubtedly this convergence on 50% is a function of the model (and perhaps the fact that there is only one chain running); see Section 2 below.
- Very interestingly, revenue per year for the Large period (390k/year) is only a little more than during the Medium period (377k/year). Some of this is due to how Coal had an uptick during the Medium period, but most of it is due to prices stabilizing at lower values, in the Large period (see inset for Resource Prices). I guess you have to work harder just to break even in a supply-and-demand, quantity-versus-quality model! (But see the note below concerning market prices.)
- If you divide the revenue figures for an industry by the train revenue to its left, it is more than 20% at Small and 35% at Medium. This is because the industries grew before Coal grew (the rows are tied to coal's size). For the Large row, they are 50% of their train's income.
The Large row shows what you can expect into the future - 390K per year, for the whole chain. Assuming resource prices don't change, but they were very stable throughout the period, as the inset shows. However, messing with these resources elsewhere (e.g. making another coal/steel/auto chain) will probably mess with them. I'm not sure whether up or down - I'm testing that next.
Two separate quick tests were done using the exact same setup, with three trains set to NOT Wait. (One had the original Depots, the other had all Terminals.) At the end of the 107 years, they had practically identical total revenues for trains and industry, compared to the numbers above. It's hard to make an exact comparison because they were, of course, on different schedules for dropping off their loads versus Wait trains (if you draw the line at a particular date, there's liable to be one train that hasn't quite dropped off its load, etc.). If anything, the non-waiting trains might have been a little more profitable (+1%?), but it's so close that they are the same, for practical purposes. (If you don't see a difference in 107 years, when will you?) So use Wait or don't use it, whatever you like.
It is very important to note that these revenues are highly dependent on market prices for coal, steel, and autos. In particular, I suspect that the fact that I was only running one coal/steel/auto chain caused at least the Coal, if not the other prices, to be highly depressed. Other work (not yet posted) hints that prices are highly influenced by how many resources are lying around (not picked up), and this would have been a lot of Coal - I used a Small Coal, but there was also 1 Small (4 loads lying around), 1 Medium (8), and Large (12) Coal on the map, entirely untouched. (Of course, there was no other Steel or Autos lying around, because this one chain was the only thing happening on the map.) The net result may be that you will get more revenue from your production chains, once all the raw resources feeding them are in use. I hope to work on how the extent of resource use (i.e., running four coal/steel/auto chains) affects prices, in Section 2 (below).
When did industries break even with their purchase price, and start making a profit? All industries can be constructed for $500k, and otherwise I have seen existing Steel Mills at 120k, and Auto Plants at 180k. Break-even time (in years):
Existing Constructed Steel 18 40 Auto 20 31
These year counts are approximate because 1) they include the "lag" seen when a chain first starts (as coal > steel > autos), and 2) my trains were set to Wait. I interpolated where it might occur for non-Wait.
The Auto Plant needed longer to get its input, as product moved up the chain - but it generated a lot more cash. That's why it takes a little longer for a low industry price (Existing), but is considerably faster for higher prices (Constructed).
When viewing the figures, remember that industries became medium at about 18 years, and Large at about 47 years. So if you bought them at Existing prices (Steel 120 or Auto 180k), they're paid off about the time they go to Medium. And if you constructed them, they paid off quite a while before becoming Large.
If you want to find the break-even point for other industry purchase prices, use the Cumulative Revenue inset to find when each industry meets your target purchase price. Actually it's hard to read the lower left of the chart, although in theory, that's exactly what you want... anyway, once industries and their driving resource become Medium, they really start making money.
Also keep in mind that the operating costs for trains on this chain have not been considered. It's not hard to do; maybe I'll get to it sometime. The break-even times will, of course, be longer if operating costs are included.
Four Auto Production Chains
Whew - finally finished. This was a lot of work.
For this, I took the same map used for the test above, and added three more coal/steel/auto chains. This was a lot of work just to set up, because on the HVM map, usually only Cities and Metros have any room for new industry... and otherwise there are only 4 Coals and 4 Metros (to receive Autos). There was a lot of planning and carefully laying track (so as not to cross over, etc.), before I could even start. Anyway...
I didn't write down every trainload's revenue this time (thank god). All I did was to write down all revenues (trains and industry) as of 10 years after all Coals became large (1956) - after market prices settled down - then ran it for 31 more years (to 1987, a.k.a. 17 more trainloads of Coal down each auto chain). This let me compare with the 31 "stable" years at the end of the first test (above). At the end, I wrote down all revenues again.
By subtracting 1956's numbers from 1987's, I could get 31 year's worth of stable revenue for the 4 chains. For the record, starting in 1987, each train chain was allowed to go all the way (8 coals -> 8 steels -> 8 autos) before numbers were written down; thus, the numbers are for 17 full "train chains" worth of revenue (for 4 chains).
After running this setup one time, I wanted to see how a couple of differences affected the results. Namely:
- Does the distance between cities affect it?
- Does the degree to which some cities that have not gotten any Autos affect Auto price?
These additional tests also used a period of 31 more years (1956 to 1987) a.k.a. 17 more full train chains. (There's nothing magic about the 31 or 17; it's just what's easy to make equal comparisons against from my early testing.)
The excruciatingly detailed examination of one Auto chain in Section 1 served as an interesting lesson in exactly how things work, but no one has the time to do that level of analysis all the time. Therefore, I will cut to the chase and present the over-arching results from all 3 of these tests of 4 Auto chains, plus compare them to the one-chain results, next.
Word to the wise: If anyone else does testing of this sort, I highly recommend that you back up the RR_Events.XML for your scenario, and then edit it to take out any goods you might possibly use for testing. (Nuke'em from orbit... er, kill everything but the stock market events, to be sure!) Once you start a game, the events.xml is never read again; savegames store the initial xml settings and can't be edited any more. You may find later - much later - that you want to test something different on a particular savegame setup. But any time prices fluctuate, they really mess with your math, especially if you're just doing deltas (1986 vs. 1956) like I did here.
The initial results for having four Auto chains were somewhat surprising, compared to one Auto chain: All three prices (coal, steel, autos) were stable at their minimum market price plus a third:
Coal Steel Autos Minimum Price 10.00 15.00 25.00 Observed Price 13.39 20.13 33.29 Obs / Min +33.39% +34.20% +33.16%
(Market price mins and maxxes are the brown lines shown on the F5 graphs and can also be found in RR_Goods.XML. Max prices are always twice the min price, with the exception of Ore.)
Compare how, with one Auto chain on the map (and no other activity at all), Coal stabilized at its minimum price (10), while Steel and Autos stabilized at 50% of theirs (Total_Revenue, above). This led to a revenue of $390k/year with only one Auto chain. ("Chain" means Coal, Steel Mill, Steel, Auto Plant, and Auto revenue.) With four auto chains on the map, however, revenue averaged $364k/year for the 4 chains (-6.67%). This is because, while, Coal (and Steel Mill) income went to one third of its base minimum price (a +33% excursion), conversely, Steel, Auto Plant, and Auto prices (which are larger in absolute terms) fell from one half to one third of their minimum (a -16.67% excursion).
Note that I am talking about average revenue for the four Auto chains. The absolute revenue was 4 x $364k = $1,456k/year, which is of course far more money, and quite worth it. I am focusing on average revenue, because I am trying to tease out factors that influence revenue.
In the test setup, two of the four chains had a long-ish distance between their Auto Plant and the Metropolis that received those Autos. This is because there weren't many Metros on the map at the start of the game. But by the time prices stabilized (1956, 10 years after all Coals were Large), all the cities in the 4 chains were Metros; there were 12 Metros instead of 4. I took advantage of this to test the effect of delivering Autos to other Metros. These were also 31-year-long tests (1956 to 1987; 17 full trains):
- If the two long-ish Auto routes were made shorter (by linking back to the now-Metro with the Steel Mill), the average yearly revenue for all four chains went from 364k/year to 367k/year (+0.8%).
- If, instead, I took the 2 long-ish Auto routes and made them deliver to Metros way far away - almost all the way across the map - the average yearly revenue for all four chains went from 364k/year to 330k/year (-9.3%).
First, a couple of things:
- In the below, I call market prices a percent of their price. This means how the market price of a good compares to its maximum price, seen as the top brown line in the F5 graph (it's from RR_Goods.XML). For example, if I say Steel's at 67%, it means it's at $20k; the min and max for Steel are 15k and 30k, and 2/3 * 30k = $20k. The min price of all goods is half its max price, except for Ore.
- For the record: While F5 accurately shows min and max prices, it rarely shows the actual current market price for a good (neither the price stated at the top, nor the price shown in the graph). F5 is almost always high, often up to 4k over current prices, namely, the prices that float over unloading train cars. This is what you really get, if you watch train revenue. Actual prices are accurately shown in the Goods pop-up over the minimap - but actual prices do fluctuate, sometimes with every single unload. In contrast, F5 is often 2 to 4k more than you ever actually get. I think the developers are trying to show you an average on F5, but I don't know why it's almost always higher than the real revenue.
Ok, enough about that.
Given all the research above, I conclude several important things in regard to the Railroads! economy (only known to apply to freight cargo; express cargo (passengers and mail) may be different):
- Market prices are driven by the amount of neglected goods across the entire map. If there are a lot of goods that have not been picked up, there is an over-supply, which drives prices down. This is why:
- With one Auto chain on the map (Section 1) and three other totally neglected Coal resources, Coal was at 50% (10k). But Steel and Autos were at 75%, which is very high - these goods were not being made anywhere else, and thus had only one out of four opportunities to be neglected.
- Conversely, when there were four Auto chains (Section 2), all four Coals were in use and there was a minimal amount of neglected Coal... but then there was considerably more neglected Steel and Autos than with one Auto chain. All three goods (Coal, Steel, Autos) were at about 66.7%.
- To clarify about "neglect": It's not really possible to have all of a resource picked up, all the time. Except maybe in an extreme game where you have two trains set to wait on every single resource, and they overlap. More realistically, there is always some amount of resource neglected over time: Your trains will pick up a resource and drop it off, and return quickly - but in the meantime, the resource has built up. It is this built-up resource (averaged over time) that defines the market price Railroads! assigns to how much "over supply" there is.
- In the best of worlds - a mature map, where every resource is being adroitly picked up - expect to get two-thirds for everything.
- Goods that are loaded on a train (either on Wait, or simply in transit) are not neglected. This is why there was no revenue difference for the Section 1 test between the Wait-8 trains and the trains set to not Wait. If goods loaded on a train are considered to be neglected (leading to an over-supply), the Wait test would have made far less money than the non-Wait test. But they had the exact same revenue, within the bounds of accuracy of the test. This leads, of course, to an important correlary: There is no revenue difference between trains set to Wait, or not. Unless I've really missed something. (Keep in mind, all these tests are on freight, not express cargo... I hope to test that more, later.)
- Shipping goods a long length leads to neglect. To the extent that your train has a long way to travel and then come back, there are goods piling up (i.e., neglected). This is why the Section 2 test which sent Autos to far cities did notably (10%) worse than if Autos were sent to close cities - Autos piled up, neglected, at the Auto Plant, while their trains were off delivering.
- Try not to ship freight far (more precisely, keep neglect to a minimum).
- But we're only talking about perhaps a 20% decrease, in the best case versus the worst case. Don't get too worried - it's still good money. Just make sure your railroad is efficient. In particular, if you ever have trains getting tangled and delayed (high wait times), you have something seriously wrong!! Proper railroad design avoids such problems.
- The Goods pop-up over the minimap shows real prices, but fluctuates a lot. F5 is usually 2 to 4k high, but does show general/relative tendencies ok.
Mp players should note that the average prices shown in Section 2.2 hide something:
- The differences between the lowest money made by some of the links in the four auto chains could vary by up to perhaps 15% between the chain link that made the least revenue, and the chain link that made the most. The determinant was time: if there has been a long gap between the time anything was delivered, the first train to deliver it made lots of money. The last train to deliver that item, if several delivered it recently, could get 15% or even less money.
- If you watch your Goods pop-up over the minimap, you will see something telling: As neglected goods are picked up, prices rise. As these goods are delivered, prices fall. This means that, if a number of trains pick up a particular good at the same time (across many places where it can be picked up), prices rise high. Consequently, the first train to deliver the goods will make more money than the last train that makes it to its destination and delivers the goods.
- This happens all the time, with all freight (express not yet tested, but probably the same). In a solo game with no opponents, it's of no consequence - basically you always get the average. But in an mp game, given the fact that raw resources rule how the rest of the chain "reacts", it is in theory possible to get the downside price ad infinitum.
- But that's in theory. In reality, most mp games are decided long before all industries and raw resources are Large and the route entirely predictable/stable. You probably can't do anything about this particularly fluid thing, when times are tight... and when they're not tight, one person has won, and the other has lost.
For the record:
- I tried to test the concept that different places "want" things if they haven't gotten them. IOW, there is a built-up demand for Autos in the Metro Cincinatti, if you've never delivered them there. But the Section 2 tests don't really support that. I got approx. the same results when I switched to different Metros receiving Autos, versus Metros that had been getting Autos since Year 0. Or, I've really screwed up (always possible). But I ask this,
- If there is such a thing as "demand", how come Goods prices (over the minimap) are always what you see, as cars unload? Wouldn't there have to be something more complex, if goods didn't have the same price everywhere at any given time?
- I scratch my head over the question of whether there is "demand" in this game. All I've seen so far is basically "supply". Please IM me if you have seen otherwise!
Ok compadres. I've over-simplified in Section 2. Give me feedback in the forum if you have questions or comments, or on the Discussion tab of this page.