• Welcome to the new COTI server. We've moved the Citizens to a new server. Please let us know in the COTI Website issue forum if you find any problems.
  • We, the systems administration staff, apologize for this unexpected outage of the boards. We have resolved the root cause of the problem and there should be no further disruptions.

Realistic Population Size and Benford's Law

As a general rule, if my gaming requires logarithms, the gaming needs to be adjusted.
That stuff needs to be embedded in the system, so the player- (and preferably also referee-) facing part of it doesn't require terribly complex math.

Optional? Sure!
 
From what I can see, Benford's Law can still generate unrealistic populations.

As everyone knows, Traveller uses 2d6-2 to generate population, and then we have a Thread like this one to discuss how to make the unrealistic populations more realistic. When you consider that in the 1100's many worlds that have the potential to be Ag Worlds or better actually have Lo Pop or that Vacc, De, Atmo A-C, or basically any non Ag or Garden World have a Hi Pop, I ask myself 'why is this messed up?' even though I know they are all random populations.

Personally, I was messing around with the World Trade Balance in T20 awhile ago when I started to realize there were some serious population problems, and that got me to do a lot of thinking and looking in the CotI and Traveller Wiki for answers. Eventually, my solution was to add a few more modifiers to the WTB and to modify the population generator for Ag type and non Ag type planets in the life zone and also for any main worlds that might be in the inner or outer zone. It's still a work in progress...

One thing I've wondered is 'are there enough Ag worlds to feed all of the Hi Pop, Vacc, De, and Toxic Atmo. Worlds?'. In the Imperium.
 
I’ve been looking at various DMs (negative and positive) for size, atmosphere and hydrographics but haven’t produced any results that feel right so far (results ending up being too extreme or you end up with the majority of worlds having zero population or sometimes both).

Given the random generation of UWPs, the possibility of the generation of extremes in various directions shouldn’t be surprising. What results would you like to see? For example, what proportion of worlds in a sector should be garden worlds to have the sector feel right to you?

The reason for establishing a colony would definitely have an impact on the preferred type of world, as would the “sponsor” of the colony. A mining colony would normally be established by a megacorporation and the colonists would be their employees (and families). Colonies established to relieve over-population elsewhere would tend to favour garden worlds.

Yes, that seems reasonable to me.
 
Given the random generation of UWPs, the possibility of the generation of extremes in various directions shouldn’t be surprising. What results would you like to see? For example, what proportion of worlds in a sector should be garden worlds to have the sector feel right to you?
It's not the number/proportion of garden worlds (or worlds of other types), it is the straight-up (2D-2) roll for population regardless of the characteristics of the world that concern me. As things stand, you could have 90 billion people living on a size 1 world but nobody living on the garden world one parsec away, which doesn't really make sense.
 
As a general rule, if my gaming requires logarithms, the gaming needs to be adjusted.
The same applies to my gaming. Sometimes, though, a small corner of game design can be improved with logarithms. Ideally, players or referees would not have to be equipped with a calculator (or an analogous smartphone app) with a “log” button while gaming, which is why converting the logarithm use to dice roll tables for use by players or referees doesn’t require any major adjustment to gaming.

(Just as subtraction is the inverse of addition, and division is the inverse of multiplication, so are logarithms merely the inverse of exponentiation. Exponentiation is used in calculating starship financing; it is only because “standard terms” have a fixed term of 40 years, a fixed monthly payment of 1⁄240 of the cash price, and a total financed price of 220% of the cash price that the exponentiation used to determine the payment amount [and thus the interest rate] is hidden from view.)
 
It's not the number/proportion of garden worlds (or worlds of other types), it is the straight-up (2D-2) roll for population regardless of the characteristics of the world that concern me. As things stand, you could have 90 billion people living on a size 1 world but nobody living on the garden world one parsec away, which doesn't really make sense.
It’s not supposed to make sense. Quite the opposite.

The weird results are intended to be a creativity prod, getting you to look at them and figure out a unique why such strange results.

Story generator not space sim.
 
From what I can see, Benford’s Law can still generate unrealistic populations.

As I’d noted in my first post above, Benford’s Law should not be used to generate populations; its proper scope of use is to determine the most significant digit of the population. That is, it doesn’t determine whether a world has tens of thousands of sophonts or hundreds of millions of sophonts; it determines how many tens of thousands of sophonts or hundreds of millions of sophonts the world has.

One thing I’ve wondered is ‘are there enough Ag worlds to feed all of the Hi Pop, Vacc, De, and Toxic Atmo. Worlds?’. In the Imperium.
I suppose that the technological level of an Ag world would also play a rôle in determining how many sophonts it could feed. Perhaps the long Vilani experience with food processing techniques also increases the amount of food that an Ag planet can provide.
 
