I'd say that the Droop Quota isn't very good when the quota is so small.
I agree, I'm not allocating seats in a real life election so this is just purely theoretical.
A more realistic quota for most elections would be in the thousands, so rounding up to the next integer would be a very small percentage difference. I think this is largely where the problem stems from.
So that's the core reason, makes sense to me.
But if we're going with 4 as the quota anyway, I think we're just minimising the amount over quota they go. So we have the following seats "owed" to each party:
That's pretty smart. This is the algorithm as I understand it:
If there are still seats remaining to elect, award seats to the party with the smallest difference between seats won and "party quota" (seats_won - votes / quota). Repeat until all seats filled
(For simplicity I'm breaking ties in favour of the first party)
So my example would start from the automatic seats [5, 6, 12]. Award seats based on the largest remainders method as usual, stopping when all parties has been awarded a seat: [6, 6, 12], [6, 6, 13], [6, 7, 13].
The remaining 4 seats would be filled like this
[7, 7, 13], [7, 7, 14], [7, 8, 14], [8, 8, 14]
Thank you very much for the help!