May I suggest 2 more constraints?
1. You need to have non-negative relation points with the minor clan to recruit them as mercenary
2. Running out of money incours a relation penalty of -5 ~ -10 with all mercenary factions the major faction has in its employment.
About 2 : I thought something like this but it is problematic. When this penalty will be applied? For example player’s money reduced to 0, then we will lose relation with minor faction leaders as king? Then our money go up 5K and two days later again reduced to 0. Then we will get a new penalty. This system does not work. Mercenaries get paid from a pool not a direct payment happens. All clans give money to this pool and mercenaries get their payment from that pool. Tributes are similar too. Tributes have their another pool. I am not owner of these codes but there is so complicated payment system currently as reason alternative solution for 2 which is giving a small relation penalty when a payment not happened also not a choice.
Here is what happened in daily ticks for all clans in Battania which left only 1 town and has 4 normal clans and 3 mercenary clans :
fen eingal (day 1)
leader gold begin : 351
debtToKingdom begin : 0
mercenaryShare : -291 (should be payed to pool)
mercenaryWallet : -5620 -> -5329
goldchange at daily payment : 89
debtToKingdom end : 0
fen derngil (day 1)
leader gold begin : 47084
debtToKingdom begin : 0
mercenaryShare : -1776 (should be payed to pool)
mercenaryWallet : -5329 -> -3553
goldchange at daily payment : -898
debtToKingdom end : 0
playerland (day 1)
leader gold begin : 35344
debtToKingdom begin : 0
mercenaryShare : -296 (should be payed to pool)
mercenaryWallet : -3553 -> -3257
goldchange at daily payment : -281
debtToKingdom end : 0
wolfskins (mercenary) (day 1)
leader gold begin : 3123
mercenaryWallet : -3257 -> -4257
goldchange at daily payment : 1000 (mercenary clan took payment from pool)
forest people (mercenary) (day 1)
leader gold begin : 32154
mercenaryWallet : -4257 -> -5190 (mercenary clan took payment from pool)
goldchange at daily payment : 933
fen gruffendoc (day 1)
leader gold begin : 0
debtToKingdom begin : 73502
mercenaryShare : -1000 (should be payed to pool)
mercenaryWallet : -5190 -> -4190
goldchange at daily payment : 0
debtToKingdom end : 74269
fen morcar (day 1)
leader gold begin : 21875
debtToKingdom begin : 0
mercenaryShare : -349 (should be payed to pool)
mercenaryWallet : -4190 -> -3841
goldchange at daily payment : -56
debtToKingdom end : 0
fen eingal (day 2)
leader gold begin : 440
debtToKingdom begin : 0
mercenaryShare : -320 (should be payed to pool)
mercenaryWallet : -3841 -> -3521
goldchange at daily payment : -312
debtToKingdom end : 0
skolderbroda (mercenary) (day 2)
leader gold begin : 1328
mercenaryWallet : -3521 -> -3521 (mercenary clan took payment from pool)
goldchange at daily payment : 0
fen derngil (day 2)
leader gold begin : 46117
debtToKingdom begin : 0
mercenaryShare : -1173 (should be payed to pool)
mercenaryWallet : -3521 -> -2348
goldchange at daily payment : -949
debtToKingdom end : 0
playerland (day 2)
leader gold begin : 25
debtToKingdom : 0
mercenaryShare : -195 (should be payed to pool)
mercenaryWallet : -2348 -> -2153
goldchange at daily payment : -949
debtToKingdom : 178
wolfskins (mercenary) (day 2)
leader gold begin : 2910
mercenaryWallet : -2153 -> -2613 (mercenary clan took payment from pool)
goldchange at daily payment : 460
forest people (mercenary) (day 2)
leader gold begin : 30159
mercenaryWallet : -2613 -> -3453 (mercenary clan took payment from pool)
goldchange at daily payment : 840
fen gruffendoc (day 2)
leader gold begin : 0
debtToKingdom : 74269
mercenaryShare : -627 (should be payed to pool)
mercenaryWallet : -3453 -> -2826
goldchange at daily payment : 0
debtToKingdom : 74829
fen morcar (day 2)
leader gold begin : 20538
debtToKingdom begin : 0
mercenaryShare : -256 (should be payed to pool)
mercenaryWallet : -2826 -> -2570
goldchange at daily payment : -20
debtToKingdom end : 0
fen eingal (day 3)
leader gold begin : 128
debtToKingdom begin : 0
mercenaryShare : -233 (should be payed to pool)
mercenaryWallet : -2570 -> -2337
goldchange at daily payment : 24
debtToKingdom end : 0
skolderbroda (mercenary) (day 3)
leader gold begin : 1208
mercenaryWallet : -2337 -> -2337 (mercenary clan took payment from pool)
goldchange at daily payment : 0
fen derngil (day 3)
leader gold begin : 45168
debtToKingdom begin : 0
mercenaryShare : -849 (should be payed to pool)
mercenaryWallet : -2337 -> -1488
goldchange at daily payment : -722
debtToKingdom end : 0
playerland (day 3)
leader gold begin : 0
debtToKingdom begin : 178
mercenaryShare : -135 (should be payed to pool)
mercenaryWallet : -1488 -> -1353
goldchange at daily payment : 0
debtToKingdom end : 316
wolfskins (mercenary) (day 3)
leader gold begin : 1961
mercenaryWallet : -1353 -> -1813 (mercenary clan took payment from pool)
goldchange at daily payment : 460
forest people left battanians (probably get better offer)
fen gruffendoc (day 3)
leader gold begin : 0
debtToKingdom : 74829
mercenaryShare : -329 (should be payed to pool)
mercenaryWallet : -1813 -> -1484
goldchange at daily payment : 0
debtToKingdom : 75094
fen morcar (day 3)
leader gold begin : 19780
debtToKingdom begin : 0
mercenaryShare : -134 (should be payed to pool)
mercenaryWallet : -1484 -> -1350
goldchange at daily payment : 482
debtToKingdom end : 0