1. A method for progressive betting pools, the method comprising: storing information in memory regarding a plurality of competition-based events, wherein each competition-based event has a plurality of possible outcomes; receiving wagers sent over a communication network from a plurality of client devices, each wager specifying a set of outcomes for a set of competition-based events; receiving information sent over a communication network regarding outcomes of the set of competition-based events; executing instructions stored in memory, wherein execution of the instructions by a processor: determines one or more winners based on the received outcomes and one or more algorithms for ranking the wagers, and calculates payouts in accordance with the determined winners and ranked wagers; and sending a notification to each of the winners regarding the outcomes and calculated payouts.