Three flavors of autonomous casino LLM agent validation

If you follow casino news closely, you will probably remember the video poker game that could be hacked with certain button sequences or the UK iGaming operator whose jackpot feature triggered 50x more frequently than expected.  We personally know of a casino that accidentally gave $1m a month too much in marketing reinvestment due to a software parameter issue.  These are misses in UAT validation. 

LLM-driven processes only complicate validation further.  LLMs are notorious for hallucinating or producing wildly inconsistent results when asked the same question.  Getting this right is the number one roadblock for LLM automation in the casino industry.  We are seeing clients have great success amplifying a single user’s productivity with support of foundational models like Claude and Copilot.  A single user can create code or do a general analysis far faster today than a couple years ago.  But this process is still centered around a user. Scaling to be more reliant on autonomous agents requires assurances that actions are appropriate.  Our system – Hex – is based on automating agents and to commercialize, we needed an approach to validation.  We hope the major industry testing companies will follow suit. 

The validation process we developed is the first of its kind in the casino industry. There are three broad challenges in a casino LLM validation system: are outputs accurate, are they ‘coherent’, and is there MCP/API fidelity.  We will take each challenge in turn.

Definition: Before reading on, a note on terminology: we use the term "semantic" often. Semantics refers to meaning rather than wording; two contexts are semantically similar if they describe the same situation in different words. ADT and ATT is normalized spend per day or trip, respectively.

Accuracy 

Of the three, accuracy is the easiest to understand.  Accuracy validation evaluates if the LLM retrieves / summarizes numbers which are consistently correct.  For instance, if a user asks about player reinvestment over the period, do the returned results tie to source systems?  With accuracy there is a clear right or wrong answer.

Coherence

Coherence, by contrast, is fuzzier.

Coherence measures how well the LLM produces recommendations that are appropriate given the context. Coherence needs to be consistently appropriate even across semantically similar contexts. For instance, consider the context and recommendation pair below.  In this instance, we are using a LLM to recommend a ‘diagnosis’ regarding the state of the player:

Context Human-approved diagnosis
  • The patron last visited 44 days ago
  • Overdue at: if she does not visit in the next 20 days
  • On her last trip, she became a non-lodger
  • Frequency and ATT decliner
  • Irregular visitor
  • Large LTD actual loss
This patron has become non-loyal and has likely migrated most of her wallet to a competitor but has not yet lapsed. Typically, players like this are at high risk of churn.

Given fine-tuning, access to appropriate examples (embedded in a vector DB), and informed by predictive modelling and history, an LLM can craft a ‘coherent’ output like the below

Diagnosis example: small fine-tuned LLM with access to examples in vector database

Context LLM Diagnosis1
  • The patron last visited 44 days ago
  • Overdue at: if she does not visit in the next 20 days
  • On her last trip, she became a non-lodger
  • Frequency and ATT decliner
  • Large LTD actual loss
  • Irregular visitor
This patron has recently become non-loyal and has likely migrated her entire wallet on most casino visits to another casino. The trips that still occur at the property are probably “change-your-luck” trips, and the majority of her wallet has migrated to a competitor. Expect the patron to stop visiting shortly.

Poorly supported LLMs will often return ‘incoherent responses’ like the following:

Diagnosis example: leading large parameter frontier model (with no fine-tuning or context)

Context LLM Diagnosis2
  • The patron last visited 44 days ago
  • Overdue at: if she does not visit in the next 20 days
  • On her last trip, she became a non-lodger
  • Frequency and ATT decliner
  • Large LTD actual loss
  • Irregular visitor
This player is an actively declining, at-risk player in the pre-lapse window, likely due to loss fatigue.

The gap between each model's output and the hand-curated recommendation is what coherence measures.  Validation needs a way of quantifying the distance between the approved recommendations (in this case diagnosis) and the LLM generated recommendation.  We do that with an LLM-as-judge scoring system.

