Is it possible to dynamically calculate rank changes as soon as a game is finished? It would be very much more fun to see immediate progress/regress based on game results, rather than wait for midnight/morning. It might also be lighter for the servers, in that it would require only one set at that instant, rather than multiple sets all at once.
This would be nice but I don't really think that it's lighter on the server. You could leave it the same way and just have it display the exp gain/loss after a game and that would be enough for me (just 1 set operation done daily at the appointed time + n additions).