Anyone want to help me make a list of the best enterprises to open in each town?

Users who are viewing this thread

Naasir said:
Are the conditions leading to these revenues the same in each game?
Like same shortages and such? How much do shortages really affect prices?

In my games I have always seen Dyeworks with ~500G to 550G revenue throughout most cities and those suffered very little variation in terms of profit.

Some shortages are consistent in some cities and some are very temporary(happening in or after sieges for example) My understanding is that villagers give materials to the towns based on what their village produces and that influences what shortages happen or don't happen. The thing that varies from game to game is what gets besieged, what gets conquered, what caravans get attacked, what villagers get attacked, which villages get looted, and probably some other factors. I could be wrong about some of this though.

Shortages certainly seem to play a role. It is generally less noticeable with the Dyeworks though. I wasn't seeing many shortages in silk, dyes, or velvet so they might be some of the most consistent but not necessarily the most profitable in every town. I would probably choose a dyworks in every town if I were limited to only being able to build one kind of enterprise.
 
In previous versions Oil press in Ethos net 700 most of the time and ironworks in Senderfall 500+. Ironworks in Senderfall is the best first investment (it costs only 3500g) and netting 500+ per week. Velvet or leatherworks could earn a few septims more in Senderfall in the long run, but i like the variety.
 
saxondragon said:
As a player I note that I have had such bad luck with Janos (multiple and consistent losses of income), that I stick to either ale or flax here. 

Was that on an earlier version? I think the tannery is the best to put in Janos in 3.8 but a dyeworks will give very little profit or even cost you money to run(because Janos produces plenty of velvet already). Another thing that may cause some enterprises to be less profitable in Janos(or other cities) is its villages being looted(including villages in the nearest castles being looted or captured). I tested a bread mill just to see (and also because the dyeworks was clearly unprofitable and the tannery had already been tested).


spiderman19 said:
In previous versions Oil press in Ethos net 700 most of the time and ironworks in Senderfall 500+. Ironworks in Senderfall is the best first investment (it costs only 3500g) and netting 500+ per week. Velvet or leatherworks could earn a few septims more in Senderfall in the long run, but i like the variety.
It has been a while since I played and earlier version but I think the economy is at least slightly different(if not significantly) in version 3.8. I have been using 3.8 and this information is for version 3.8.

Also, I can tell that you have been playing Skyrim or an Elder Scrolls game. :wink:





The Tanneries and dyeworks end up being the clear top two contenders in every town(with rare exceptions but one of the two always comes in first place). I asked every single guild master about every single enterprise 8-9 weeks in game and it appears that some enterprises like the wool weavery are only good in the first few weeks(before there is much traffic in and out of towns to deal with wool shortages), while others are more consistent(like the bread mill) but are still inferior to the tannery and or dyeworks. Because of this, I basically went back to my day 8 save and bought tanneries where I had dyeworks and dyeworks where I had tanneries. Here is the information.

O2MFZ.jpg
 
I transcribed dantw's data and ran some very simple statistics:

The dyeworks appears better in Avendor, Cez, Marleons, Nal Tar, Poinsbruk, Rane, Ravenstern, Windholm
while the tannnery is better in Ethos, Ishkoman, Javiksholm, Laria, Sarleon, Senderfall, Singal, Torbah, Valonbray

Though we could use more data to say for certain about Sarleon, Senderfall, Singal and Cez, and to a lesser extent Valonbray, Poinsbruk, Ravenstern, and Windholm
(intervals of 1/2 variance overlap for the first group, and intervals of full variance overlap for the second group)


