Could someone check my logic, please? Alex Goodwin (28 Jan 2023 20:11 UTC)
Re: [TML] Could someone check my logic, please? Tom Rux (28 Jan 2023 22:56 UTC)
Re: [TML] Could someone check my logic, please? Rupert Boleyn (28 Jan 2023 23:19 UTC)
Re: [TML] Could someone check my logic, please? Alex Goodwin (29 Jan 2023 08:25 UTC)
Re: [TML] Could someone check my logic, please? Rupert Boleyn (29 Jan 2023 23:25 UTC)

Could someone check my logic, please? Alex Goodwin 28 Jan 2023 20:11 UTC

I was amusing myself with some brute-force-over-underpants simulation of
ISW-era life expectancies (assuming only old age as significant cause of
death), and I wasn't quite expecting what fell out.

I've tripped over my own latent errors enough times before, so I'd
appreciate some help in making sure I haven't outsmarted myself.

The (admittedly very crude) Python I wrote is available on request, or I
can post it in a gist or the like.

Some bits that caused the WTF:

- Baseline late-Ziru Sirka-brand Vilani have a median life expectancy
(from simulation) of 145 years (95% confidence interval 144 - 146 years).

- A Nuskan born in 2090 AD, following the canonical timeline, could
reasonably expect to live to see the rise of the Second Imperium (229
years later).

Median life expectancy (from simulation) is approx 263 years (95%
confidence interval 257 - 271 years).

- A (different, and ethnically-Vilani) Nuskan from a bloodline noted for
longevity, born in 2319 AD (aforementioned rise) has a decent but less
than 50% chance of living to see Twilight fall (428 years after founding
of 2I).

Median life expectancy (from simulation) is approx 406 years (95%
confidence interval 393 - 426 years).

What would the consequences be for Nusku's population (c 3 billion when
the TC moved in during 2162-3) over the next couple of centuries?

A little mechanical background that went into those sims (rolling aging
for 900 characters for each set of circumstances):

As I'm using GURPS 4th ed, the basic task roll is rolling 3d6 and aiming
to get no more than a target number to succeed.  (ie, lower is better).

Natural 3 and 4 are always critical successes, natural 18 is always
critical failure.

Natural 17 is a critical failure if your target number is less than 16,
normal failure otherwise.

Rolling at least 10 higher than your target number is a critical failure.

Natural 5 is a critical success if your target number is 15+.

Natural 6 is a critical success if your target number is 16+.

If you've got this far, rolling above your target number is a regular
failure.  Equal or below your target number is a regular success.

Each simulated person was J Random - all four attributes were 10, no
modifiers to aging roll beyond the medical GTL.

When time catches up to a character and they need to make an aging roll:

For each target attribute, in the following order: ST, DX, IQ, HT:

     Roll the character's HT attribute, with the following mods:

         + (medical GTL - 3)

         +1/+2 if Fit / Very Fit

         -1/-2 if Unfit / Very Unfit

     Critical or regular success leaves the target attribute unchanged.

     Regular (critical) failure reduces the target attribute by 1 (2).

     If an attribute is decreased below 1 by aging, the character has
keeled over from old age.

     Characters with the Longevity advantage treat regular failures on
aging rolls as regular successes, and critical failures on those rolls
as regular ones.

Ziru Sirka aging GTL was 7 throughout the ISW.

United Nations/Terran Confederation aging GTL was 9 up until 2128 AD, 10
up until 2235 AD, and 11 thereafter.

Nusku's aging GTL was 7 until 2163 AD, then followed Terran
Confederation progression thereafter.

Plain old Terrans (for visual reference, check your nearest reflective
surface or take a selfie) make their first aging roll at age 50, then
annually until age 70 (inclusive), every 6 months until age 90
(inclusive), and every 3 months thereafter.

Vilani and early-generation Terrani hybrids double those thresholds and
gaps - first at 100, then every 2 years until 140, yearly until 180, and
every 6 months thereafter.

For ease of implementation, I worked first in "number of aging rolls
until J. Random Poorsod keels over" , then converted that _back_ to an
age of death.

If I haven't borked it, those aging thresholds work out to:

1st threshold - 1 aging roll

2nd threshold - 21 aging rolls

3rd threshold - 61 aging rolls

Inside the thresholds, I linearly interpolated age and rounded down.

Beyond the third threshold, age A backed out from # of aging rolls, R, as:

A = 180 + 0.5 * (R - 61)

I also went the other way to convert aging GTL changes to # of aging
rolls _for a given character_, which then fed into the aging rolls
themselves.

Frinstance, for the above 2090-born Nuskan, they had three medical GTLs
to worry about:

2090: GTL 7

2163: GTL 10

2235: GTL 11

Now reference those off the character's age:

0: GTL 7

73: GTL 10

145: GTL 11

As aging doesn't start until 100 (for Vilani), we can ignore the GTL 7 bitz:

100: GTL 10

145: GTL 11

Finally, converting those to # of aging rolls:

1: GTL 10

21: GTL 10 (age 140 - added for reader reference)

26: GTL 11 (age 145)

Thus, that particular character's 1st thru 25th aging rolls, inclusive,
used an aging GTL of 10, and the 26th and later rolls used GTL 11.

What have I missed and/or goofed?

Alex

--