Anything that’s effectively a percentage should be given between 0 and 1 but ideally not capped.
One way to do that is to go to odds instead, where it goes from 0 to infinity, or logaritmic odds going from -infinity to infinity and you can just effectively add or multiply odds as may seem more logical, and then, once you’re done with that, go back to percentages. This would be quite the same as filtering stuff through an s-curve at least in effect.
If you prefer to work directly on percentages, your operations should only be:
p*q (“and”)
1-p (“not”/negation)
p^a for a>0 (weakens a percentage. If used on negation, strengthens instead)
min(p,q) “less likely”
max(p,q) “more likely”
“Or” is actually hard to model with a single percentage. You’d really need distributions for that I think. So you can model how much overlap there is. If two things are independent, “or” would be “+”. However, this only makes sense if the summed percentages sum to at most 1 under all circumstances.
Same for weighted sums.
Anything that may well span many orders of magnitude, such as debt or GDP, probably ought to be displayed logarithmically, not necessarily with a hard upper limit. Though if you prefer to keep the current look, making it an s-curve on final transform for visualization is certainly an option.
It would be kinda cool, though, if the various curves could be made to roughly match the development of actual countries given similar polices. s-curves just aren’t gonna do that.
Internally for calculations, you probably don’t ever want to cap anything unless it explicitly makes sense (can’t have less than 0 or more than #population people, say)
The tech limit stuff depends on food production and medicinal advances mostly, though population today, in developed countries, is kept in check not via such tech limitations, but really via family planning and contraceptives. Food production today is above what’s necessary to feed everybody well and healthily. It’s more a matter of that food reaching the right people than one of producing that food at all. There are big inefficiencies here but the trend is improving. (AFAIK actual starvation has become kinda rare these days, though in lots of poorer countries, stunting is a huge problem. Wherein children don’t outright die, but they get too little food to properly develop, so they will look like six year olds by the time they are like twelve or something)
Really, that’s one of the biggest reasons why adding population mechanics could be really interesting. If you’re going to model an African country, families just look very different there, especially rural ones. Things slowly change and life expectancy goes up and, with some delay, average child count goes down, slowly changing the makeup of the entire population.
And in fact, even developed countries are still in the process of reaching this as yet final stage, which is having implications about how many retired people we are expected to have in the near and farish future, along with the associated costs of pensions and social care.
Depending on where you live, the local age-demographics could look wildly different, and with it come wildly different problems.
Some of that is already somewhat modelled, but I think there could be lots of improvements in that regard.