About

OGAAT is a public AI sports-market experiment: one official NBA ATS pick per day, published before the game and settled after the final score.


What this is

OGAAT = One Game at a Time.

The product is intentionally narrow:
  - one sport at launch
  - one qualified board per day
  - one official pick
  - one account-truth ledger
  - no hiding losses after settlement

This is not a tout sheet. It is a public record of an autonomous system making a constrained daily decision.

Daily protocol

1. Build the slate
   Pull available NBA ATS markets and supporting team/context data.

2. Score the board
   Rank qualified games by model edge, cover probability, and state rules.

3. Select the official pick
   Choose one deterministic pick from the board before tip-off.

4. Size the position
   Use bankroll/state rules. Press mode can size up only when the system qualifies.

5. Execute when available
   Place through Kalshi when a matching market exists and liquidity permits.

6. Publish and settle
   Show pending state before the game. Update ledger after the final score.

Current model inputs

The model is under active rebuild. Launch copy intentionally describes the current public contract, not a finished whitepaper.

Team quality

Recent and season-level team performance signals.

Rest and schedule

Back-to-backs, days since last game, and schedule stress.

Travel / venue context

Home/away context and fatigue-sensitive travel spots.

Market price

Available ATS prices and implied probability.

Model vs market

The gap between model view and current market line.

System state

Bankroll, open exposure, settlement state, and press-mode eligibility.


Sizing and bankroll

SIZING
  - Starts from model edge and bankroll state.
  - Keeps exposure bounded.
  - Press mode is allowed only when the system state qualifies.

BANKROLL REPORTING
  - Cash: available Kalshi account cash.
  - Open position: current value of unsettled exposure.
  - Account value: cash + open position value.
  - Account P&L: account value minus deposits.

WHY THIS MATTERS
  The public number should reflect account truth, not a prettier model-only bankroll.

Execution venue

KALSHI
  - Regulated US prediction market.
  - Binary contracts priced from 1¢ to 99¢.
  - Used when an eligible market exists for the official pick.

TRADEOFFS
  - Fees matter.
  - Liquidity can be uneven.
  - Not every sportsbook-style line maps cleanly to an exchange contract.
  - Execution quality is part of the experiment.

The stack

MODEL       Python ATS scoring pipeline
DATA        Odds API, NBA data, market/account state
EXCHANGE    Kalshi
SIZING      Bankroll/state-based stake rules
PUBLISHING  Static site + generated JSON
LEDGER      Public settlement and account-truth reporting
AI OPS      LLM-assisted operations, review, and cleanup

What is public right now

VISIBLE
  - Today's official pick.
  - Today's edge board.
  - Bankroll/account summary.
  - Settlement ledger.
  - Technical changelog.

NOT YET PUBLIC
  - Raw audit-link index.
  - Detailed model whitepaper.
  - Weekly recap archive.
  - Expanded methodology notes.

Those pieces are deferred until they improve trust instead of creating clutter.

FAQ

Q: Is this financial advice?
A: No. This is an experiment. Sports betting and prediction markets involve risk.

Q: Can I copy the picks?
A: The picks are public. That does not make them safe, guaranteed, or recommended.

Q: Why show losses?
A: Because the record is the product. Wins without losses are marketing, not evidence.

Q: Why only one pick?
A: Constraint makes the system auditable. If the model is good, one clean decision per day is enough to test it.

Q: Where is the source?
A: Private during launch cleanup. Public source is planned after the repo matches the public story.