How are rarities calculated for traits?

We have different levels of traits internally, each with a different percent chance of occurring. To keep things simple, imagine there is common, rare, and legendary. Legendary has a 1% chance, rare has a 10% chance, and common is the remaining 89% chance.

For each trait we choose a random value and see which bucket it falls into. However, if you mint with a charitable donation for a +50% chance at rarer traits, we do the following:

Legendary goes from 1% -> 1.5% Rare goes from 10% -> 15% Common is the remainder, going from 89% -> 83.5%

This way rare traits remain rare, but scale up a little bit for charitable donations!