Currently managing ships' rarity is kind of convoluted:
First there is the Faction Doctrine,
Then the distinction between import and produced hulls,
Then the relative total weight of all the variants for a given ship in a given role,
Then the relative total frequency multiplier of this particular hull in the faction file.
And on top the result depends on the ship Deployment Cost and there is a Fleet Inflater to limit the number of ships to 30.
This is quite obscure to grasp leads to an extreme variability depending on the number of ships added by mod to a same faction. (Pirates are a good example since most factions gives them a bunch of ship).
Ships that were merely uncommon with just vanilla become vanishingly rares in a fully modded game, and the overall system is extremely prone to errors.
I have a few suggestions to make a more consistent system.
First easy improvement: the total weight of the variants shouldn't affect the rarity. It should be normalized, thus removing one multiplier and the most error prone one.
Bandaid fix: Like the variant editor, we could use some "fleet analysis" dev mode menu, looking like the doctrine editor but instead of priorities it shows the effective rarity of ships in fleets.
Proper fix: slice the rarities into different "classes": Common, uncommon (such as XIVth skins) and rare (Hyperion, Tempest, Legion XIVth). Corresponding hints would be added to ship_data.csv, and generated fleets would have some guaranteed uncommon and rare ships depending on the size of that fleet:
Picket fleet would be all common ships,
Large patrols would be 90% common hulls, 10% uncommon with a small chance to have 1 rare ship,
High level bounties would be guaranteed to have 1 uncommon or rare flagship and a bunch of uncommon ones with officers.
Faction multipliers would be kept since they would have a much more controlled effect.