Your rule that is broken here:"The card goes to the person who has the lowest upvote balance, i.e. after payment of the post the lowest comment from top to bottom (how hive.blog shows the comments)."
How? For finding the answer you need to focus on timeline of your post and all comments.
Blockchain data is easily to verify and I am only presenting the most important for this issue:
your post: date created 2020-07-04 21:46:00 ; date payout 2020-07-11 21:46:00
Andree's comment: date created 2020-07-04 22:47:33 ; date payout 2020-07-11 22:47:33
That means that you looked at your contest #5 post after 2020-07-11 22:47:33 (gmt+0) (namely Andree's payout time). Meaning only Andree's comment got paid out by Hive Network, same as your post. The other comments were not yet paid out.
In order to implement your rule you need to
either wait for all comments of your post to be paid out
or to treat all comments equally at the moment of payout of your post (meaning not at the moment you look at your post)
How would be correct to do? That is easily to see in this situation. Fist, notice that some comments were paid out while others are still in different situation. That has happened because you did not look at your post at the time of its payout, but some time later. Hovering over Andree's comment you can see it is paid out and it is the last in the list of comments. Find the first comment above that is not paid out, here it is Miloshpro. Now all it takes is to compare the two comments by the means of hiveblocks.com and read their net_rshares, in order to treat them equally according to your rule. I find it simple by replacing peakd.com (or hive.blog) with hiveblocks.com in your browser address bar.
https://hiveblocks.com/splinterlands/@miloshpro/re-wer-gewinnt-qd9gqh
https://hiveblocks.com/splinterlands/@ynwa.andree/re-wer-gewinnt-202075t04732167z
Cheers!
RE: Winner of Splinterlands Giveaway / Upvote Contest #5 - Gewinner des Spinterlands Geschenk und Upvote-Wettbewerb #5