The present disclosure relates to proposition bets, and in particular, systems and methods for processing customized proposition bets, including automatically generating proposition bet odds and verifying bet results.
In most contexts, “proposition bet” denotes a bet made regarding the occurrence or non-occurrence during a game (usually a gambling game) of a performance condition not directly indicative of the game's final outcome. Proposition bets in sports are differentiated from the general bets for or against a particular team or contestant prevailing in a game/contest/match or regarding the total number of points scored. Traditionally, proposition bets can be made on performance conditions such as the number of strikeouts a pitcher will accumulate in a baseball game, whether a non-offensive player will score in an American football game, or which team will score the first points of the game.
The disclosed proposition betting system allows a user to create his or her own customized proposition bet on a wide range of individual performances (i.e., performance conditions) that may occur during an event, such as a sporting event, automatically generates the odds to offer the user for the customized bet, and then automatically verifies the results of the bet as soon as the outcome can be determined, e.g., without necessarily waiting until the underlying event concludes.
Example embodiments according to the apparatuses, systems and methods described herein may receive, at a first network connected device, data containing user-defined terms for a proposition bet, wherein the user-defined terms predict an outcome for the proposition bet. The user-defined terms may take the form of a performance condition for a proposition bet customized by a user; wherein the performance condition predicts an outcome for the proposition bet. A database is queried to retrieve historical data associated with the user defined terms for the proposition bet. The historical data is processed to generate odds that the user defined terms correctly predict the outcome for the proposition bet. The odds are transmitted to a second network connected device for acceptance or rejection by the user.
With reference made to
A proposition bet or “prop bet” is a bet relating to an occurrence or non-occurrence of some performance condition during an event. For example, during a sporting event, a “prop bet” may relate to the occurrence or non-occurrence of a statistical performance of one of the players or a comparative statistical performance of two or more players, without direct regard to the sporting event's final outcome. In the context of an awards show, a “prop bet” may include a prediction of the occurrence or non-occurrence of a performance condition other than the ultimate winner of a particular category. Furthermore, a “prop bet” can span multiple related or unrelated performance conditions. For example, a “prop bet” may include predicting a number of points scored by a player over a series of games, regardless of the actual outcome of any one of the games.
User interface 110 of the system enables the user to construct customized proposition bets. By way of a non-limiting example in the context of sporting events, the user can select a particular sport such as football (e.g., the National Football League), basketball (e.g., the National Basketball Association), hockey (e.g., the National Hockey League), soccer (e.g., the English Premier League or Major League Soccer), and baseball (e.g., Major League Baseball).
To select one or more players whose statistics will form the basis of the prop bet, the system may present a player selection console that enables the user to browse by event, position, or keyword search (which will be described in greater detail below with reference to
To further construct the customer prop bet, the system may also present the user with one or more “bet builder” consoles that display bet customization choices (which will be described in greater detail below with reference to
For sports where players are categorized by position and statistics that are position specific (e.g., the NFL), the system will map statistics and make only the relevant ones available based on the player selected. In this context, if a quarterback is selected first, for example, only quarterback players will be available for selection as either a combined or head-to-head bet. Input values may also have min/max validations based on the statistic selected.
The system includes a database of information 115, including teams, players, sporting events, rosters of players, statistical categories, etc., that support generation of the display screens of user interface 110 for constructing the prop bet. Database 115 also stores bets created via user interface 110, as well as information used to verify the bets (as described in greater detail with reference to
Application programing interface (API) 120 serves as an interface between user interface 110 and backend elements, such as database 115. For example, API 120 populates the fields of user interface 110 through one or more function calls that retrieve data from database 115 for display and use at user interface 110. Furthermore, once a bet is created through, for example, a player selection console and a bet builder console, API 120 communicates the user's desired bet to the necessary backend systems, as will be described in greater detail below with reference to
API 120 also generates odds in real time (i.e., near instantaneous odds generation) and presents the odds to the user once the parameters of the prop bet have been entered by the user. Based on the constructed prop bet, API 120 generates a “predicted” score for the player for a specific statistic. This score computation is performed by analyzing the player's historical statistical performance. For example, data illustrating the player's historical performances may be retrieved from database 115. According to one approach, a “weighted average” is computed from the retrieved data that takes into account the players most recent N games played, where N is a positive integer. For in-play odds generation, the methodology can be modified by analyzing current performance during the match and then using that same player's historical data to attempt to predict what score the player will achieve by some later point or by the end of the sporting event.
Next, using the same historical data set, API 120 may calculate the standard deviation of the player's statistical performance. Thus, a mean and standard deviation model of the player's expected performance for the selected statistic can be constructed from past performance data.
API 120 then applies a calculation methodology to determine the probability of the player achieving the selected numeric value of the prop bet statistic based on the player's expected performance model (e.g., ±1 unit greater than the expected value, ±2 units greater than the expected value, etc.). This probability may then be used to set the odds for the numeric value of the performance statistic selected by the user. Once calculated, the odds are transferred from API 120 to user interface 110, where the user has the option of accepting or declining the odds and bet.
Through the use of API 120, and the real-time odds/probability generation it provides, a system as illustrated in
In addition to generating odds for user-defined prop bets, API 120 may also be used to provide other services. For example, instead of generating odds for user defined bets, API 120 may be used to generate odds for predetermined packages of bet “markets.” For example, a bet market may be a package of pre-generated bets based upon the quarterback play of Tom Brady. Accordingly, API 120 may be programed to generate odds for Tom Brady at different levels of play, to generate the following market:
Such a market may then be presented to users as part of user interface 110, allowing users to select one or more of the pre-calculated bets. Similarly, the bet markets may be provided to sportsbooks and casinos to allow their customer to accept the bets (e.g., via a data feed).
In order to ensure up-to-date data in database 115, network controller 125 is used to populate and manage the data contained in database 115. As will be described in greater detail with reference to
System 100, through network controller 125, may also provide bet verification. As used herein, bet verification is the process of determining the outcome of the bet, i.e., is the user a winner or loser of his or her bet. The present disclosure provides for different types of bet verification, including “aggressive” bet verification in which the outcome of a prop bet (win or lose) can be determined as soon as the bet conditions are definitively met or not met, without necessarily having to wait for the sporting event itself to conclude. The bet verification process performed by the system is summarized as follows, with a more detailed explanation provided below with reference to
An external data provider 130, such as a statistics provider, maintains a real time or near real time database of performance statistics for all sporting events from which prop bets can be created. Network controller 125 maps the sporting fixture with dates and time, allowing network controller 125 to know when to start querying the statistics provider for updated statistic files. Periodically (intervals controlled through configuration), network controller 125 queries data provider 130, and parses the statistical information into database 115. Each sport has its own nuances in terms of how network controller 125 parses the data.
Network controller 125 periodically runs a process to determine whether any bets may be verified using parsed data. This process is essentially performed by comparing the customized bet condition (i.e., performance condition) and statistical performance hurdle with the live player statistical value parsed by the system. If an outcome can be determined from this comparison, then the bet is automatically verified at that point in time, resulting in bets being verified during live sporting events as play unfolds.
At the completion of a sporting event, network controller 125 waits for final “box score” files to come through from data provider 130 to resolve all remaining bets. These residual bets are for scenarios where a player, for example, has scored “0” which means the system then needs to determine whether the player did not play (bet marked as “Void”) or played but didn't score (marked as win/loss depending on bet condition).
Also included in system 100 is network 132 through which API 120 is connected to sportsbook API 135, and accounting system 140. API 120 may be configured to communicate with sportsbook API 135 via network 132 so that the sportsbook associated with sportsbook API 135 may be made aware of the current status of bets being made by users through user interface 110. Similarly, a casino sportsbook may utilize the odds generation functions of API 120 and or the bet verification functions of network controller 125. In order to access this functionality, sportsbook API 135 communicates with API 120 over network 132. API 120 may also communicate with sportsbook API 135 in order to communicate pre-packaged bet markets, as described above. Accounting system 140 may provide administrative functions, system settings, and accounting of sports book bet activity for API 120.
With reference made to
According to the example of
With reference now made to
As shown, bet builder console 300 in this example displays the selected player(s) 305 and sporting event(s) 310, which may have been selected in a player selection console, such as player selection console 200 of
With reference now made to
With the user interface populated by the get calls of operations 410-418, the user actions and consistency checks regarding the user actions are performed through operations 420-450. Operations 420, 422 and 424 are operations performed by the user interface to determine whether optional functions within the user interface have been performed. Specifically, operation 420 determines whether the user has elected to use a player position filter, such as player position filter 220 of
Operation 426 determines whether the user has selected a player to associate with his or her bet. Similarly, in operation 428, it is determined whether or not a bet type has been selected. Related to the selection of a player in operation 426 and bet type in operation 428, operations 430 and 432 determine if a second player is selected for specific types of bets. In operation 430, it is determined whether or not a second player has been selected for a bet that relies on the combined statistics for the two or more players. In operation 432, it is determined whether a second player has been selected for a bet that is based upon the head-to-head performance of two different players.
Operations 434 and 436 determine whether the specific statistic (e.g., “shots on goal,” “number of points,” etc.), and the condition (“greater than, “less than,” etc.) have been selected, respectively. Operations 438 and 440, on the other hand, ensure that the user's value associated with the statistic has been entered (operation 438) and that the value meets certain criteria, such as being above certain minimum values or below certain maximum values (operation 440). Operations 438 and 440 may sometimes be skipped, such as for a head-to-head bet, when the relatively performance of two players is compared regardless of the actual values the players achieve.
In operation 442 it is determined whether or not odds are available for the bet based upon the criteria selected in operations 426-440. If odds are available, they are displayed to the user through, for example, generated odds portion 330 of
In operation 444, the user accepts the odds through, for example, selection of create bet button 345 of
If the user would like to make further bets, operation 446 returns the process to operation 420, and the process repeats until the user has finished making bets. Once the user has finished making bets, the user indicates that the bets should be placed through operation 448. Finally, in operation 450, the user provides a confirmation that the bet should be placed. The confirmation provided by the user may take the form of an additional user interface console, such as the bet confirmation screen illustrated in
As illustrated in operation 452, the API POST initiated in operation 450 initiates a bet create request in, for example, API 120 of
With reference now made to
With reference now made to
Once the data is parsed, parsers 715 and 720 send the raw parsed data to data mapper 725. Data mapper 725 converts or maps the data from the format received from parsers 715 and 720 into a format that can be used by database 115. For example, data mapper 725 maps the unique identifiers used in the data files as received from a data source (such as data provider 130 of
With reference now made to
As described herein, aggressive bet verification represents an improvement over existing bet verification techniques. Specifically, the aggressive bet verification as described herein provides improved speed and accuracy of the bet verification. For example, the techniques described herein allow for aggressive bet verification that compensates for potential statistical discrepancies that may exist from data received from a data provider.
First, assuming that the event upon which the bet is based has completed, the bet will undergo bet verification process 820. Bet verification process 820 begins in operation 830 where it is determined whether there is an outcome available for the bet. There may be instances where there is no outcome available for a bet even though the event upon which the bet is based has completed. For example, if the type of bet is a single player statistic bet, there will be no outcome for the bet if the player has no record of participating in the game. On the other hand, if the bet type is a player combined statistic, then there will be no outcome for the bet if either or both of the players associated with the bet has no record of participating in the game. Furthermore, if the bet is a head-to-head bet, then there will be no outcome to the bet if either or both players have no record of participating in the game. If there is no outcome for a particular bet, the bet is voided in operation 835. When a bet is voided, the wager associated with the bet may be returned to the user's account in, for example, accounting system 140 of
If there is an outcome to the bet, bet verification process 820 continues to operation 832 where the bet is verified as a win or a loss for the user. For example, the bet can be verified as a win for the user if the following conditions are met:
When a bet is verified as a win, winnings are calculated for the bet in 833. Calculating the winnings may include, for example, multiplying the wager associated with the bet by the odds or offer associated with the bet. The results of the win calculation are then used to update a user's account through, for example, accounting system 140 of
On the other hand, the bet may be verified as a loss for the user if, for example, the following conditions are met:
When a bet is verified as a loss, a user's account in, for example, accounting system 140 of
Returning to operation 815, if it is assumed that the event upon which the bet is based has not completed, the bet will undergo aggressive bet verification process 825. Aggressive bet verification begins in operation 840 where it is determined whether or not there is an outcome for a bet. Operation 840 may include running a process that queries database 115 for results which were parsed and stored in database 115. Operation specific 840 may then apply specific logic to compare the current statistical values associated with the bet against those indicated in the bet. For example, a bet is ready to be verified:
If the result is not available, the bet is returned to bet queue 805 in operation 845. If the result is available, the bet is marked as ready to be verified in operation 850. In operation 855, the process may wait a predetermined time interval, and verify again that the result is still available before performing the final verification. The waiting period of operation 855 may be used to avoid relying on any potential statistical discrepancies that may have existed from the data provider the first time the system downloads and parses the data. Accordingly, the waiting time for operation 855 may be set to be long enough for corrections to occur before finalizing the bet verification. According to some examples, the waiting time of operation 855 may be based upon the schedule of queue controller 605 of
Utilizing the predetermined time interval and re-verifying the results of a bet (e.g., as discussed in reference to operation 855 above) presents a technical problem that has no analog in the brick-and-mortar world. Furthermore, utilizing the predetermined time interval and re-verifying the results of a bet solves a problem that is necessarily rooted in computer technology, and addresses a problem uniquely arising in the realm of computer technology. Specifically, the use of the predetermined time interval addresses potential statistical discrepancies that may have existed from the data provider the first time the system downloads and parses the data, a problem introduced through the use of computer-verified bets, for which there is no analogue outside the realm of computer technology.
According to some example embodiments, aggressive bet verification may be limited to specific scenarios, including:
Upon determining whether or not the bet is a win or a loss, further steps may be taken by network controlled 125, including notifying the user through an API, such as API 120 of
With reference now made to
The process of flowchart 900 begins in operation 910 where data containing user-defined terms for a proposition bet are received at a first network connected device. The user-defined terms predict an outcome for the proposition bet. The user-defined terms may take the form of a performance condition for a proposition bet, where the performance condition has been customized by the user. Furthermore, the performance condition may predict the outcome for the proposition bet.
In operation 920, a database is queried to retrieve historical data associated with the user-defined terms for the proposition bet. For example, if the user-defined terms predict an outcome based upon a statistical performance of a particular player in an athletic competition, the database may be queried to retrieve historical data for that player with values associated with the statistical performance. According to one specific example, if the user-defined terms predict that “Player A” will pass for “X” yards in an upcoming NFL game, the database may be queried for Player A's previous passing stats in one or more NFL games. The user-defined terms may be the performance condition for the proposition bet, as described with reference to operation 910.
In operation 930, the historical data is processed to generate odds that the user-defined terms (e.g., the performance condition customized by the user) correctly predict the outcome for the proposition bet. For example, operation 930 may process the historical data as described above with reference to
With reference made to
The computer system 1001 further includes a read only memory (ROM) 1005 or other static storage device (e.g., programmable ROM (PROM), erasable PROM (EPROM), and electrically erasable PROM (EEPROM)) coupled to the bus 1002 for storing static information and instructions for the processor 1003.
The computer system 1001 also includes a disk controller 1006 coupled to the bus 1002 to control one or more storage devices for storing information and instructions, such as a magnetic hard disk 1007, and a removable media drive 1008 (e.g., floppy disk drive, read-only compact disc drive, read/write compact disc drive, compact disc jukebox, tape drive, and removable magneto-optical drive). The storage devices may be added to the computer system 1001 using an appropriate device interface (e.g., small computer system interface (SCSI), integrated device electronics (IDE), enhanced-IDE (E-IDE), direct memory access (DMA), or ultra-DMA).
The computer system 1001 may also include special purpose logic devices (e.g., application specific integrated circuits (ASICs)) or configurable logic devices (e.g., simple programmable logic devices (SPLDs), complex programmable logic devices (CPLDs), and field programmable gate arrays (FPGAs)), that, in addition to microprocessors and digital signal processors may individually, or collectively, are types of processing circuitry. The processing circuitry may be located in one device or distributed across multiple devices.
The computer system 1001 may also include a display controller 1009 coupled to the bus 1002 to control a display 1010, such as a cathode ray tube (CRT) or a light emitting diode (LED) display, for displaying information to a computer user. The computer system 1001 includes input devices, such as a keyboard 1011 and a pointing device 1012, for interacting with a computer user and providing information to the processor 1003. The pointing device 1012, for example, may be a mouse, a trackball, or a pointing stick for communicating direction information and command selections to the processor 1003 and for controlling cursor movement on the display 1010. The pointing device 1012 may also be incorporated into the display device as, for example, a capacitive touchscreen and/or a resistive touchscreen. In addition, a printer may provide printed listings of data stored and/or generated by the computer system 1001.
The computer system 1001 performs a portion or all of the processing steps of the invention in response to the processor 1003 executing one or more sequences of one or more instructions contained in a memory, such as the main memory 1004. Such instructions may be read into the main memory 1004 from another computer readable medium, such as a hard disk 1007 or a removable media drive 1008. One or more processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in main memory 1004. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions. Thus, embodiments are not limited to any specific combination of hardware circuitry and software.
As stated above, the computer system 1001 includes at least one computer readable medium or memory for holding instructions programmed according to the embodiments presented, for containing data structures, tables, records, or other data described herein. Examples of computer readable media are compact discs, hard disks, floppy disks, tape, magneto-optical disks, PROMs (EPROM, EEPROM, flash EPROM), DRAM, SRAM, SD RAM, or any other magnetic medium, compact discs (e.g., CD-ROM), or any other optical medium, punch cards, paper tape, or other physical medium with patterns of holes, or any other medium from which a computer can read.
Stored on any one or on a combination of non-transitory computer readable storage media, embodiments presented herein include software for controlling the computer system 1001, for driving a device or devices for implementing the invention, and for enabling the computer system 1001 to interact with a human user (e.g., print production personnel). Such software may include, but is not limited to, device drivers, operating systems, development tools, and applications software. Such computer readable storage media further includes a computer program product for performing all or a portion (if processing is distributed) of the processing presented herein.
The computer code devices may be any interpretable or executable code mechanism, including but not limited to scripts, interpretable programs, dynamic link libraries (DLLs), Java classes, and complete executable programs. Moreover, parts of the processing may be distributed for better performance, reliability, and/or cost.
The computer system 1001 also includes a communication interface 1013 coupled to the bus 1002. The communication interface 1013 provides a two-way data communication coupling to a network link 1014 that is connected to, for example, a local area network (LAN) 1015, or to another communications network 1016 such as the Internet. For example, the communication interface 1013 may be a wired or wireless network interface card to attach to any packet switched (wired or wireless) LAN. As another example, the communication interface 1013 may be an asymmetrical digital subscriber line (ADSL) card, an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of communications line. Wireless links may also be implemented. In any such implementation, the communication interface 1013 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
The network link 1014 typically provides data communication through one or more networks to other data devices. For example, the network link 1014 may provide a connection to another computer through a local are network 1015 (e.g., a LAN) or through equipment operated by a service provider, which provides communication services through a communications network 1016. The local network 1014 and the communications network 1016 use, for example, electrical, electromagnetic, or optical signals that carry digital data streams, and the associated physical layer (e.g., CAT 5 cable, coaxial cable, optical fiber, etc.). The signals through the various networks and the signals on the network link 1014 and through the communication interface 1013, which carry the digital data to and from the computer system 1001 maybe implemented in baseband signals, or carrier wave based signals. The baseband signals convey the digital data as unmodulated electrical pulses that are descriptive of a stream of digital data bits, where the term “bits” is to be construed broadly to mean symbol, where each symbol conveys at least one or more information bits. The digital data may also be used to modulate a carrier wave, such as with amplitude, phase and/or frequency shift keyed signals that are propagated over a conductive media, or transmitted as electromagnetic waves through a propagation medium. Thus, the digital data may be sent as unmodulated baseband data through a “wired” communication channel and/or sent within a predetermined frequency band, different than baseband, by modulating a carrier wave. The computer system 1001 can transmit and receive data, including program code, through the network(s) 1015 and 1016, the network link 1014 and the communication interface 1013. Moreover, the network link 1014 may provide a connection through a LAN 1015 to a mobile device 1017 such as a personal digital assistant (PDA) laptop computer, or cellular telephone.
The above description is intended by way of example only.
Number | Date | Country | |
---|---|---|---|
62257037 | Nov 2015 | US |