It’s not the number/proportion of garden worlds (or worlds of other types), it is the straight-up (2D−2) roll for population regardless of the characteristics of the world that concern me. As things stand, you could have 90 billion people living on a size 1 world but nobody living on the garden world one parsec away, which doesn’t really make sense.
My view aligns with kilemall’s view; coming up with an explanation for unusual results provides flavor to the setting. For example, perhaps the garden world has fungal spores to which the native fauna and flora are well-adapted, but which have killed all non-native would-be colonists to date. If a result seems completely implausible despite a good-faith effort to rationalize it — if the result of 90 billion people on a size 1 world is just too much to swallow — just change the world’s characteristics: exchange its population digit with that of another world, or just replace it with whatever population digit seems best. But be sure to alter its government (and thus law level also), technological index, and trade classifications accordingly. (Keeping track of such population digit exchanges/replacements might give you clues as to how to improve subsequent UWP generation to your taste.)
 
Last edited:
@kilemall and @Kakistocrat

I totally agree that the anomalous results can provide a good excuse to come up with a reason why tiny hell-world X has a population in the 10s of billions when the garden world next door is uninhabited. I'm just thinking along the path of reducing the number of such anomalies.

The spores which would kill non-natives, but which the local fauna (including sophonts) reminds me of Pell in the CJ Cherryh alliance/Union books.
 
I agree with Whartung and Grav_moped making the rules easy to follow (with any logarithms hidden behind the rolls). Also with bookwyrm about how the populations are not so realistic. It's why I had a discussion in the Cepheus General area about making the pop roll be a 1D6 roll, with mods for the settlement level of the area and for the habitability of the world.
But I try to remember that when Marc wrote CT, he wasn't thinking "as realistic as possible"!
 
TIL that you can't edit posts once they have been, errr, posted for more than a few minutes.
The spores which would kill non-natives, but which the local fauna (including sophonts) reminds me of Pell in the CJ Cherryh alliance/Union books.
There's a bit missing from that - it should read:
"The spores which would kill non-natives, but which the local fauna (including sophonts) aren't affected by..."
 
I had a discussion in the Cepheus General area about making the pop roll be a 1D6 roll, with mods for the settlement level of the area and for the habitability of the world.
Thanks for mentioning the existence of your Population variant discussion; I hadn’t previously read it. Your Settlement Level modifier is elegant.

My approach followed a more convoluted route: first, I’d divided the meaning of the 0 population digit into two parts — I’d added a new X population digit, representing a world without sophonts, and narrowed the meaning of the 0 population digit to be between one and nine sophonts. (Thus, an X population digit always has a 0 population modifier, and the population modifier of a 0 population digit world also represents that world’s exact population.) I’d adjusted some of the UWP generation details accordingly; for example, if a population roll with all relevant die modifiers applied results in a negative number, then the world has population X, and a Barren World trade classification now requires population X instead of population 0.

Additionally, before making a population roll, I first make an “unpopulated world” roll: in the default case (which is analogous to your “Core” Settlement Level), if 2 is rolled on two dice, then the world has population X; otherwise, the usual population roll is then made. For less developed subsectors, I’d added negative dice modifiers to the “unpopulated world” roll, so that 3− has to be rolled for an unpopulated world in a “Provincial/Frontier” analogue, and 4− has to be rolled for an unpopulated world in a “Frontier/Wilderness” analogue — my approach has the equivalent of three settlement levels vs. your four. My thought was that settled worlds would be less frequent away from the “core”, representing a sparser population density as the circumference of settlement grew; there could still be sizable population centers generated away from the “core”, but that they’d be farther apart from each other in the peripheries.
 
Last edited:
TIL that you can't edit posts once they have been, errr, posted for more than a few minutes.

There's a bit missing from that — it should read:
“The spores which would kill non-natives, but which the local fauna (including sophonts) aren't affected by…”
No worries — that’s how I’d interpreted the lacuna.
 
Below isn't *exactly* the same distro as Benford's Law; it's close, but more like a discretized version of a Zipf distribution:

Code:
>>> k = sum([1/n for n in range(1,10)])
>>> dict(zip(range(1,10),[f'{1/(n*sum([1/n for n in range(1,10)])):.02f}' for n in range(1,10)]))
{1: '0.35', 2: '0.18', 3: '0.12', 4: '0.09', 5: '0.07', 6: '0.06', 7: '0.05', 8: '0.04', 9: '0.04'}
>>>