If you want to check my work, the transcribed data is:
City, enterprise, 1, 2, 3, 4, 5, 6, 7
Javiksholm, tannery, 592, 571, 652, 604, 592, 631
Javiksholm, dyeworks, 559, 545, 545, 544, 534, 515, 526
Valonbray, tannery, 607, 538, 613, 559, 616, 580
Valonbray, dyeworks, 566, 566, 549, 544, 534, 515, 526
Ethos, tannery, 721, 652, 697, 670, 664, 673, 667
Ethos, dyeworks, 509, 543, 496, 495, 489
Laria, tannery, 676, 628, 622, 532, 613, 595
Laria, dyeworks, 540, 553, 517, 524, 533, 523, 520
Janos, tannery, 526, 481, 445, 523, 556
Sarleon, tannery, 589, 556, 562, 583, 442, 568, 565
Sarleon, dyeworks, 554, 576, 540, 522
Marleons, tannery, 502, 400, 454, 409, 394, 370
Marleons, dyeworks, 546, 573, 519, 533, 508, 484
Ravenstern, tannery, 571, 448, 550, 511, 439
Ravenstern, dyeworks, 593, 599, 554, 540, 544, 521, 526
Poinsbruk, tannery, 568, 469, 547, 466, 382, 490
Poinsbruk, dyeworks, 578, 626, 537, 592, 528, 533
Torbah, tannery, 670, 616, 679, 634, 568, 601, 592
Torbah, dyeworks, 550, 551, 522, 573, 513, 513
Senderfall, tannery, 613, 472, 622, 475, 559, 544
Senderfall, dyeworks, 562, 558, 546, 531, 535, 512, 511
Windholm, tannery, 580, 463, 571, 493, 463, 475
Windholm, dyeworks, 563, 567, 553, 542, 564, 521, 536
Rane, tannery, 481, 478, 427, 373, 481, 415
Rane, dyeworks, 563, 559, 520, 525, 521, 523
Singal, tannery, 592, 541, 532, 511, 541
Singal, dyeworks, 534, 537, 531, 517, 530, 509, 508
Cez, tannery, 616, 472, 547, 523, 499, 505
Cez, dyeworks, 554, 590, 529, 520, 540, 524, 526
Avendor, tannery, 517, 352, 478, 415, 319, 433, 481
Avendor, dyeworks, 542, 613, 524, 555, 540, 514
Nal Tar, tannery, 502, 340, 439, 424, 328, 331, 466
Nal Tar, dyeworks, 565, 593, 530 ,544, 523, 444
Ishkoman, tannery, 691, 556, 634, 532, 625, 577
Ishkoman, dyeworks, 523, 529, 520, 524, 532, 520, 532

And I ran the analysis in python with pandas with
import pandas as pd
import numpy as np
d = d = pd.read_csv('pendor-enterprises.txt', index_col=(0, 1)
s = pd.DataFrame({'mean': d.mean(axis=1), 'std': d.std(axis=1)}).unstack()
print(s)

dyeworks_better = s['mean'].iloc[:,0] > s['mean'].iloc[:, 1]
print('dyeworks better')
print(', '.join(s.index[dyeworks_better]))

tannery_better = s['mean'].iloc[:,0] < s['mean'].iloc[:, 1]
print('tannery better')
print(', '.join(s.index[tannery_better]))

sp2 = s['mean'] + 0.5 * s['std']
sp2 = s['mean'] - 0.5 * s['std']
intervals2 = pd.DataFrame({'tan_p': sp.iloc[:, 1], 'dye_p': sp.iloc[:, 0], 'tan_m': sm.iloc[:, 1], 'dye_m': sm.iloc[:, 0]})


sp = s['mean'] + s['std']
sp = s['mean'] - s['std']
intervals = pd.DataFrame({'tan_p': sp.iloc[:, 1], 'dye_p': sp.iloc[:, 0], 'tan_m': sm.iloc[:, 1], 'dye_m': sm.iloc[:, 0]}))

print('Overlap at 1/2 variance intervals')
np.logical_and(dyeworks_better, intervals['dye_m'] < intervals['tan_p'])
np.logical_and(tannery_better, intervals['dye_p'] > intervals['tan_m'])

