For the sake of completeness. I’ve matched the recipients against the PayPal receipts already during Sunday, but would not want to preempt a more comprehensive research.
Everyone fully paid up had been able to vote.
Only one fully paid up member has received the notification of not being able to vote. But also received a vote and voted, so no harm done. The root cause here is that the member in question changed the email address on renewal. To the computer this looked like two distinct people, and that entry had already been reconciled during the election week.
The complainant itself of the AGM has qualified for voting based on their Active Contributor membership. A payment has been made in addition, but would have been too late if not the Active Contributor membership existed anyway before.
In a third case a very active member made a donation of 20 EUR in June but applied for Active Contributor membership in September. Again, by the rules seen strictly not eligible to vote. But from human common sense one could have argued to backdate the membership.
Other cases vary in having paid after the deadline, in having uncommon payment schedules, having some payments declared to be donations, or being 10 GBP or 15 EUR (13.5 GBP) instead of 15 GBP. These all are according to the rules not fully paid-up memberships, notwithstanding that the members might have qualified by active contributorship.
To sum this up: this is a bunch of endless corner cases with no common root cause. I would also go with Simon’s line of thought that we might want to rethink and simplify our rules to reduce the number of possible edge case classes.