Calculating Political Capital

I’m stumped - how is the amount of political capital that ministers give you per turn calculated? I received messages saying that a minister is unhappy with my policies towards his constituents, but both groups are in the 50%+ approval rating of the job I’m doing. I’ve also got a game (currently) when the religious, environmentalist minister is giving me 6 points per turn, despite the fact that my standing with the religious community is at about 35% (Environmentalists are Fanatically Supportive - 100%). Ministers quitting right before the election have ended more than one game for me, so I’m posting here to try to avoid this problem in the future. Please help me out here…

political capital is based on the loyalty of that minister, but can also be adjusted by how long you have been in power if the ‘political honeymoon’ option is checked. As for the ministers loyalty:
Loyalty for each ministers goes up each turn if they are very happy, or down each turn if they are not. Their happiness is based upon how happy their associated voter groups are. If the happy one is more happy than the unhappy one is unhappy, then there might still be a slight net positive effect, and if that pushes the minister over the right threshold, he will still get more loyal each turn.
Now… to add some slight complexity, each minister has a randomly generated ‘volatility’ which is basically how emotional they are. The really volatile ones are very susceptible to the opinions of their groups, and thus their loyalty will go up (or down) faster each turn.
Theres no way for the player to see the volatility number, you have to guess it by seeing how rapidly their loyalty changes.