print('Overlap at full variance intervals')
np.logical_and(dyeworks_better, intervals2['dye_m'] < intervals2['tan_p'])
np.logical_and(tannery_better, intervals2['dye_p'] > intervals2['tan_m'])
 
triplepoint217 said:
I transcribed dantw's data and ran some very simple statistics:

The dyeworks appears better in Avendor, Cez, Marleons, Nal Tar, Poinsbruk, Rane, Ravenstern, Windholm
while the tannnery is better in Ethos, Ishkoman, Javiksholm, Laria, Sarleon, Senderfall, Singal, Torbah, Valonbray

Though we could use more data to say for certain about Sarleon, Senderfall, Singal and Cez, and to a lesser extent Valonbray, Poinsbruk, Ravenstern, and Windholm
(intervals of 1/2 variance overlap for the first group, and intervals of full variance overlap for the second group)


If you want to check my work, the transcribed data is:
City, enterprise, 1, 2, 3, 4, 5, 6, 7
Javiksholm, tannery, 592, 571, 652, 604, 592, 631
Javiksholm, dyeworks, 559, 545, 545, 544, 534, 515, 526
Valonbray, tannery, 607, 538, 613, 559, 616, 580
Valonbray, dyeworks, 566, 566, 549, 544, 534, 515, 526
Ethos, tannery, 721, 652, 697, 670, 664, 673, 667
Ethos, dyeworks, 509, 543, 496, 495, 489
Laria, tannery, 676, 628, 622, 532, 613, 595
Laria, dyeworks, 540, 553, 517, 524, 533, 523, 520
Janos, tannery, 526, 481, 445, 523, 556
Sarleon, tannery, 589, 556, 562, 583, 442, 568, 565
Sarleon, dyeworks, 554, 576, 540, 522
Marleons, tannery, 502, 400, 454, 409, 394, 370
Marleons, dyeworks, 546, 573, 519, 533, 508, 484
Ravenstern, tannery, 571, 448, 550, 511, 439
Ravenstern, dyeworks, 593, 599, 554, 540, 544, 521, 526
Poinsbruk, tannery, 568, 469, 547, 466, 382, 490
Poinsbruk, dyeworks, 578, 626, 537, 592, 528, 533
Torbah, tannery, 670, 616, 679, 634, 568, 601, 592
Torbah, dyeworks, 550, 551, 522, 573, 513, 513
Senderfall, tannery, 613, 472, 622, 475, 559, 544
Senderfall, dyeworks, 562, 558, 546, 531, 535, 512, 511
Windholm, tannery, 580, 463, 571, 493, 463, 475
Windholm, dyeworks, 563, 567, 553, 542, 564, 521, 536
Rane, tannery, 481, 478, 427, 373, 481, 415
Rane, dyeworks, 563, 559, 520, 525, 521, 523
Singal, tannery, 592, 541, 532, 511, 541
Singal, dyeworks, 534, 537, 531, 517, 530, 509, 508
Cez, tannery, 616, 472, 547, 523, 499, 505
Cez, dyeworks, 554, 590, 529, 520, 540, 524, 526
Avendor, tannery, 517, 352, 478, 415, 319, 433, 481
Avendor, dyeworks, 542, 613, 524, 555, 540, 514
Nal Tar, tannery, 502, 340, 439, 424, 328, 331, 466
Nal Tar, dyeworks, 565, 593, 530 ,544, 523, 444
Ishkoman, tannery, 691, 556, 634, 532, 625, 577
Ishkoman, dyeworks, 523, 529, 520, 524, 532, 520, 532

