λμ betRISE
Connecting...
--:--
Whole book open + closed
Closed realized · locked
Open at risk right now
Desk
Read it top down: the live flow, then what needs a decision, then the
open risk book and the loss distribution behind it, then margin performance. Monitoring
above, review below — the panels that say act now come before the ones that
say how did we do. Click any match, selection or bar to open the inspector.
Needs attention ranked by limit use all alerts ›
Book concentration
Expected liability
Where the number comes from. Every bar is exact and additive — they sum to the book total, so this is the whole liability decomposed, not a sample of it.
By contribution exact · additiveopen book only
eventturnover
net exp.P(loss)
Red is the probability-weighted value of every losing outcome, green the winning ones; the marker is the net. Sorted by downside, because turnover and danger are different lists. Open book only — money already settled is booked as realized P&L and has no expected liability left to decompose. Click a row to inspect the match.
Alerts & limits
Exposures ranked against their ceilings, not by size — and against the right ceiling. A big number inside its limit is not a problem; a mid-size one over its limit is; and a huge number at 1% is a cheque you must be able to write, not a position you must trade out of.
Top exposures worst open liabilities
| Match | Sel. | Market | Odds · prob | Liability · expected | Limit use | Inspect · trace it |
|---|
Scenarios & what-if
Move the clock, replay the card, or force outcomes across the whole book. Everything is reversible — the header shows when a scenario is applied.
Card clock 72h pre-match window
Rewind · replay
Result the card primitives in, markets out
| Match | Result | State |
|---|
This is the whole input surface. Four numbers settle a football
match, two plus one conditional answer settle an ice hockey match, and every market on
the card is derived from them. That is how a book is actually settled: a trader enters
a result and the platform grades the markets, rather than grading market by market. The
percentage beside each result is the model's probability for it, so a what-if shows
whether you are pricing a coin flip or a one-in-fifty world.
Void is a state of the match, not a separate action. Voiding
keeps the result you entered rather than discarding it, so un-voiding brings it back
and you can see what you are setting aside.
Reverse scenario start from the outcome, find the card
The search space is not the grid. A card of
sixteen matches has more scorelines than can be enumerated, but the book's P&L does not
depend on the scoreline — it depends on which selections won. Two scorelines that
grade every market the same way are the same world to this book, so the space to search
is the set of achievable settlement signatures per block, which is small. That
collapse is exact, not an approximation.
Two different questions. The worst card is a coordinate descent:
sweep one block at a time, take whichever signature hurts most, repeat until nothing
moves. Sweeping matters because multis couple matches together and one pass is not
enough. The second search is the one a trading director actually asks — not
what is the worst case but what is the most ordinary-looking Saturday that
costs me this much — so it starts from the most likely card and repeatedly
makes the change with the best ratio of loss bought to probability spent.
Both are local searches and are labelled as such. Coordinate
descent finds a local worst, not a proven global one. On a card small enough to
enumerate exhaustively the two agree, which is the gate this version ships with; on a
full card it is a strong lower bound on the damage, not a certificate.
Scenario library stored as results, not as settlements
| Scenario | Matches | P(settles this way) | Book P&L | Percentile | Where it sits |
|---|
A scenario describes the open book. A match that has kicked
off has a result, and no bulk driver, generator or search may rewrite it: they are all
statements about what is still to play. Typing into a played match's row by hand still
works, because what if that had gone the other way is a real question — but
it has to be a deliberate act, not a side effect of pressing a button labelled
most likely. Deliberate overrides are stored with the scenario; incidental ones
are not. The probability column counts the open matches only.
The standing six are generated, not stored. A saved scenario is
keyed to a card, so a library shipped with fixed results would go stale the moment you
regenerate. These six are rules — every favourite wins, the coupled pair turns
over, the two biggest matches are called off, and three searches — so pressing the
button after a regenerate asks the same six questions of the new book. Anything you
save yourself is left alone when they reload. The two thresholds are expressed as a
share of handle rather than a euro figure, because €25,000 means one thing to
a state operator and something else entirely to a start-up.
A scenario is an outcome vector. One cell per latent block per
match — exactly the shape the simulator draws and the pricer prices. A scenario
you typed and a scenario the model drew are therefore the same object, which is why
both can be priced by the same function and put on the same axis. The percentile is
where a named scenario sits among worlds drawn from the calibrated grids: a −€40k
result at the 3rd percentile is a different conversation from the same number at the
30th.
Read the probability column carefully. It is the probability
that the card settles this way, not that it produces these exact scorelines. Two
scorelines that grade every market identically are the same world to this book, so
their probabilities are summed — which is the figure a trader wants and is orders
of magnitude larger than the per-scoreline one. It is still small: a fully specified
card of sixteen matches is a rare world however it is counted, and that is the reason
the percentile column exists. No individual world is likely, so the question worth
asking is not how probable this one is but how bad it is relative to the ones the model
would draw.
Why results and not settlements. Market outcomes are derived and
lossy — forty-five football scorelines produce the same five settlements — so
a library of them could not be replayed. A library of results can, and it survives a
regenerated book. Where the card has changed underneath a scenario, the row says so
rather than applying it silently. Matches a scenario does not cover take their actual
result, and the coverage count is beside the name.
No VaR or ES column, deliberately. Those measure the tail of an
open book. A fully resulted scenario has no tail left: it is one world, priced.
Putting a tail figure beside it would be inventing uncertainty that the scenario has
already resolved.
Force outcomes across the book reversible
Forcing an outcome conditions the latent grid onto the surviving state space rather than collapsing it to a point, so partially settled matches keep pricing correctly on the markets still open.
Why the two rows are different. The selects above force one
market across the card. That is how a trader thinks and it is the right control
for a what-if, but a market is an instrument: settling instruments one at a time can
leave the underlying state undetermined, and the match stays open even though every
chip on its row has been pressed. The row below settles from a state instead
— one achievable final score and tie-break per block, every market read off it,
including correct score and margin, which have too many selections to sit on a row.
That is the scenario definition a market risk system uses: shock the factors, revalue
everything. It is complete by construction, and the residual is asserted on screen
rather than assumed.
Slip ledger ordered · replayable
| # | Arrived | State now | Slip | Detail |
|---|
Every slip in arrival order, with where it currently stands. The whole book is rebuilt from this ledger on every clock move, which is what makes a scenario reversible. Leg resolution is derived from the clock rather than stored, so it is recomputed on replay instead of appearing as its own ledger entry — a production deployment would persist those events too, and that is what turns this into a full audit trail.
Model & calibration
The engine room. One latent state per match — two grids for football, a regulation scoreline plus a tie-break channel for ice hockey — calibrated to the probabilities the platform already holds, or recovered from quoted odds where it does not. betRISE never sees a price book.
Latent grids marginals in, joint distribution out Match:
Two latent blocks per match. The goals grid (home×away goals) spans 1X2, double chance, O/U and BTTS. The corners grid spans the corner totals and most-corners. Correlation inside each block is exact; the two blocks are combined as independent, which is the one assumption left in the engine. The cross-block error above is what that assumption costs.
Margin discovery recovered from the flow, not configured
| Market group | Measurable | Coverage | Recovered | Configured | Error | Drift |
|---|
This is the production shape. An operator configures margin in
their own platform and betRISE never sees the configuration — it sees the flow. The
estimator is the over-round itself: for a market whose selections partition the outcome
space, the booked probabilities sum to it. The Configured column exists only here,
in the demo, so the recovery can be checked against the truth. On a real feed there is
nothing to check it against, which is exactly why the coverage and drift columns matter.
Two kinds of market cannot be read this way, and both were found by
measuring. Fold sources — double chance covers the outcome space twice,
so summing 1X, 12 and X2 double-counts; included, the three-way group recovered 1.229
against a configured 1.060. The engine already knew:
ingest() skips fold
sources when calibrating, for the same reason. Whole lines carry push mass, so
their selections sum to less than one — Asian 2.0 covers 0.714 of the space. Both
are excluded and counted rather than quietly averaged in.Coverage is the honest constraint. betRISE learns a market's
prices only from bets struck on it, so a market is measurable only once the flow has
revealed every selection. Two-way markets fill quickly; a correct score with
twenty-two selections almost never does. Drift is the widest gap in snapshots
between the observations that make up one estimate: prices move across the window, so a
market assembled from distant observations carries that movement in its over-round.
What this engine does not price, and why the boundary
Every market above is a function of a final
state, which is what makes it a projection of a grid and what makes correlated
exposure computable rather than asserted. A market that settles on the order or the
timing of events is a different object. Naming them is not a disclaimer: it is the
line that separates what has been built from what would need a within-game process
model, and it is the same line tennis sits on.
| Not priced from the grid | Why |
|---|
Method changes propagate through the whole book
betRISE de-margins with Profile B only
Unused when the betslip carries the platform's fair probability. Where it does not: net-win stable is parameter-free, round-trips to machine precision, and inverts a 50-way market as cleanly as a 2-way.
Monte-Carlo samples
Used for VaR and ES only. The expected liability is closed-form and cross-checked against the draw.
Calibration slack
0 when the probabilities are supplied or the source's pricing method is known. Raise it when de-margining an unknown third-party feed.
0.0
Source prices with
Stand-in for the operator feed betRISE is reading. Changing it regenerates the book.
Setup
Operator configuration. Set once, not per session — unlike the book generator, which is demo data and lives in the drawer.
Exposure limits drives every alert
Expected liability · selection ranks the worklist
Liability weighted by the probability it lands. This is the economic control: what the position costs, not what it could cost.
Expected downside · market
Sum of liability × probability over the outcomes that lose. The same measure as event downside, one level down.
Max payout · selection a ceiling, not a risk measure
Most you can be asked to hand over on one selection. Independent of probability on purpose: if it lands you owe it whatever the price said.
Max payout · market
Worst single outcome across a market's selections.
Plausibility floor payout scopes only
A payout breach under this probability is tagged longshot and sorted to the bottom of the worklist — still counted, never hidden. Without it the list ranks by lottery-ticket size: measured on three books, the median probability of a firing payout alert was under 3%, and four of the top five rows were correct score. With a hard cut-off instead of a demotion the same books go from four alerts to one, which is the opposite failure. 2.5% is a starting point, not a standard.
%
Event downside
Probability-weighted downside over the joint grids for one match.
Book VaR 95%
Ceiling on the 95th-percentile loss across the whole open book.
Coupling concentration a share, not an amount
Largest share of one match's expected liability that is carried by slips also riding on a single other match. The only ceiling here that is a percentage, because the risk is concentration rather than size. Judged against an effective figure: the base share scaled up by as much as 50% when the coupled exposure sits in one market on the other match rather than spread across several, since one outcome then resolves all of it together. The scaling is a judgement, and both figures are always shown.
%
Warning threshold
Utilisation at which an exposure turns amber.
75%
Hierarchical, the way a trading desk sets them: selection inside market inside event inside book. Utilisation is tracked at every level at once, so a book that is comfortable overall still surfaces the one selection that is not. Coupling concentration sits outside that nesting on purpose: it is not a bigger container, it is a different question, and it is the only one here that a conventional screen cannot compute at all.
Two families, deliberately. The expected ceilings are risk measures — liability weighted by whether it happens — and they rank the worklist. The payout ceilings are solvency controls and answer a different question: can this book pay. A desk runs both, because a notional cap does not care how unlikely the outcome was. Event downside, book VaR and coupling concentration were already probability-weighted; selection and market were the two that were not, which is why the worklist used to open on correct-score longshots.
Feed & ingestion
Betslip profile
A: the record carries the platform's fair probability, so betRISE uses it directly and no margin is stripped. B: odds only, betRISE recovers the probability itself. A is the common case on any platform that supports cash-out. The grids are calibrated either way, because a joint distribution cannot be read off marginals.
Alert routing
Where breaches are pushed.
Auto-suspend on breach
Pull the selection when it crosses its ceiling.
Base currency
Only the betslip profile and the limits are wired in this proof of concept. The rest is shown to place the settings that a live deployment needs, not to imply they are implemented.
betRISE risk console v64 · Logomath Analytics · synthetic data, no operator feed · figures illustrative