U.S. patent application number 13/223995 was filed with the patent office on 2012-03-08 for dynamic betting system, method and computer program product.
This patent application is currently assigned to ParkLabs GmbH. Invention is credited to Aleksandar Ivanov.
Application Number | 20120058815 13/223995 |
Document ID | / |
Family ID | 44898065 |
Filed Date | 2012-03-08 |
United States Patent
Application |
20120058815 |
Kind Code |
A1 |
Ivanov; Aleksandar |
March 8, 2012 |
DYNAMIC BETTING SYSTEM, METHOD AND COMPUTER PROGRAM PRODUCT
Abstract
A dynamic betting valuator system, method and computer program
product which enables bettors to make, withdraw, and
increase/decrease the stake of bets on the outcome of particular
events at any time is disclosed. Specialized stock and stock
pricing mechanisms are applied in a betting context to create the
dynamic betting valuator. The systems, methods and computer program
product treat the placing of a bet by a bettor as a purchase of
shares in that particular outcome for the particular event. Each
potential outcome for a given event has an associated "outcome
stock" in which players are buying shares. Each bet amount on a
certain outcome is converted into a number of shares of that
outcome stock. A bettor may change his bet, i.e. have the computer
program product sell shares in a particular outcome stock, prior to
the event taking place, potentially making a profit from the bet
despite the outcome not yet having been determined.
Inventors: |
Ivanov; Aleksandar; (Berlin,
DE) |
Assignee: |
ParkLabs GmbH
Berlin
DE
|
Family ID: |
44898065 |
Appl. No.: |
13/223995 |
Filed: |
September 1, 2011 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61379978 |
Sep 3, 2010 |
|
|
|
Current U.S.
Class: |
463/25 |
Current CPC
Class: |
G06Q 50/34 20130101;
G06Q 30/00 20130101; G07F 17/3288 20130101; G07F 17/32
20130101 |
Class at
Publication: |
463/25 |
International
Class: |
A63F 9/24 20060101
A63F009/24 |
Claims
1. A method for dynamic betting, comprising the steps of:
identifying one or more events and at least two possible outcomes
for each of said identified one or more events; setting initial
odds for each possible outcome of said identified one or more
events; presenting to a plurality of users, each user having an
account, information indicating said identified one or more events,
the possible outcomes of said identified one or more events, and
the associated odds for each possible outcome; receiving a
selection of an event by a user; receiving a selection of a
possible outcome of said selected event by said user; receiving an
indication of a desired stake in the selected possible outcome of
said selected event from said user; determining a first value that
indicates the value of the user's desired stake in the selected
possible outcome of said selected event; determining a second value
that indicates the value of the user's initial stake in the
selected possible outcome of said selected event; determining a
difference between said first and second values; providing a first
update to the user's account to reflect a current stake in the
selected possible outcome of said selected event based on said
difference; determining current odds for the selected possible
outcome of said selected event; identifying the actual outcome of
said selected event; and providing a second update to the user's
account based on said current stake, said current odds, and said
actual outcome.
2. The method of claim 1, wherein the step of updating the user's
account further comprises: updating a quantity of the user's free
cash according to: FC.sub.i,g,t=FC.sub.i,g,t-1-D.sub.i,g wherein
FC.sub.i,g,t is the user's current free cash, FC.sub.i,g,t-1 is the
user's initial free cash, and D.sub.i,g represents said difference
between the value of user's desired and initial stakes in the
possible outcome of the event.
3. The method of claim 1, wherein said desired stake, initial
stake, and current stake are quantities of shares in the possible
outcome of said event in a dynamic betting marketplace and there is
a total number of outstanding shares associated with said possible
outcome in the dynamic betting marketplace.
4. The method of claim 3, wherein the step of updating the user's
account further comprises: updating the quantity of the user's
current shares in the outcome of said event according to:
u.sub.i,g,t-u.sub.i,g,t-1+k.sub.i,g. wherein u.sub.i,g,t is the
user's current quantity of shares in the possible outcome,
u.sub.i,g,t-1 is the user's initial quantity of shares in the
possible outcome, and k.sub.i,g represents a change in the total
number of outstanding shares for the possible outcome of said event
based on said first update.
5. The method of claim 3, further comprising: determining the
current value of a number of shares (u.sub.i) for a possible
outcome of an event according to: CV i ( u i , v , B ) = B ln ( exp
v i - u i B + j .noteq. i exp ( v j B ) ) - B ln ( exp v i B + j
.noteq. i exp ( v j B ) ) . ##EQU00005## wherein v is a market
state, and B is a liquidity parameter.
6. The method of claim 3, further comprising: determining a price
(p.sub.i) for a share of the possible outcome of said event
according to: p i ( v , B ) = exp ( v i B ) exp ( v i B ) + j
.noteq. i exp ( v i B ) , ##EQU00006## wherein v indicates the
number of shares in the possible outcome of said event that are
owned by users and B is a liquidity parameter.
7. The method of claim 1, wherein at least one of the user's
desired stake, initial stake, or current stake is expressed as an
amount of a currency unit.
8. The method of claim 7, wherein there is a total number of
outstanding shares associated with said possible outcome in a
dynamic betting marketplace, the method further comprising:
converting at least one of the user's desired stake, initial stake,
or current stake into a number of shares of the outcome of said
event.
9. The method of claim 8, wherein the converting step is
accomplished according to: k i ( v , W , B ) = B ln ( exp ( D B +
ln ( exp ( v i B ) + j .noteq. 1 exp ( v j B ) ) ) - j .noteq. i
exp ( v j B ) ) - v i . ##EQU00007## wherein D is amount of said
desired stake, B is a liquidity factor, and v is a number of shares
associated with the outcome of said event.
10. The method of claim 1, further comprising: identifying each
user having a current stake in the outcome of said event, wherein
said current stake is a quantity of shares in the possible outcome
of said event associated with the account of each of said
identified users; updating the account of each user based on said
current stake, said current odds, and said actual outcome; and
removing all shares of said outcome for said event from each user's
account.
11. A system for providing a dynamic betting marketplace,
comprising: a database storing accounts for a plurality of users;
and one or more servers configured to: identify one or more events
and at least two possible outcomes for each of said identified one
or more events; set initial odds for each possible outcome of said
identified one or more events; present to the plurality of users
information indicating said identified one or more events, the
possible outcomes of said identified one or more events, and the
associated odds for each possible outcome; receive a selection of
an event by a user; receive a selection of a possible outcome of
said selected event by said user; receive an indication of a
desired stake in the selected possible outcome of said selected
event from said user; determine a first value that indicates the
value of the user's desired stake in the selected possible outcome
of said selected event; determine a second value that indicates the
value of the user's initial stake in the selected possible outcome
of said selected event; determine a difference between said first
and second values; provide a first update to the user's account to
reflect a current stake in the selected possible outcome of said
selected event based on said difference; determine current odds for
the selected possible outcome of said selected event; identify the
actual outcome of said selected event; and provide a second update
to the user's account based on said current stake, said current
odds, and said actual outcome.
12. The system of claim 11, wherein said one or more servers
comprises: a front-end server that is accessible to a user device
and is configured to render information related to said event to
said user device via a network; a back-end server configured for
data processing; and a communications layer that is configured to:
receive data from said user device, transform said data, and
transmit said transformed data to said back-end server.
13. The system of claim 12, wherein said back-end server includes
multiple instances adapted for parallel processing of data received
from the front-end.
14. The system of claim 13, wherein said communications layer is
further configured to optimally distribute requests across said
multiple instances of said back-end.
15. The system of claim 12, wherein said back-end is configured to
determine if the user's desired stake in the outcome of said event
is in accordance with one or more validation parameters.
16. The system of claim 12, wherein said front-end is further
configured to deliver to said user device user input controls.
17. The system of claim 16, wherein said user controls include one
of an entry field, slider, or knob that enable a user to input the
user's desired stake in the possible outcome of said event.
18. The system of claim 11, wherein said desired stake, initial
stake, and current stake are quantities of shares in the possible
outcome of said event and there is a total number of outstanding
shares associated with said possible outcome in the dynamic betting
marketplace.
19. The system of claim 11, wherein said one or more servers are
further configured to: identify each user having a current stake in
the outcome of said event, wherein said current stake is a quantity
of shares in the possible outcome of said event associated with the
account of each of said identified users; update the account of
each user based on said current stake, said current odds, and said
actual outcome; and remove all shares of said outcome for said
event from each user's account.
20. The system of claim 12, wherein said back-end server is further
configured to maintain a queue of information indicating the user's
desired stake in the possible outcome of said event.
21. The system of claim 11, wherein said one or more servers are
further configured to: simultaneously receive an indication of a
desired stake in the selected possible outcome of said selected
event from a second user and a third user; and process said
received indications from said second and third users in a random
order.
22. The system of claim 11, wherein said one or more servers are
further configured to: update a quantity of the user's free cash
according to: FC.sub.i,g,t=FC.sub.i,g,t-1-D.sub.i,g wherein
FC.sub.i,g,t is the user's current free cash, FC.sub.i,g,t-1 is the
user's initial free cash, and D.sub.i,g represents said difference
between the value of user's desired and initial stakes in the
possible outcome of the event.
23. The system of claim 18, wherein said one or more servers are
further configured to: update the quantity of the user's current
shares in the outcome of said event according to:
u.sub.i,g,t=u.sub.i,g,t-1+k.sub.i,g. wherein u.sub.i,g,t is the
user's current quantity of shares in the possible outcome,
u.sub.i,g,t-1 is the user's initial quantity of shares in the
possible outcome, and k.sub.i,g represents a change in the total
number of outstanding shares for the possible outcome of said event
based on said first update.
24. The system of claim 18, wherein said one or more servers are
further configured to: determine the current value of a number of
shares (u.sub.i) for a possible outcome of an event according to:
CV i ( u i , v , B ) = B ln ( exp v i - u i B + j .noteq. i exp ( v
j B ) ) - B ln ( exp v i B + j .noteq. i exp ( v j B ) ) .
##EQU00008## wherein v is a market state, and B is a liquidity
parameter.
25. The system of claim 18, wherein said one or more servers are
further configured to: determine a price (p.sub.i) for a share of
the possible outcome of said event according to: p i ( v , B ) =
exp ( v i B ) exp ( v i B ) + j .noteq. i exp ( v i B ) ,
##EQU00009## wherein v indicates the number of shares in the
possible outcome of said event that are owned by users and B is a
liquidity parameter.
26. The system of claim 11, wherein at least one of the user's
desired stake, initial stake, or current stake is expressed as an
amount of a currency unit, there is a total number of outstanding
shares associated with said possible outcome, and said one or more
servers are configured to: convert at least one of the user's
desired stake, initial stake, or current stake into a number of
shares of the outcome of said event according to: k i ( v , W , B )
= B ln ( exp ( D B + ln ( exp ( v i B ) + j .noteq. 1 exp ( v j B )
) ) - j .noteq. i exp ( v j B ) ) - v i . ##EQU00010## wherein D is
amount of said desired stake, B is a liquidity factor, and v is a
number of shares associated with the outcome of said event.
Description
CROSS REFERENCE TO RELATED APPLICATION
[0001] This application claims the benefit of the earlier filing
date of, and contains subject matter related to, that disclosed in
U.S. Provisional Application Ser. No. 61/379,978, filed Sep. 3,
2010. The disclosure of the above noted application is hereby
incorporated by reference in its entirety.
BACKGROUND OF THE INVENTION
[0002] 1. Field of the Invention
[0003] The present invention is in the technical field of
entertainment systems. More particularly, the present invention is
in the technical field of systems, methods and computer program
products for betting and gambling. Embodiments of the present
invention are directed to a method for enabling a user to make bets
on outcomes, e.g. in sports matches or races as well as other types
of events such as elections, weather, news prediction, economic
events, business events, political events and any other event which
is acceptable for betting or gambling.
[0004] 2. Description of Related Art
[0005] Betting on various events, such as elections, economic
indicators and sports results, is a large and growing industry. In
normal betting games, a bettor places a bet (on virtually anything,
subject to legal limitations) at certain odds and waits to find out
if the bet wins or loses. The odds keep changing but the player
cannot withdraw his bet once it has been accepted by the system/the
bookkeeper etc. Various types of betting systems are available for
various types of events. The prior art discloses several methods of
betting systems. Pari-mutuel betting and fixed-odds betting are the
most popular systems among sports and financial bettors.
[0006] Pari-mutuel betting (described for example in U.S. Patent
Application Publication No. 2007/0082730) is a type of betting
system in which all bets on the outcome of a particular event are
placed together in a pool, and payoff odds are calculated by
sharing the pool among all winning bettors. In a pari-mutuel
betting system, the final payout is not determined until the pool
is closed. Moreover, this system does not allow bettors to place a
bet at certain odds because the odds of each and every bet in the
pool keep changing as new bets are added to the pool by other
bettors. Therefore, a pari-mutuel betting system does not allow for
counter bets, i.e. bets which offset a previous bet such that the
bettor who owns the previous bet and the counter-bets has a
guaranteed zero or positive return.
[0007] The most common method of addressing the problems of
pari-mutuel betting is to organize markets where a huge number of
bettors can exchange, i.e. buy and sell, such bets. Such markets
are called betting exchanges. An example betting exchange is
described in detail in U.S. Patent Application Publication No.
2007/0087821. To offset a bet, a bettor can sell the bet to another
bettor on the betting exchange at a certain price, which can be
interpreted as the current market value of that bet, and only if
the seller finds a buyer with whom he can agree on the sale price.
For a betting exchange to be useful, it must have a large number of
active members so that it is possible to find a buyer for ones bet
in a reasonably short period of time, at least before the
underlying outcome of the event on which the bet is contingent has
occurred.
[0008] Fixed-odds betting (described in U.S. Pat. No. 6,033,308) is
a form of wagering against odds established by a bookmaker. In this
system, the final payout is determined by odds at the time of
placement of the wager, i.e. a bet which was placed at certain odds
keeps these odds until the underlying outcome has occurred. This
makes it possible to calculate and place counter bets to offset
ones position from previous bets. The calculation of such counter
bets is complicated, especially for the lay person.
[0009] Hence it can be said that betting systems known from the
prior art do not provide a direct, simple, safe, easy-to-use way
for increasing, decreasing or completely withdrawing ones bet in
order to limit losses or secure profits on changing odds. Instead,
these systems require, as described above, complex operations, e.g.
computing counter bets (like in financial floating or fixed binary
betting), or negotiating prices on a betting exchange.
[0010] Therefore, the present betting systems are not flexible
enough to enable bettors to hold full control over placed bets in
an efficient and simple manner, and there is a need for new and
improved systems and methods which provide bettors with more
control over their wagers.
SUMMARY OF THE INVENTION
[0011] Embodiments of the present invention include a system,
method and computer program product for providing dynamic betting
which enables bettors (also referred to as users) to make,
withdraw, and increase/decrease the stake of bets. The invention
utilizes stock and stock pricing mechanisms in a unique environment
to create the dynamic betting system and method of the present
invention. Users of the present invention (i.e., bettors) place
bets (amounts of money) on certain outcomes. The system, method and
computer program product of the present invention treat this
placing of a bet as a purchase of a share of in that particular
outcome for the particular event. Each potential outcome for a
given event has an associated "outcome stock." The pool of bets for
each outcome has an associated stock of which players are buying
shares. The system converts each bet amount on a certain outcome
into a number of shares of that outcome. This is accomplished by
simply using the current price of the shares of this outcome's
stock to calculate how many shares the bet amount could buy at that
share price. The number of shares which results from this
calculation is a real number, not necessarily an integer.
[0012] According to embodiments of the present invention, a player
can place a bet (on anything, subject to legal limitations) at
certain odds. The odds keep changing as other players bet, and the
player can withdraw his bet at any time.
[0013] According to embodiments of the present invention, odds are
expressed as probabilities. Odds and probabilities are
mathematically equivalent representations of the likelihood of an
event to happen.
[0014] Another aspect of embodiments of the present invention, is
the use of event likelihoods, e.g. probabilities that a wagered-on
outcome will actually happen, instead of traditional odds. (Odds
and event probabilities are mathematically equivalent). The
probability of an outcome is a number between 0% and 100%. It is
determined by a one-to-one relation to the price of the underlying
stock of that outcome, e.g. if the underlying stock's price of an
outcome is 40 CU (cu=currency units, can represent any real or
fantasy currency), then that outcome's probability is 40%.
[0015] Each outcome stock has a function, i.e. a price function,
which determines the outcome stock's price as a function of the
current demand and supply situation in the underlying stock market.
The demand and supply situation is a result of the players' chosen
outcomes and the amounts they bet on these outcomes. Each bet is
transformed into demand for the underlying shares of that outcome,
i.e. the demand increases. Closing a bet decreases demand, and
hence price and the related probability. Increasing an existing bet
increases demand, decreasing an existing bet, decreases demand.
[0016] According to embodiments of the present invention, when a
player withdraws his bet, he will receive the current value of his
bet back. This can be more or less than the amount of bet he put
into the pot. Specifically: [0017] if the probability, for his tip
to happen has increased since the time of his bet, this will also
increase the current value of his bet, [0018] conversely, if the
probability for his tip to happen has decreased the current value
of his bet will decrease.
[0019] For each transaction, a transaction fee may be charged.
EXAMPLE
[0020] Current probability: "10% that the Celtics will win the next
game." [0021] Player 1 bets $50 on the Celtics. At the end if he's
right he will receive $500 back, if he's wrong he will receive
zero. [0022] On the next day, the probability has risen to 20% due
to other players' bets. [0023] Now the current value of player 1's
bet has doubled from $50 to $100. [0024] Player 1 is free to leave
his bet as it is and hope for a cash-out of $500 or to withdraw it
right now in which case he'll receive $100 (a profit of $50).
[0025] If the probability would not have increased to 20% but would
have fallen to, say, 5%, than the current value of player 1's bet
would have decreased from $50 to $25, and he could decide to stay
or withdraw.
[0026] According to embodiments of the present invention, it is not
only possible to withdraw ones bet completely, but to freely adjust
the bet, e.g. withdraw part of it, or top-up the bet amount. The
options on which to bet are specified by the system at the
beginning, e.g. "Celtics win", "Celtics lose" and they remain
constant during the term of the wager. The only parameters that
change are the probabilities, which are governed by the initial
probability, set by the system in the beginning before the first
player places a bet, and from that point onwards the bets of all
players are used to update the probabilities via specific
algorithms, as described.
[0027] According to embodiments of the present invention, a method
for dynamic betting includes identifying one or more events, each
of which has at least two possible outcomes, and setting initial
odds for each possible outcome of the events. The method further
includes presenting a plurality of users, each of which has an
account, with information indicating one or more of the events, the
possible outcomes of the events, and the associated odds for each
possible outcome. The method also includes receiving a selection of
one of the events by a user, a selection of a possible outcome of
the event selected by the user, and an indication of a desired
stake in the selected outcome. A first value is determined, which
indicates the user's desired stake in the selected outcome, and a
second value is determined, which indicates the value of the user's
initial stake in the outcome of the selected event. Then, a
difference between the first and second values is determined and
the user's account is updated to reflect a current stake in the
selected outcome based on the difference. Current odds for the
selected outcome of the event are then determined. The method
further includes identifying the actual outcome of the selected
even and updating the user's account based on the current their
current stake in the outcome, the current odds, and the actual
outcome.
[0028] In one particular aspect, the desired stake, initial stake,
and current stake are quantities of shares in the possible outcome
of the event in a dynamic betting marketplace, where there is a
total number of outstanding shares associated with the possible
outcome.
[0029] In some embodiments, the method further includes identifying
each user that has a current stake in the outcome of the event,
updating the account of each user based on their current stake, the
current odds, and the actual outcome, and removing all shares of
the outcome for the event from each user's account.
[0030] According to embodiments of the present invention, a system
for providing a dynamic betting marketplace is provided, which
includes a database storing accounts for a plurality of users and
one or more servers. The server, or servers, are configured to
identify one or more events, each of which have at least two
possible outcomes, and set initial odds for each possible outcome
of the identified events. The servers are further configured to
present to the users information that indicates one or more of the
events, the possible outcomes of the one or more events, and the
associated odds for each possible outcome. The servers may then
receive a selection of an event by a user along with a selection of
a possible outcome of the selected event. The servers also
configured to receive an indication of a desired stake in the
selected outcome of the event from the user, which is used to
determine a first value that indicates the user's desired stake in
the selected possible outcome. A second value is also determined,
which indicates the value of the user's initial stake in the
possible outcome of the selected event. The servers are configured
to determine a difference between the two values and update the
user's account to reflect their current stake in the selected
possible outcome based on the difference. Additionally, the one or
more servers may be configured to determine current odds for the
possible outcome of the selected even, identify the actual outcome,
and provide a second update to the user's account based on their
current stake, the current odds, and the actual outcome.
[0031] In some embodiments, the one or more servers includes a
front-end server that is accessible to a user device and is
configured to render information related to the event to the user
device via a network, a back-end server configured for data
processing, and a communications layer. The communications layer
may be configured to receive data from the user device, transform
the data, and transmit the transformed data to the back-end
server.
[0032] In one particular aspect, the servers are further configured
to identify each user having a current stake in the outcome of the
event, wherein their current stake is a quantity of shares in the
possible outcome of the event associated in their account, update
the account of each user based on their current stake, the current
odds, and the actual outcome, and remove all the shares of the
outcome for the event from each user's account.
BRIEF DESCRIPTION OF THE DRAWINGS
[0033] FIG. 1 is an illustrative display interface in accordance
with embodiments of the present invention.
[0034] FIG. 2 is an illustrative display interface in accordance
with embodiments of the present invention.
[0035] FIG. 3 is an illustrative display interface in accordance
with embodiments of the present invention.
[0036] FIG. 4 is an illustrative display interface in accordance
with embodiments of the present invention.
[0037] FIG. 5 is an illustrative display interface in accordance
with embodiments of the present invention.
[0038] FIG. 6 is an illustrative display interface in accordance
with embodiments of the present invention.
[0039] FIG. 7 is an illustrative display interface in accordance
with embodiments of the present invention.
[0040] FIG. 8 is an illustrative display interface in accordance
with embodiments of the present invention.
[0041] FIG. 9 is an illustrative display interface in accordance
with embodiments of the present invention.
[0042] FIG. 10 is a process flowchart for placing a bet in
accordance with an embodiment of the present invention.
[0043] FIG. 11 is a process flowchart for a payout procedure in
accordance with an embodiment of the present invention.
[0044] FIG. 12 is a diagram of an exemplary architecture for a
system in accordance with an embodiment of the present
invention.
[0045] FIG. 13 is a functional block diagram of the architecture
for a system in accordance with an embodiment of the present
invention.
[0046] FIG. 14 is a functional block diagram of the architecture
for a system in accordance with an embodiment of the present
invention.
[0047] FIG. 15 is a functional block diagram of the architecture
for a system in accordance with an embodiment of the present
invention.
[0048] FIG. 16 is a functional block diagram of the architecture
for a system in accordance with an embodiment of the present
invention.
[0049] FIG. 17 is a block diagram representing a front end system
in accordance with an embodiment of the present invention.
[0050] FIG. 18 is a block diagram representing a back end system in
accordance with an embodiment of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
[0051] According to embodiments of the present invention, systems
and methods for a dynamic betting enables bettors to easily
withdraw their bet and also enables bettors to increase or decrease
the stake of the bet. Modifying or withdrawing bets can be done at
any time, as the liquidity for such operations is provided by the
provider operating the dynamic betting place in accordance with the
systems and methods of the present invention.
[0052] According to embodiments of the present invention, a novel
underlying dynamic betting is used to apply traditional stock
market concepts in a unique betting context. The dynamic betting
utilizes a market maker algorithm which can quote a price for a bet
or wager on the outcome of a particular event at any point in time,
and which can guarantee a limited adjustable maximum loss or profit
for the provider of the dynamic betting market place. This allows
trading to take place at any point in time, regardless of how many
active bettors there are on the betting market place. Bettors are
provided with a plurality of views in the dynamic betting market
place. For example, a user interface allows them to place bets on
one of the outcomes which are offered on the dynamic betting
marketplace for a given event, as well as to increase, decrease or
close off completely their bets without the need for trading with
other bettors or computing and placing counter bets.
[0053] The connection between the dynamic betting and the betting
user interface is provided by a set of formulas set out below
called a dynamic betting valuator. The dynamic betting valuator
computes the current value of a bet, the odds of an outcome before
and after a bet on that outcome and the gain or loss in free cash
for each operation desired by the bettor, e.g. increase, decrease,
or close off completely his bet.
[0054] According to an embodiment of the invention, bettors place
bets, i.e. amounts of money, on a certain outcome of an event. In
the underlying dynamic betting valuator, each outcome has an
associated "outcome stock" of which bettors are buying real-valued
numbers of shares. The method and system convert each bet amount on
a certain outcome into the number of shares of that outcome which
can be bought with the user-specified bet amount given the current
share price. The number of shares which results from this
calculation is not necessarily an integer but any real number,
which is not possible in a traditional stock trading mechanism.
Like in fixed-point betting, the odds are then locked for the bet,
i.e. the buy price paid for the underlying shares does not change
anymore (the current price of new shares can change but the buy
price is now locked).
[0055] The stock price in the present invention is limited between
0 and 1 so it can represent a probability, which is also always
limited between 0 and 1.
[0056] Betting odds of an outcome can always be interpreted as the
probability for that outcome to occur. Hence, both betting odds as
well as the bounded stock price of the present invention are
equivalent representations of the probability of an outcome to
occur. The stock price in the present invention can be interpreted
as follows: the closer the share price is to 1, the more likely the
underlying outcome is to occur, e.g. if an underlying stock price
of a certain outcome is 0.4 CU (CU=currency units, can represent
any real or fantasy currency), then that outcome's probability to
occur is 0.4, i.e. 40%.
[0057] Price Function
[0058] For example, assume there is an event with o possible
outcomes, on each of which bettors can bet. Let i be the index of
the outcomes with i.epsilon.{1, 2, . . . o} and let
v.sub.t-1=(v.sub.1, v.sub.2, . . . v.sub.o) be the vector of the
number of shares which are owned by all bettors on each outcome i
at time t-1, i.e. before the next bet is placed by some bettor. It
can be said, that the vector v describes the current state of the
market on that event. Let B be a liquidity parameter. Then it is
known from prior art (Hanson, 2007) that the current price of the
i.sup.th stock at time t is determined by the equation
p i ( v , B ) = exp ( v i B ) exp ( v i B ) + j .noteq. i exp ( v i
B ) , Eq . 1 ##EQU00001##
where exp(x) is the Euler number e to the power of x. Eq. 1 will be
used in the following to describe the invention, but it should be
noted that Eq. 1 is not the only function which fulfills the
requirements of the present invention. Any function f(x.sub.i) with
the following mathematical characteristics can be used: [0059]
Non-negative co-domain, i.e. the minimum value in its co-domain is
0. [0060] Upper bound of 1, i.e. the maximum value in it's
co-domain is I. [0061] Injective function, i.e. preserves a
one-to-one relation between each element of its domain and
co-domain. [0062] Continuity, i.e. infinitely small inputs in its
domain, result in small changes in the co-domain. [0063]
Differentiable in every point of its domain (or at least the number
of points where the function has no derivatives should be finite).
[0064] Growing function for an increase of demand for shares of
outcome i, and declining function for a decrease of demand of
shares of outcome i, as well as a declining function for an
increase in demand for shares of outcomes other than outcome i, and
a growing function for a decrease in demand for shares of outcomes
other than outcome i.
[0065] Cost Function
[0066] Buying a positive or negative amount of shares of type i,
k.sub.i changes the total amount of shares outstanding on outcome i
from v.sub.i to v.sub.i+k. The cost function is the definite
integral of the price function from v.sub.i to v.sub.i+k. Using Eq.
1 as an example of a valid price function, the cost C.sub.i for
buying a positive or negative amount of shares of type i, k.sub.i,
given a market state v and a liquidity parameter B is as
follows:
C i ( k i , v , B ) = B ln ( exp v i + k i B + j .noteq. i exp ( v
j B ) ) - B ln ( exp v i B + j .noteq. i exp ( v i B ) ) . Eq . 2
##EQU00002##
[0067] When purchasing shares k.sub.i is positive, when selling
shares it is negative. When k.sub.i is positive Eq. 2 returns a
positive number as the cost C.sub.i for those k.sub.i shares. When
k.sub.i is negative Eq. 2 returns a negative number as sales
proceeds for those k.sub.i shares. When subtracting a negative
number from the free cash of the bettor, his free cash will grow,
i.e. the sales proceeds will increase his free cash. At any point
in time the buy and sale operations in the underlying dynamic
betting valuator have to satisfy the condition
v.sub.i+k.sub.i.gtoreq.0, i.e. it is not possible to sell more
shares of outcome i than there are shares of outcome i on the total
market.
[0068] Transposed Cost Function
When a bettor wants to place a certain bet amount D rather than
purchase shares on outcome i then bet amount needs to be converted
into a real number of shares k.sub.i of that outcome in the
underlying stock trading mechanism. This is accomplished by
transposing Eq. 2 into:
k i ( v , W , B ) = B ln ( exp ( D B + ln ( exp ( v i B ) + j
.noteq. 1 exp ( v j B ) ) ) - j .noteq. i exp ( v j B ) ) - v i .
Eq . 3 ##EQU00003##
[0069] When a bettor has already placed a bet amount on outcome i
for which he received u.sub.i shares in the past, then in the
present invention that bet amount has a current value CV.sub.i at
any point in time, which is the current value of the shares
u.sub.i. The bettor can take part or all of that current value out
of his bet and convert it to cash. Therefore, the current value
equals the sales proceeds of selling all the shares u.sub.i which a
bettor owns on outcome i. This current value is not subject to
negotiation and trading on a betting exchange but determined by Eq.
2 which can quote sales proceeds, hence the current value of any
number of shares at any point in time by using:
CV i ( u i , v , B ) = B ln ( exp v i - u i B + j .noteq. i exp ( v
j B ) ) - B ln ( exp v i B + j .noteq. i exp ( v j B ) ) . Eq . 4
##EQU00004##
[0070] This equation is analogous to Eq. 2 with -u.sub.i
substituted in place of +k.sub.i. As explained above, when k.sub.i
is negative Eq. 2 will return negative values which are sales
proceeds which increase the cash of the bettor. Since u.sub.i is
always positive Eq. 4 represents a situation where k.sub.i is
negative in Eq. 2, and therefore Eq. 4 always returns a negative
value, which is the current value of a previously placed bet, i.e.
the sales proceeds of the currently owned shares u.sub.i.
[0071] Placing a New Bet or Increasing the Amount of an Existing
Bet
[0072] According to embodiments of the present invention, the
bettor does not have to deal with stock trading and buying or
selling shares to control his or her staked bet amount S.sub.i on
outcome i. Instead only simple operations such as increasing the
staked bet amount (buying additional shares) or decreasing (selling
some or all of one's shares) the staked bet amount are required
from the bettor.
[0073] To see this we define a time index t-1 which denotes the
situation before the bet and t the situation after the bet. The
quantity D.sub.i for bettor g will be defined as:
D.sub.i,g-S.sub.i,g,t-1-CV.sub.i,g,t-1. Eq. 5
[0074] The quantity S.sub.i,g,t-1 is the amount which bettor g
wants to have at stake in outcome i right now. His current stake
has a value now, which is denoted as CV.sub.i,g,t-1. The quantity
D.sub.i,g is difference between what bettor g wants to have at
stake now, S.sub.i,g,t-1, and the current value of the existing
stake, CV.sub.i,g,t-1. If bettor g wants to increase his stake now
D.sub.i,g will be positive, if he wants to reduce his stake
D.sub.i,g will be negative. When bettor g wants to completely
withdraw his stake, S.sub.i,g,t-1, will be zero and
D.sub.i,g=-CV.sub.i,g,t-1 will be true, which is also the smallest
permissible value for D.sub.i,g.
[0075] The current value of u.sub.i,g,t-1, i.e. the shares on
outcome i which bettor g owns before the transaction, is
CV.sub.i,g,t-1 and is given by Eq. 4 with CV.sub.i,g,t-1
substituted for CV.sub.i,g. When a bettor g wants to stake an
amount S.sub.i,g,t-1 which is larger than the current value
CV.sub.i,g,t-1 of his bet on outcome i, e.g. place his first bet on
i, in which case it must be true that CV.sub.i,g,t-1=0, or increase
an existing bet on i, with current value CV.sub.i,g,t-1.gtoreq.0,
then D.sub.i,g will be positive. As explained above when D.sub.i,g
is positive Eq. 3 will return a positive amount of shares
k.sub.i,g. The number of shares which bettor g will own after the
transaction in the underlying stock trading mechanism will then be
u.sub.i,g,t=u.sub.i,g,t-1+k.sub.i,g, where u.sub.i,g,t-1 is the
number of shares owned by bettor g before the transaction.
[0076] The current value CV.sub.i,g,t of the shares u.sub.i,g,t
owned by bettor g after the transaction is then the sum of the
current value of new shares which will precisely equal D.sub.i,g
and the current value of the shares already owned by bettor g
before the transaction, CV.sub.i,g,t-1, i.e.
CV.sub.i,g,t=D.sub.i,g+CV.sub.i,g,t-1=S.sub.i,g,t-1. The bettor has
exactly achieved the new bet amount S.sub.i,g,t-1 which he intended
to have on outcome i. The same result can be obtained by
substituting the new number of shares owned by bettor g after the
transaction, u.sub.i,g,t, for u.sub.i in Eq. 4 because, as
previously discussed, Eq. 4 returns the current value of a given
amount of shares u.sub.i.
[0077] Decreasing or Completely Withdrawing an Existing Bet
[0078] When bettor g wants to decrease his bet on outcome i he will
be able to do so given the current value CV.sub.i,g,t-1 of his bet
on outcome i. Decreasing ones bet amount S.sub.i,g,t-1 is
equivalent with S.sub.i,g,t-1<CV.sub.i,g,t-1 in Eq. 5, which in
turn implies that D.sub.i,g<0. By taking out D.sub.i,g from his
bet amount bettor g will increase his cash by the same amount.
Using D.sub.i,g in Eq. 3 instead of D will return a negative the
number of shares k.sub.i,g, i.e. shares which will be sold.
Correspondingly, u.sub.i,g,t=u.sub.i,g,t-1+k.sub.i,g will be
smaller than u.sub.i,g,t-1-the number of shares owned before the
transaction.
[0079] The condition D.sub.i,g.gtoreq.-CV.sub.i,g,t-1 means that
the bettor cannot take out more from the bet than part or all of
the current value of the bet and has to be met at all times. The
same condition guarantees that -k.sub.i,g.ltoreq.u.sub.i,g,t-1,
i.e. the bettor will never be able to sell more shares than he
owned before the transaction. Completely withdrawing one's bet
means to take out the whole current value of the bet by choosing an
S.sub.i,g,t-1=0, which by Eq. 5 results in
D.sub.i,g=-CV.sub.i,g,t-1. This in turn means that
-k.sub.i,g=-u.sub.i,g,t-1, i.e. all shares owned by g on i will be
sold in the underlying stock trading mechanism.
[0080] Updating Individual and Global Values after a
Transaction
[0081] The free cash FC.sub.i,g,t of bettor g after an transaction
is given by
FC.sub.i,g,t=FC.sub.i,g,t-1-D.sub.i,g Eq. 6
An increase of the stakes amount as described above and in Eq. 5
results in a positive value for D.sub.i,g which in turn reduces the
free cash of the bettor. A decrease or complete withdrawal results
in a negative D.sub.i,g which in turn increases the free cash of
the bettor. Similarly, the amount of shares owned after a
transaction is given by
u.sub.i,g,t=u.sub.i,g,t-1+k.sub.i,g Eq. 7
[0082] When increasing ones bet amount S.sub.i,g,t-1 will be
positive and hence the number of shares owned will rise, and vice
versa.
[0083] The number of shares of outcome i present in the total
market across all bettors after a transaction by bettor g is given
by
v.sub.i,t=v.sub.i,t-1|k.sub.i,g Eq. 8
[0084] Payout, Winnings and Odds
[0085] Once the outcome of an event has materialized, the
administrator of the bets selects that event and specifies one or
more winning outcomes for that event. The shares associated with
winning outcomes are removed from the portfolios of all bettors who
own such shares and these bettors receive free cash in return, as
follows: each share of the winning outcome i receives a final
payout w.sub.i, and w.sub.i is usually 1 but the present invention
can handle any real value, even negative ones which do not make
sense from a business point of view. The value x.sub.i can also be
set individually for each winning option, if necessary. The shares
associated with loosing outcomes are also removed from the
portfolios of all bettors who own such shares but these shares each
receive a payout of 0.
[0086] The most common practice is that only one outcome of an
event is selected as a winning outcome and its w is set to 1. This
is so because the maximum price per share is 1, which corresponds
to the maximum probability of an outcome to materialize, both of
which has been discussed above. With this payout rule it is
possible not only to show to bettors the current value of their
staked cash but also the money they will receive back on their
staked cash on outcome i if that outcome turns out to be the
winning outcome, see the example in the summary of the invention.
Therefore the present invention offers the same comfort as
traditional betting systems with regard to knowing how much a
bettor can win on his bet.
[0087] At any time, the odds of outcome i in terms of a winning
probability are given by Eq. 1, i.e. the price of stock i, p.sub.i,
with v.sub.i,t substituted for v.sub.i. As can be seen, the lower
the winning probability and hence the price, the more shares any
given stake S.sub.i,g,t-1 will buy. With the payout rule discussed
above the more shares one owns the more one can win. Therefore,
when the odds are against outcome i and hence the price of outcome
i is low any given stake S.sub.i,g,t-1 will buy more shares and
hence secure a higher possible payout, than a stake on an outcome
with unattractive odds, hence high price per share.
[0088] As can now be seen, the present invention offers the
advantages of fixed-odds betting, i.e. knowing the possible
winnings and having fixed-odds, while it gives for the first time
full control over the betting process to the bettor. Losses can be
curbed by completely withdrawing a bet and profits can be secured
in the same manner without the need for having to wait for the
final outcome to become known. As described above, conventional
systems and methods require placing complex counter bets or selling
a bet on a betting exchange. Counter bets are difficult to compute,
especially for the lay person, and require additional investment
into counter bets. Betting exchanges are time-consuming and one is
not always successful in finding a suitable buyer for ones bet.
[0089] The invention presented executes each transaction
immediately using the specialized cost and price equations in an
underlying dynamic betting valuator.
[0090] FIG. 1 illustrates an exemplary screen a logged on user
would see which allows the user to select from various events on
which the user may place a bet/wager.
[0091] FIG. 2 illustrates an exemplary screen for placing a wager
on a particular event.
[0092] FIGS. 3-9 are exemplary display interface screens
demonstrating an example of a user placing a bet using the system
in accordance with embodiments of the present invention.
Example
Using the Present Invention to Bet on a Basketball Game
[0093] As shown in FIG. 3, a bettor g utilizing a system which
embodies the present invention is presented with several events on
which he or she can place a bet. In this embodiment, the user is
accessing the system utilizing an internet browser, such as
Microsoft Internet Explorer or Mozilla Firefox, through, for
example, a desktop computer, laptop computer or like device. In
other embodiments of the invention, these displays could be
presented in forms utilizing other browsers or interface software
on other devices including smartphones, tablet computers, Apple
iPad, or any number of other devices. Additionally, while in the
example embodiment shown, the pages are shown as stand-alone web
pages, these features could be implemented within other websites,
including social networking websites such as Facebook.
[0094] In the present example, bettor g wants to place a bet on
tomorrow's basketball game, the L.A. Lakers vs. Boston Celtics.
Bettor g selects this event by clicking the "read more" link, which
corresponds to this basketball game on the screen shown in FIG. 3,
which causes his browser to load the screen shown in FIG. 4. This
game is an event and the possible outcomes are "Lakers win",
"Celtics win", "Draw". Bettor g decides to place a bet of 50 CU
(CU=currency units, e.g. U.S. dollars) on "Lakers win". Bettor g
enters this bet into the system using the corresponding controls
shown in FIG. 4. As seen in FIG. 5, after entering the information
for the desired bet, g receives a confirmation of his bet and the
current value of his bet. At first, the current value will exactly
equal his desired stake of 50 CU until the odds change, which will
cause the current value of g's stake to be adjusted by the
system.
[0095] As can be seen by comparing the "Current Probability" for
each outcome in FIGS. 4 and 5, the bet placed by g has changed the
odds of all outcomes in the event. Outcome "Lakers win" has
increased from 45% to 47%. This demonstrated how the present
invention adjusts the odds after each new bet. Since all odds have
to sum to 100% probability, the method adjusted the other outcomes
accordingly to 34% and 19% so that the sum of all outcomes of that
event is 100%.
[0096] FIG. 6 shows an example screen which might be seen when
bettor g returns to the site to check the value of his stake prior
to the event taking place. In the example shown, he finds that it
has increased from 50 CU to 55 CU. This is because other bettors
also believe in outcome "Lakers win" and have placed new bets on
that outcome. These bets caused the odds for "Lakers win" to rise
from 47% to 50%. The method not only adjusts the odds after each
bet but also the current value of all existing bets. And therefore
the stake of g has increased in value from 50 CU to 55 CU since the
odds have also moved in favor of outcome "Lakers win".
[0097] As shown in FIG. 7, bettor g decides to decrease his stake
and secure some of the winnings which he made. Utilizing the
controls on the page, he inputs his new stake at 30 CU and submits
the revised bet.
[0098] As shown in FIG. 8, the system confirms that he has
decreased his stake from 55 CU to 30 CU and that he receives the
difference of 25 CU on his free cash account. In conventional
betting methodologies, the bettor would have had to wait until the
actual result of the event is known before being able to secure all
or, as in this example, part of his winnings. Similarly, if g would
have found the current value of his stake having decreased, the
current state of the art would not have allowed him to limit his
losses by taking out the remaining current value of the stake.
[0099] As described above, the method again adjusts the odds for
all outcomes since now the total amount placed on outcome "Lakers
win" has decreased from 55 CU to 30 CU, which also lets the odds
for that outcome decrease while the odds of the other outcomes have
increased.
[0100] The current stake of bettor g of 30 CU on outcome "Lakers
win" has been placed at odds of 50%. This means that if the outcome
actually happens, i.e. the L.A. Lakers win the game the stake of 30
CU will be worth 60 CU.
[0101] As shown in FIG. 9, bettor g wants to hedge his position and
places a bet of 10 CU on "Draw" at odds 19%. If that outcome
actually happens, the 10 CU will be worth approximately 5 times the
stake, i.e. approximately 50 CU. This bet has of course impacted
the odds of all outcomes in this event, hence the current value of
all bets previous to that last bet of 10 CU. As can be seen, the
bet of g on "Lakers win" has also been impacted and decreased
because the method adjusted the odds for the additional trust
placed on the outcome of "Draw" by g himself.
[0102] To summarize, bettor g now holds bets with current values 28
CU on "Lakers win" with a chance for winning 60 CU if that outcome
actually happens, and a bet of 10 CU on "Draw" with a chance of
winning approximately 50 CU if that outcome actually happens. If
the outcome "Celtics win" happens, bettor g will lose all of his
staked money.
[0103] The bettor can observe how the odds keep changing until the
closure of the bet and at any point in time change or completely
withdraw his bet at their then current values or put additional
money on any of the outcomes at the then current odds of that
outcome. The system, method and computer program product of the
present invention supports all of these activities and computes the
correct odds, winning chances and money transfers at all times.
[0104] FIG. 10 is a flowchart illustrating a method for placing a
bet in accordance with an embodiment of the present invention. In
an embodiment, method 1000 includes the bettor selecting the event
on which he wishes to place a wager (step 1002). Upon selecting the
event on which he wishes to place a wager, the bettor is presented
with a user interface which allows the bettor to select the
particular outcome on which to place his wager and specify the
desired stake S (step 1004). The system then uses the information
regarding the bettor's selected outcome and specified stake S to
compute amount D. The system then loads the amount of free cash
(FC) in the bettor's account and the current value of the stake on
the selected outcome (CV) into memory for further operations (step
1008). The system then checks if the value of the bet amount D is
greater than the amount of free cash FC in the bettor's account
(step 1010). If the bet amount D is greater than free cash FC, then
the value of D is set to the amount of FC available in the bettor's
account (step 1012). If the bet amount D is not greater than free
cash FC, then the value of bet amount D is compared to the negative
current value of the selected outcome (-CV) (step 1014). If the
value of bet amount D is less than or equal to the negative current
value of the selected outcome (-CV), then the value of D is set to
the negative current value of the selected outcome (-CV) (step
1016). The system then checks if the value of the bet amount D is
equal to the amount of the negative current value of the selected
outcome (-CV) (step 1018). If the value of bet amount D is equal to
the negative current value of the selected outcome (-CV), then the
system sets the number of shares k equal to -u, which is the number
of shares owned by the bettor on that outcome stock (step 1022). If
the value of bet amount D is not equal to the negative current
value of the selected outcome (-CV), then the system sets the
number of shares k utilizing equation 3 as described above (step
1024). Next, the system updates the bettor's account to reflect the
new values for free cash FC and the number of shares purchased in
the particular outcome stock (step 1026). The system then updates
the total number of shares in the particular outcome stock for all
users and the odds of all outcomes in the selected event (step
1028).
[0105] FIG. 11 is a flowchart illustrating the payout procedure in
accordance with an embodiment of the present invention. In an
embodiment of the present invention, method 1100 begins with a
system administrator selecting an event on which the outcome has
been determined for payout (step 1102). Next, the system
administrator specifies final payout value per share for each
outcome i (step 1104). Then, a list with all bettors with open bets
on the selected event is compiled (step 1106). For each bettor in
the compiled list, the corresponding amount free cash in each
account is updated according to each bettor's shares and the final
payout value per share (step 1108). Finally, all shares of the
selected event from each bettor's account are removed (step
1110).
[0106] FIG. 12 a diagram of an exemplary architecture for a system
in accordance with an embodiment of the present invention. Laptop
1202 and workstation 1204 are personal computers (PC) connected to
network 1210 through networks 1206 and 1208, respectively. Networks
1206 and 1208 may be wired or wireless networks, private or public
networks, local or wide area networks, virtual networks, etc., or
any combination thereof. Network 1210 is, generally, a wide area
public network, such as, for example, the Internet. Typically,
laptop 1202 and workstation 1204 access the Internet through
respective Internet Service Providers (ISPs) (not shown). Other
embodiments of network 1210 include wired or wireless networks,
private or public networks, local or wide area networks, virtual
networks, etc.
[0107] Front end server 1218 is connected to network 1210 directly
(not shown) or through firewall 1214, and to database server 1220
through network 1222. Front end server 1218 and database server
1220 may be custom-built servers, industry standard servers, such
as, for example, HP ProLiant servers, etc. Front end server 1218
executes software implementing various features of the present
invention, while database server 1220 can store and manage
information relating to the display of the application as well as
information relating to users and the dynamic betting valuator. For
example, Microsoft's NET, Windows Server and SQL Server software
packages may be deployed on these machines. In an alternative
embodiment, front end server 1218 also functions as database server
1220, i.e., a single server may be employed.
[0108] Embodiments of networks 1212, 1216 and 1222 include wired or
wireless networks, local or wide area networks, virtual networks,
etc., or any combination thereof. Network 1212 is a public network,
connecting firewall 1214 to network 1210, while networks 1216 and
1222 are private networks. While database server 1220 is depicted
as being connected to front end server 1218 via network 1222,
networks 1216 and 1222 may also be a single network. Accordingly,
one embodiment of the present invention includes a single server
connected directly to the Internet.
[0109] The computer program and software modules of the system,
method, and computer program product of the present invention can
be implemented using any operating system, and associated hardware
including, but not limited to, Unix, Linux, VMS, IBM, Microsoft
Windows NT, 95, 98, 2000, ME, and XP, Mac OS, Palm OS, Android,
Microsoft Windows CE, Microsoft Windows Mobile, Symbian OS and the
like.
[0110] The systems, processes, and components set forth in the
present description may be implemented using one or more general
purpose computers, microprocessors, or the like programmed
according to the teachings of the present specification, as will be
appreciated by those skilled in the relevant art(s). Appropriate
software coding can readily be prepared by skilled programmers
based on the teachings of the present disclosure, as will be
apparent to those skilled in the relevant art(s). The present
invention thus also includes a computer-based product which may be
hosted on a storage medium and include instructions that can be
used to program a computer to perform a process in accordance with
the present invention. The storage medium can include, but is not
limited to, any type of disk including a floppy disk, optical disk,
CDROM, magneto-optical disk, ROMs, RAMS, EPROMs, EEPROMs, flash
memory, magnetic or optical cards, or any type of media suitable
for storing electronic instructions, either locally or
remotely.
[0111] According to embodiments of the present invention and as
shown in FIGS. 13-15, the platform is advantageously implemented as
a distributed web application, with functionality and processing
load distributing between one or more application tiers. For
example, for reasons of maintenance and scalability the platform is
divided into two parts (i) a system for rendering the output to the
users (hereafter Frontend 1304), and (ii) a system for processing
of data (hereafter Backend 1308). Both parts communicate via a
communication layer 1306 which manages the traffic and optimally
distributes all requests. All data is being stored in a database
1310. A plurality of client devices 1302 (e.g., personal computers,
smartphones, etc.) can access the system simultaneously.
[0112] Common variations include a system with multiple instances
of the backend 1404 which allows for parallel processing of
incoming requests from a large amount of users. The management of
multiple instances of backend 1404 are managed using a load
balancer implemented in the communication layer 1402. Each backend
instance 1404 may connect to one or more databases. All bets on any
outcome of one event can only be processed by one backend 1404 and
one database 1502 only. The bets of one event cannot be distributed
across different backends or different databases.
[0113] For maximum performance a common architecture is to have a
group of events, with their respective outcomes, on one database
1504 and having all bets related to outcomes from this group of
events directed by the communication layer to the one backend 1404
which will connect to the database 1502 which stores them.
[0114] FIG. 16 is a flow diagram which shows the functionality and
flow of information between the various components of the system
according to an embodiment of the invention. The various system
components, i.e. frontend 1304, backend 1308, communication layer
1306, perform specific functions. The frontend 1304 is rendering a
presentation of the event information, bet information and other
relevant information to the client device 1302 of a user. It also
delivers the visual style and layout for this information.
Moreover, it delivers the user input controls, e.g. fields to enter
a stake, as well as information output areas, e.g. numbers about
current value, stake, odds etc. The frontend also performs
validation of user inputs to prevent wrong or malicious
results.
[0115] The communication layer 1306 receives user data which the
user entered into the user input controls of the frontend. It
transforms this data for transmission to the other parts of the
system, i.e. the backend and the database 1310. It can also perform
the required management functions for distributing requests
optimally across various instances of the backend 1308. When the
communication layer 1306 receives data from the backend it prepares
it for transmission to the frontend 1304 where it is further
processed for display in the presentation layout.
[0116] The backend 1308 consists of various components, i.e. a
queue of bets for each event, a validator with validator logic, and
a bet valuator. These components work together as well as connect
with the database to process incoming bets. Moreover, the backend
1308 also handles other services, e.g. requests for displaying
information about current odds, authentication services etc.
Components data flows handling other services are marked with
dashed lines.
[0117] The core function of the backend 1308 is the processing of
bets whose components and data flows are marked with solid lines.
Each incoming bet is put into the queue of the associated event.
Each queue contains bets from one event only and they are sorted by
the first in first out principle. Simultaneous bets are processed
by a random order. The queue guarantees that one and one bet only
is processed on each event at a time.
[0118] A bet which is next in the queue is send to the validator
which checks and adjusts the parameters of the bet such that the
conditions outlined above in the description of the method are
always met. If this fails, the validator returns a corresponding
message to the database which is then send to the user as a result
of his bet. When the validation succeeds, the adjusted bet
parameters are sent to the bet valuator, which computes the
resulting values for the variables outlined above in the
description of the method. The result of these computations are
sent to the database 1310 where they are stored and to the user via
the communication layer 1306 and the frontend 1304.
[0119] When a bet has been processed successfully and all related
information has been updated in the database, a signal is sent to
the queue to release the next bet into the validator.
[0120] FIG. 17 shows an example implementation of a frontend
according to an embodiment of a system according to the present
invention. The Frontend 1304 consists of a complete website with
its re-usable components, e.g. buttons, list controls etc, having
been implemented as modules using UserControls. The users' betting
is done via dynamic asynchronous website elements, e.g. AJAX, which
communicate with the transaction logic in the Backend via a web
service, e.g. SOAP protocol. The Frontend consists of: [0121]
TradeService 1702: a web service, which processes AJAX calls from
the clients and sends replies. [0122] ASPX Frontend 1704: Contains
the web pages, their themes, CSS styles and designs, as well as
JavaScript, Flash and other dynamic elements, [0123]
SmallBusinessObjects 1706: module which contains a shorter list of
objects often used in the application. This reduces the memory
footprint of the application, [0124] ControlTreeBuilder 1708:
module, which generates the ControlTree for each page type. This
increases the generation of pages by the system. The ControlTree of
each page type is being caches which further increases performance,
[0125] ControlRepo 1710: a module which stores all UserControls of
all pages. For each page which requests UserControls the right
controls are being supplied from this module with the right
parameters for the requesting page. Performance and maintainability
of the system are increased. [0126] EpmWCFService 1712: service for
communication with the Frontend, [0127] Utils 1714 contains: [0128]
LinkBuilder: module, which converts all links of the web pages of
the system into Search Engine friendly links in a reversible way.
Moreover, HTML link IDs are being encoded in a reversible way and
purged of special characters. [0129] DataAccess: module, which
provides uniform access to the database for the Frontend. It also
implements a caching strategy to significantly reduce work load for
the Backend. [0130] UserAuthentication: module, which provides user
authentication.
[0131] As shown in FIG. 18, the Backend 1308 can consist of (i) a
web service for communication with the Frontend as well as two call
libraries, i.e. (ii) the EpmLogic module for the computation of the
transaction logic, e.g. price function, inverse cost function, as
well as (iii) the DBAccess module, which provides uniform access to
the database. [0132] TradeService 1802: a web service, which
processes AJAX calls from the clients and sends replies. [0133]
EpmWCFService 1804: service for communication with the Frontend,
[0134] EPMLogic 1806: module which contains the business logic of
the backend, hence the logic of the whole application, [0135]
MarketModel 1808: for the computation of the transaction logic,
e.g. price function, inverse cost function, [0136] Object Cache
Observer 1810: module, which implements the Observer Pattern, to
detect changes in objects, e.g. price change. Controls Backend
cache requests and increases performance, [0137] BusinessObjects
1812: module, containing a list of all objects used in the
application, excluding SmallBusinessObjects, [0138] DBAccess 1816:
module, which provides uniform access to the database for the
Backend.
[0139] The foregoing has described the principles, embodiments, and
modes of operation of the present invention. However, the invention
should not be construed as being limited to the particular
embodiments described above, as they should be regarded as being
illustrative and not as restrictive. It should be appreciated that
variations may be made in those embodiments by those skilled in the
art without departing from the scope of the present invention.
[0140] While a preferred embodiment of the present invention has
been described above, it should be understood that it has been
presented by way of example only, and not limitation. Thus, the
breadth and scope of the present invention should not be limited by
the above described exemplary embodiment.
[0141] For example, the user interface can have many different
embodiments, e.g. using various sliders and knobs to allow bettors
to input their stake. Moreover, instead of inserting a new stake
S.sub.i,g,t-1, a bettor may change the current value,
CV.sub.i,g,t-1, of a stake on an outcome. In this case Eq. 5 must
be replaced with:
D.sub.i,g- CV.sub.i,g,t-1-CV.sub.i,g,t-1. Eq. 9
with CV.sub.i,g,t-1 being the desired current value the bettor
would like to have after the transaction. It is evident that
CV.sub.i,g,t-1 is analogous to and obeys the same laws, definition,
and restrictions as S.sub.i,g,t-1.
[0142] While various embodiments have been described above, it
should be understood that they have been presented by way of
example only, and not limitation. Thus, the breadth and scope of
the present disclosure should not be limited by any of the above
described exemplary embodiments. Moreover, any combination of the
above-described elements in all possible variations thereof is
encompassed by the disclosure unless otherwise indicated herein or
otherwise clearly contradicted by context, and many alternatives,
modifications and variations will be apparent to those skilled in
the art. Various changes may be made without departing from the
true spirit and full scope of the invention as set forth
herein.
[0143] Additionally, while the processes described above and
illustrated in the drawings are shown as a sequence of steps, this
was done solely for the sake of illustration. Accordingly, it is
contemplated that some steps may be added, some steps may be
omitted, the order of the steps may be re-arranged, and some steps
may be performed in parallel.
* * * * *