And I ran the analysis in python with pandas with
import pandas as pd
import numpy as np
d = d = pd.read_csv('pendor-enterprises.txt', index_col=(0, 1)
s = pd.DataFrame({'mean': d.mean(axis=1), 'std': d.std(axis=1)}).unstack()
print(s)

dyeworks_better = s['mean'].iloc[:,0] > s['mean'].iloc[:, 1]
print('dyeworks better')
print(', '.join(s.index[dyeworks_better]))

tannery_better = s['mean'].iloc[:,0] < s['mean'].iloc[:, 1]
print('tannery better')
print(', '.join(s.index[tannery_better]))

sp2 = s['mean'] + 0.5 * s['std']
sp2 = s['mean'] - 0.5 * s['std']
intervals2 = pd.DataFrame({'tan_p': sp.iloc[:, 1], 'dye_p': sp.iloc[:, 0], 'tan_m': sm.iloc[:, 1], 'dye_m': sm.iloc[:, 0]})


sp = s['mean'] + s['std']
sp = s['mean'] - s['std']
intervals = pd.DataFrame({'tan_p': sp.iloc[:, 1], 'dye_p': sp.iloc[:, 0], 'tan_m': sm.iloc[:, 1], 'dye_m': sm.iloc[:, 0]}))

print('Overlap at 1/2 variance intervals')
np.logical_and(dyeworks_better, intervals['dye_m'] < intervals['tan_p'])
np.logical_and(tannery_better, intervals['dye_p'] > intervals['tan_m'])

print('Overlap at full variance intervals')
np.logical_and(dyeworks_better, intervals2['dye_m'] < intervals2['tan_p'])
np.logical_and(tannery_better, intervals2['dye_p'] > intervals2['tan_m'])
Thanks. That must have been tedious(unless you like it)! I am going to do some more testing now. I am simply going to build a tannery in every town, take pictures of the weekly profits and then do the same with dyeworks in every town. I can email a save to anyone who wants to help. The save is on the 7th hour of the first day, I have done some quests for the quarrelsome lords of Ishkoman, Rane, and Avendor(so you will be able to build enterprises there immediately), the character has more than enough money to buy an enterprise in every town. I recommend enabling cheats so you can teleport around to each city and then you can teleport to a large body of water(so you can wait in peace other than the occasional bandits who spawn by you and demand money) and hold down ctrl+space (makes time pass more quickly than space alone). I don't know if ctrl+space makes time go by more quickly than waiting in a city but I think it might.
 
I recorded 30 more weeks. I recorder 15 weeks of a dyeworks in every city and 15 weeks of a tannery in every city. I still need to compile the tannery pictures but I want to take a break. Here are the results for the dyeworks...
7C-Rz.png
 
Very interesting guys, always wondered if buying all dyeworks was a good idea
 
That must have been tedious(unless you like it)!

Yes, it was fairly tedious, but I have a cold and a not very well working brain at the moment, so it was kind of a good speed.

I transcribed dantw's larger datasets and reran my analysis I did include the numbers dantw marked as anomously low, since he indicated such events had more of an effect on tanneries than on dyeworks. From this dataset, I show you are better off building:

Dyeworks at: Javiksholm, Valonbray, Ravenstern, Poinsbruk, Torbah, Senderfall, Windholm, Rane

Tannery at: Ethos, Janos, Laria, Sarleon, Marleons, Rane, Singal, Cez, Avendor, Nal Tar, Ishkoman

With some uncertainty about: Valonbray, Laria, Windholm, Singal, Cez (overlap of the 1/2 sigma confidence intervals)
and to a lesser extent: Sarleon, Torbah, Rane, Nal Tar, Ishkoman (overlap of the 1 sigma confidence intervals)

However, the game to game variation appears larger:

Dyeworks in both datasets: Poinsbruk, Ravenstern, Windholm, Rane
Tannery both datasets: Ethos, Janos, Ishkoman, Laria,

Switched to Dyeworks in second dataset: Javiksholm, Valonbray, Torbah, Senderfall,
switched to tannery in second dataset: Marleons, Rane, Cez, Avendor, Nal Tar

So there may not be a "best" holding to build every game, it might change game to game and/or based on some factor we are not observing here.
 
I am not good with this sort of stuff. Can you explain to me what you did in simpler terms? What were you testing for? Were you simply trying to find the average profit for each one? How much more testing do you think would be needed to get a confident idea of what is best(how many more weeks)?
 