In order to validate coherence, we go through the following steps:

  1. We first identify a set of potential context situations.  We use an analytical approach rooted in conjoint analysis to identify a representative set of context situations. 

  2. For each context situation we curate and hand-approve a diagnosis.  This takes expert-level experience. 

  3. We ask the LLM to create a diagnosis, conclusion, or recommendation. (LLM as a judge if well established evaluation technique).

  4. We use an LLM as a judge to rate the ‘coherence’ between the approved diagnosis and the LLM-created diagnosis. To estimate this score, the LLM judge first extracts the important topics from the diagnosis and then rates semantic similarity between the LLM and approved diagnoses on a limited scale.  Depending on the use case, we weight the topics within the score. 

Returning to our two examples and assuming equal weighting between the topics and using a 30 point scale:

  • The fine-tuned small LLM received a score of 22 out of 30, importantly capturing the idea of competitive promiscuity.

  • The large frontier LLM got an 13 out of 30, focusing on disengagement rather than an understanding of competitive pressures.  

This is the logical appropriateness aspect of coherence. 

Importantly, the LLM needs to return consistent results given different contexts which are semantically similar.  To measure consistency, we vary the contexts and measure the overall consistency.  Consider the following variations:

Context LLM Diagnosis
  • The patron's most recent visit was 44 days ago
  • Flagged overdue if no visit occurs within the next 20 days
  • On her latest trip, she did not stay overnight (non-lodger)
  • Declining trip frequency and average trip theo
  • Irregular visitation pattern
  • Large lifetime actual loss
This patron has shifted to a non-loyal state and has most likely moved the bulk of her wallet to a competing property, though she has not yet lapsed. Patrons fitting this profile typically carry high churn risk.
  • It has been 26 days since the patron last visited
  • Will be considered overdue if she does not return within roughly three weeks
  • Both visit frequency and ATT are trending down
  • Visits are sporadic rather than routine
  • YTD actual loss 2x theo loss
The patron is no longer loyal to the property and has probably migrated the majority of her gaming wallet to a competitor; she remains active enough not to be classified as lapsed. Players in this situation are typically at high risk of churning.
  • Last trip occurred about six weeks ago
  • Overdue threshold reached if no visit occurs in the next 20 days
  • Was previously a hotel guest but did not lodge on her last visit
  • Frequency decliner and average trip time decliner
  • High visitation lag standard deviation
  • YTD net loss to property
This patron has become non-loyal, and the evidence points to most of her wallet migrating to a competitive property while she has not yet fully lapsed. This pattern is characteristic of a high-churn-risk player.
  • At the threshold of overdue but not yet overdue
  • Transitioned from lodger to non-lodger on her most recent trip
  • Trip frequency and ATT are both in decline
  • Her visitation cadence is irregular
  • Large cumulative actual loss over her lifetime with the property
The patron shows the signature of lost loyalty: the majority of her wallet has likely been captured by a competitor, although she has not lapsed yet. Historically, patrons exhibiting this pattern are high churn risks.
  • On her last trip, she lodged on one of four playdays
  • Downward trend in both visit frequency and average trip theo
  • Irregular visitor profile
  • Sizable LTD actual loss
This patron has drifted into non-loyalty and has likely redirected most of her spend to a competitor casino, but she is not yet a lapsed player. Patrons with this profile are typically flagged as high churn risk.

Judged by the LLM, the above batch yields a composite score of 25 out of 30: i.e. the LLM yields consistent results.

Integration or MCP/API fidelity

The final validation step is MCP/API fidelity: confirming that the LLM's intended action is translated into the correct API call. We test this the same way we test coherence, centered around a curated set of contexts, each paired with an approved reference output, but here the reference output is a JSON payload rather than a prose diagnosis. Scoring is also stricter: instead of judging semantic similarity, we check that the generated call matches the reference exactly, including the right endpoint, right parameters, right values. An API call is either correct or it isn't, so this step looks more like accuracy validation than coherence validation.

Simulation

Like the RNG inside a slot machine, LLMs have inherent randomness.  To deal with this uncertainty, we simulate this process through thousands of iterations and evaluate the resulting scores saving the responses at each run.  We then analyze results of this simulation focusing on the amount of variance with the measures. Our LLM stress-testing validation process is the first such process in the casino industry.

Footnotes:

  1. 30B parameter fine-tuned model

  2. Claude Fable 5 model