Sorry to double-post. If all we have for raw data is the actual battle logs, it'll still be relatively easy to write a script to produce basic usage and lead usage stats. However, these stats won't give movesets, spreads and won't factor in pokemon that were never used in battle. Basically, for each battle, the following will need to be done: Identify the tier and whether the battle was rated. Find all lines beginning with <div class="SendOut"> Identify the name of the trainer and the species of the pokemon sent out (THANK GOD we play with Species clause). This is a bit tricky because the string is different depending on whether the pokemon was nicknamed or not. Remove redundant entries (to account for switching) Write the species of all pokemon used in the battle to a file (write the species name twice if both trainers used it, obviously). Make another script. This one will take that giant file and simply tally each pokemon's usage (doing this step separately, rather than keeping a running tally, prevents racing conditions if you're parallelizing the workload). Sort the usage stats. PROFIT!!! This is an afternoon project, and only because I haven't done much with regular expressions before.