Kalkasautonomous decisions
All domain modules

Full-field, pre-off, source-bound

Sport and racing

Ranked beliefs across a whole field, priced against the quotes that were reachable before the off.

Evidence

What this module supplies.

Runs bind a sealed point-in-time racing corpus, produce a ranked belief over the full field, and gate every wager through stake bounds and ruin policy before the decision is emitted. Settlement is the published result; learning records whether the belief or the price was wrong.

Gates

What gates every run.

Gates are evaluated before a decision is emitted, not at execution. A run that cannot clear one ends in a reasoned abstention or a rejected candidate instead of an effect.

Limits

What this module never does.

These are contract lines rather than caveats: the module has no path that requests them, in any configuration, on any surface.

  • neverNo account, wager, or funds reach a sportsbook or exchange
  • neverNo claim of profit, edge, or strike rate
  • neverNo outcome data available before the off

LimitProduct-wide, in every module

  • · No live decision, order, wager, or external effect exists in the shipped adapter.
  • · No custody of funds, accounts, or customer assets, and no counterparty reach-through.
  • · No guaranteed profit, no promised strike rate, and no performance claim sold as fact.
  • · No action when evidence, authority, replay, settlement, or effect identity is incomplete.

Worked sample run

The record this module produces.

An illustrative sample from this module, with the charts reading the numbers the run reports. The values are samples, and no production run exists yet.

sample dataAscot 15:40 — 8-runner handicap
decision clock 14 Mar 2026, 15:32 UTCAdmitted act

Full-field belief separated two runners above the confidence floor, stake stayed inside the ruin bound, and the simulated wager settled against the published result.

belief

0.00belief density1.00
p = 0.62interval 0.54–0.69interval width 15%

Ranked statistical model v3.4.1 — Ranked belief across the field, renormalised after non-runners.

believed against observed, sealed holdout

0.50.60.70.80.9
believed (x) against observed frequency (y) · dashed line is perfect calibration

evidence admitted

  • Field and drawDeclared racing corpus · sealed digest
    observed 14 Mar 2026, 14:05 UTC · available 14 Mar 2026, 14:06 UTC8 declared runners, 2 late non-runners excluded before inference.
  • Pre-off quotesQuote snapshot · per-runner availability time
    observed 14 Mar 2026, 15:20 UTC · available 14 Mar 2026, 15:20 UTCBest reachable price per runner; stale quotes past the window refused.
  • Going and conditionsCourse bulletin
    observed 14 Mar 2026, 13:40 UTC · available 14 Mar 2026, 13:41 UTCGoing updated twice; only the reading available at decision time was used.

mandate checks

Objective: Paper-first racing decisions under a fixed stake ceiling

  • Mandate presentSigned, unexpired authoritypass
  • Confidence floorat least 0.58 after interval shrinkpass
  • Stake bound1.5% of declared bankroll or lesspass
  • Ruin policyWorst-case drawdown inside policypass
  • Permitted effectSimulation adapter onlypass

authority expires 01 Apr 2026, 00:00 UTC

decision

DecisionAdmitted under mandate

The pre-off window had not closed, the quote was still reachable, and the stake stayed inside both the mandate bound and the ruin policy.

effect and settlement

adapter
simulation
adapter calls
1 · idempotent
idempotency key
sport-2026-03-14-1540-runner-4
effect receipt
sha256:6b31c2f7…a9d4
settlement
Observed outcome: 1 winner; simulated stake settled at the quoted price.
evaluation
Evaluation receipt bound to run and effect identity.
learning
Learning receipt: belief stood above the floor; price was the binding constraint.

run fingerprint sha256:1f0a94be…7c22replay deterministiclive:false

Illustrative worked example. Field names match a real run receipt; the values are samples, and no production run exists yet.

The ledger carries every sample decision in this module, including the ones that never reached an effect. A rejected candidate is recorded with its reason and settles with the run.

Next steps

Keep going from here.

Read the contract, run the loop, then read what the run recorded.