I’ve created a GM script to check for leachers in Ikariam, based on a script that i found on this page, but that didn’t suit me. It basically colors the players according to their leecher’s status. If they’ve given far enough they are green, if they have given enough, but just above the limit, they are blue, if they have given just under the limit, they are orange, and if they are leechers they are red (the original script uses green/orange/blue/red instead of green/blue/orange/red).
The script itself can be found there, and here are some explanations about how it operates:
Ideal scenario
If there are 16 players, all having the max number of workers (normally
paid workers, not above the limit workers)
 To have the right to use full power of the quarry/sawmill, each worker should have given at least one 16th of the amount of necessary wood donation.
 Over paid workers (above the limit, possible with research), should not be taken in account, they are personnal bonus.
 City lvl shouldn’t be taken in account. A new player on the island, even if its town hall is level 1 or 2, should be considered a leecher if he has max workers producing, with no donation.
 If a player has multiple cities on an island, we should consider that each of the cities has given the total amount divided by the number of cities, and that the number of workers per city is the sum of all “regular” workers divided by the number of cities. Once again, we should not consider “overpaid” workers
More realistic scenario
But what if not everyone uses max number of workers?
 If a city has only 50 workers in the sawmill and the maximum is 290, there is no reason this player should pay as much as the other players.
 The player should donate enough to be able to produce that much, as if he used the sawmill fully. If donation A gives the ability to have 45 workers in the sawmill, and donation B gives the ability to have 60 workers in a normal case, the player should give at least B not to be considered a leecher.
Even more realistic and complex scenario
Usually the case is complex, with some players using full number of
workers, some using less.
 Consider the following case: 16 players, 5 using full production A, 7 using another production level B, 4 using another even lower production level C.

We go from bottom to top, considering first what the four lowest players (C) should have donated:

I just consider that there are 16 workers at the C level, and the counting is as usual (each of the 4 players should have donated 1/16th of necessary donation for level C).
 Then we consider the 7 middle workers:
 There are 12 players left to take in account. I take the amount of donation it takes to get to production level B, I substact the amount of donation that the four lower players have given, and I divide the result by 12. That’s the 100% for those 7 players.
 Now for the remaining players:
 There are 5 of them and we use the same algorithm as before. Each of them should donate one fifth of the necessary donation to get to full A production minus what the other players have been donating.
The algorithm should be flexible enough so it is adapted to every possible case. Note that I consider what lower players have given if they have given more than needed, and the minimum they should have given, if they’ve given less.
How to take in account the fact that some players are new on the
island?
I think we can simply use the levels of the cities’ town halls, by
applying a simple ratio between max level on the island and self level.
For example, if max player is level 18, and another player is level 9,
he should have to give only half of what he would have been supposed to
donate (hmmm, is this sentence confusing?).
What if there are not 16 players on the island?
Required donation in this case should simply be multiplied by
16/(number of players), it seems fair to me so nothing more complex is needed.
Other thoughts:
 This is sad for players who are very efficient on an island where everyone isn’t, they will have to invest way more. We can’t however blame the other players, it’s just bad luck.
 Same sadness for players who are investing on an island with only 4 or 5 cities.
 If a player gave a lot, then disapeared (inactive user, or else), there is no way to take this situation in account, and some players might be considered as leechers but aren’t. I don’t know how to deal with this scenario.
 Players should be asked to allways be above the 110% rate, it means that they are allready investing for the futur. 100 to 110% players are in their right, but they are not investing in advance, they are relying on generous players. 90100% players are leechers, but they should only be warned that they are leeching and that they may get under the 90% limit upon next upgrade. Under 90% players are real leechers, so they must be asked to invest quickly, then punished if they don’t do so.