triplepoint217 said:
That must have been tedious(unless you like it)!

Yes, it was fairly tedious, but I have a cold and a not very well working brain at the moment, so it was kind of a good speed.

I transcribed dantw's larger datasets and reran my analysis I did include the numbers dantw marked as anomously low, since he indicated such events had more of an effect on tanneries than on dyeworks. From this dataset, I show you are better off building:

Dyeworks at: Javiksholm, Valonbray, Ravenstern, Poinsbruk, Torbah, Senderfall, Windholm, Rane

Tannery at: Ethos, Janos, Laria, Sarleon, Marleons, Rane, Singal, Cez, Avendor, Nal Tar, Ishkoman

With some uncertainty about: Valonbray, Laria, Windholm, Singal, Cez (overlap of the 1/2 sigma confidence intervals)
and to a lesser extent: Sarleon, Torbah, Rane, Nal Tar, Ishkoman (overlap of the 1 sigma confidence intervals)

However, the game to game variation appears larger:

Dyeworks in both datasets: Poinsbruk, Ravenstern, Windholm, Rane
Tannery both datasets: Ethos, Janos, Ishkoman, Laria,

Switched to Dyeworks in second dataset: Javiksholm, Valonbray, Torbah, Senderfall,
switched to tannery in second dataset: Marleons, Rane, Cez, Avendor, Nal Tar

So there may not be a "best" holding to build every game, it might change game to game and/or based on some factor we are not observing here.

Is it possible you got dyeworks and tannery mixed up? Wanted to build 3 enterprises according to you in Javiksholm, Marleons and Avendor but noticed the opposite options were far better.
 
spiderman19 said:
triplepoint217 said:
That must have been tedious(unless you like it)!

Yes, it was fairly tedious, but I have a cold and a not very well working brain at the moment, so it was kind of a good speed.

I transcribed dantw's larger datasets and reran my analysis I did include the numbers dantw marked as anomously low, since he indicated such events had more of an effect on tanneries than on dyeworks. From this dataset, I show you are better off building:

Dyeworks at: Javiksholm, Valonbray, Ravenstern, Poinsbruk, Torbah, Senderfall, Windholm, Rane

Tannery at: Ethos, Janos, Laria, Sarleon, Marleons, Rane, Singal, Cez, Avendor, Nal Tar, Ishkoman

With some uncertainty about: Valonbray, Laria, Windholm, Singal, Cez (overlap of the 1/2 sigma confidence intervals)
and to a lesser extent: Sarleon, Torbah, Rane, Nal Tar, Ishkoman (overlap of the 1 sigma confidence intervals)

However, the game to game variation appears larger:

Dyeworks in both datasets: Poinsbruk, Ravenstern, Windholm, Rane
Tannery both datasets: Ethos, Janos, Ishkoman, Laria,

Switched to Dyeworks in second dataset: Javiksholm, Valonbray, Torbah, Senderfall,
switched to tannery in second dataset: Marleons, Rane, Cez, Avendor, Nal Tar

So there may not be a "best" holding to build every game, it might change game to game and/or based on some factor we are not observing here.

Is it possible you got dyeworks and tannery mixed up? Wanted to build 3 enterprises according to you in Javiksholm, Marleons and Avendor but noticed the opposite options were far better.

As I said, I don't know about "sigma confidence intervals" or anything but don't but too much confidence in what the guildmasters think are best(they can even be inaccurate about the week you build them). I personally would prefer something that makes me 600 gold 8 out of 10 weeks but dips down to 400 gold for two of the weeks compared to an enterprise that will consistently make me 500 gold.

I am assuming that each town and its villages(including villages of nearby castles which seem to trade with the nearest town) have some set economy(what the villages produce, etc) that is consistent with every new game. Starting prosperity and temporary shortages MAY vary from game to game(I am not sure) but I think the main variation from game to game is which villages, castles, towns, and caravans(I am not sure how much caravans influence things) get attacked and or taken. I think there is sort of a "butterfly effect" that makes the best enterprise difficult to find in some cases but I don't think it is significant enough to say that one enterprise is better in one game but that the other is better in another game.
 