I cannot believe I actually spent ten seconds wondering why the distribution didn't include a probability for zero... In a place-value system that goes right to left in increasing magnitude, EVERY number has infinite leading zeros. :🤦:
 
Below isn’t *exactly* the same distro as Benford’s Law; it’s close, but more like a discretized version of a Zipf distribution:

Code:
>>> dict(zip(range(1,10),[f'{1/(n*sum([1/n for n in range(1,10)])):.02f}' for n in range(1,10)]))
{1: '0.35', 2: '0.18', 3: '0.12', 4: '0.09', 5: '0.07', 6: '0.06', 7: '0.05', 8: '0.04', 9: '0.04'}
>>>
That’s a nice, compact use of Python. Using .03f instead of .02f would show that the result for 8 is greater than the result for 9.

Aren’t all Zipf distributions discrete? (I think that Pareto distributions, e.g. the basis of the “80/20 rule”, are the continuous analogues of Zipf distributions.)
 
That’s a nice, compact use of Python. Using .03f instead of .02f would show that the result for 8 is greater than the result for 9.

Aren’t all Zipf distributions discrete? (I think that Pareto distributions, e.g. the basis of the “80/20 rule”, are the continuous analogues of Zipf distributions.)
You're right. Zipf is a discrete analog of the pareto distribution. I had that backwards.

And somehow I pasted the wrong snip. It should have been:
Code:
dict(zip(range(1,10),[f'{1/(n*k):.02f}' for n in range(1,10)]))
That removes repeated computation of the sum of the first list comprehension.
Changing the format specifier to .03f (thanks!):
Code:
{1: '0.353', 2: '0.177', 3: '0.118', 4: '0.088', 5: '0.071', 6: '0.059', 7: '0.050', 8: '0.044', 9: '0.039'}

I'm sure there's a much shorter rakudo on-liner for this. If I were playing code golf, I'd try J or APL.
 
Last edited:
It's not the number/proportion of garden worlds (or worlds of other types), it is the straight-up (2D-2) roll for population regardless of the characteristics of the world that concern me. As things stand, you could have 90 billion people living on a size 1 world but nobody living on the garden world one parsec away, which doesn't really make sense.
I think the ?why? worlds can be based on the idea that moving population is hard, but supporting it is not as hard.

90 billion people didn’t move to a size 1 vacuum world. They were probably born there, and that world probably produces 90% of it’s own nutrients (not food, but nutrients) and has a massive amount of infrastructure including life support. Some people do move to that world, because that’s where the jobs are because that’s where the infrastructure+people are. So the biggest thing that gives a world pop is … its pop. The Hi pop worlds got a pop boost at some point (local boom due to minerals found, local good trade position, favorable sociopolitical climate, etc.) and that propagated forward.


As for supporting all the worlds… the average pop of a standard UWP world is 1.7 billion, Earth is feeding 4+worlds equivalent now, and it’s not completely controlled by farmers. Add in local life support, and I think it’s definitely okay. (although trade disruptions can be disastrous if you have gotten too used to undisrupted trade)


I do think that areas that are truly new to interstellar development should have faster colonization of the garden worlds (easier to do with less infrastructure). However overtime random factors and inertia would take over.
 
It took me longer to create than I’d anticipated, but attached below is a table for how to convert an as-published equal distribution Population Modifier (PM) into its corresponding Benford’s Law PM. Using this table is similar to using the one in my first post above. For this table, look for a world’s existing equal distribution PM in the left-hand column, and refer to its corresponding “Dice roll” column in the same row. For equal distribution PMs of 1, 2, and 4, no roll is needed; just replace it with the Benford’s Law PM in the right-hand column. For the other equal distribution PMs, roll three six-sided dice of different colors; only in a few cases will a second roll be needed. As an example, for a world with an equal distribution PM of 6, if ⚁⚅⚄ were the first roll, then the corresponding replacement PM would be 3, since a second roll wouldn’t be needed; but if ⚂⚃⚀ were the first roll, then a second roll would be needed to determine whether the replacement PM would be 3 or 4.

Note that this table is only valid for converting from an equal distribution PM; it should not be used to convert from any other PM distribution.
 

Attachments

  • equal_to_Benford_PM.png
    equal_to_Benford_PM.png
    85 KB · Views: 5
An interesting and sometimes counterintuitive fact is that population sizes in nature are 30% likely to start with the digit 1. This is called Benford's law (see http://en.wikipedia.org/wiki/Benford's_law ). This law works on the population sizes of countries on Earth (have a look at world population sizes and count how many start with 1 if you don't believe me! You'll see that roughly 30% start with a 1!!!)
It's been a while since math made me giggle....
 
Back
Top