Here's an idea I've had that would be cool to see, if it can be implemented easily: Add a function to the META website that displays a graph of every player's ELO rating as it fluctuates from day-to-day. This way you can see how you and others are doing over a period of time. Sometimes your current ELO doesn't affect how you have done your whole time playing, and sometimes you just want to look back and see your peaks and valleys. The server would basically "snapshot" every active player's ELO at the start of the day and store it in the database. Then the webpage would query the database for the ELOs and generate a simple graph. As a programmer myself, I imagine the tricky part would simply be interfacing to the database to store a snapshot of each ELO every day. The code to display the graph on the webpage seems like a trivial task.
This is a nice idea, but as you mentioned the tricky part is scraping the ratings. The public API (http://api.cardhunter.com) which META uses doesn't provide any way to bulk access users based on how recently they played, and scraping all 500,000 accounts every day isn't feasible. I wonder though... If I just ran the same algorithm as CH to estimate the ratings would they eventually converge? Hmm.
Or would it be feasible to scrape all the accounts once (maybe during a planned CH server downtime) to seed the ratings and then run the algorithm from that point forward?
Isn't all the info there already? With any match with 1 person in a guild it's already tracked per day and the points earned. So that alone can be put in a graph that tracks points earned for the guild overtime. This would be totally awesome. A lifetime graph would show exactly how good someone is, opposed to a single rating that varies based on meta and "oh I wanna test 500 crappy decks".
Why not just query the rating of every player that shows up in this list once per day? http://api.cardhunter.com//battles?type=RANKED&after_time=(insert yesterday in ISO-8601 format here)