I don't know about you guys, and I don't know if this will remain but we shall see. The guildmaster in Ethos is projecting a profit of 702 denars for an Oil Press. I am currently at day 33, playing a new game in 3.8.2.
 
GIL said:
Very interesting guys, always wondered if buying all dyeworks was a good idea
For me was, it's has the highest profit of them all, i usually just buy all dyeworks and the income is the best i could get from an enterprise (Since i don't like to manage enterprises, i'm generally too busy with other stuff).
 
Late to this party but very glad I got here. Point to consider in selecting an enterprise is the profit percentage instead of as well as the profit. The guildmaster's wall of text about each enterprise gives you gross income, operating costs, and net profit he expects for the week. Divide the profit by the total operating costs to get a percentage by which the costs of your raw materials or your finished product or some combination of the two have to change before you stop making money. This tells you how robust your profits will be against price fluctuations.

As a decision making aid, I multiply the expected profit by itself, then by this percentage to get a value that reflects both how much money I'll make and how reliably I'll make it. I square the profit because I care more about money than the reliability of money. This saves me the effort you guys are going thru and *SHOULD* produce similar results. So obviously I'm VERY interested to see what results you actually get and test my theory against them.

Sieges and hostiles in the area should cut into the flow of both raw materials in and finished goods out, so the ratio *should* be fairly constant.

EDIT: clarified important bit
 
You dont want percentages because there is only a finite number of enterprises you can invest no matter what.

In the end, only the absolute profit number matters. For ex, a certain enterprise costs 1000 and profits 200. With a ROI of 20%, it is much better than a tannery with 5%. However, as you can only invest in 18 of thosee. Therefore even with a ROI of 20%, you will only get 3600 but with dyeworks ot tanneries you can get 8000-10000 a week. That is the point of this thread.
 
Divide net by total cost. So judge by (net*net*net)/total costs. Net (we want money) * Net (we REALLY want money) * profit margin (we don't want fluctuations in prices changing our money flow).
 
littlesake said:
You don't want percentages because there is only a finite number of enterprises you can invest no matter what.

In the end, only the absolute profit number matters. For ex, a certain enterprise costs 1000 and profits 200. With a ROI of 20%, it is much better than a tannery with 5%. However, as you can only invest in 18 of those. Therefore even with a ROI of 20%, you will only get 3600 but with dyeworks ot tanneries you can get 8000-10000 a week. That is the point of this thread.

That is exactly my reasoning. Even in the short term(before they have paid for themselves), I prefer the best enterprises regardless of the cost to start them. I can have an army of 100 or more elite troops(legionnaires and or armored crossbowmen for example) and still be making money when the time comes to pay their wages(even more if I am employed as a mercenary or have fiefs).  It is nice to be able to buy whatever I have the money for in shops without worrying about looting enough money(and items to sell) before payday. It is also nice to be making 9-10k a week without even having to be focused on making a profit

It doesn't take long to get enough money to have even the most expensive enterprises in each town if you are able to win tournaments(I win tournaments pretty much every time but I am playing where my character takes 1/4 damage and I am sure it is probably more difficult on higher difficulties). The first things I generally do first in a new game is
1. Fight battles as a lone lancer until I have enough renown to participate in tournaments(I think the required renown is around 150)
2. Find tournaments to fight in(go to an arena and ask the arena master where the tournaments are)
3. Fight in those tournaments and bet 500 gold every round(you should win something between 21-22k but subtract 3k from that because you spent 3k on bets).
4. Buy the best enterprises when I get enough money for them.
5. Keep fighting in tournaments and repeating steps 2-5 until I have an enterprise in all 18 cities.

 
Back
Top Bottom