Skip to content

KB/operations

FinRep-AI — the two-stage AI read (AI-1 → AI-2)

Last verified

The platform’s AI is split into two stages with different jobs and different honesty contracts:

Every verdict — both variants — is persisted and graded forward. The accountability layer is the track record, shown openly on The Engine’s AI-2 Tracker, not a promise.

Honesty by construction

The design principle across both stages: a field that does not exist cannot lie, and a claim that is graded cannot hide.

AI-1 is describe-only, enforced at parse time. Three hard rules reject a read outright: the risk band it reports must echo the platform’s validated drawdown-risk band verbatim (AI-1 may not invent its own risk level); no directional field may appear anywhere in the output (direction, stance, buy/sell keys — rejected at any depth); and every prose string passes a source-attribution scrub (the AI describes data in the platform’s own vocabulary — dealer positioning, dark-pool flow, options analytics — never by upstream provider). A rejected read is persisted with a null payload so the failure itself is auditable.

The deterministic AI-2 verdict has no direction field to fill. Its risk band is a mechanical passthrough of the validated drawdown-risk composite’s band — AI-2 never re-judges it and never escalates on top of it. Its magnitude read (big / normal / small expected move, either direction) comes from a pre-registered move-size band that is still being graded — it renders with a “grading in progress” marker until the forward grade confirms it. Everything else — regime backdrop, watch-lines, likelihood framing — is a pure function of named platform surfaces. Same inputs, same verdict, every time, at zero marginal cost.

The LLM AI-2 verdict gets full latitude and a full grade. The model receives AI-1’s read and the deterministic verdict as a reference floor, and may override any of it: its own risk band, its own magnitude call, its own watch-lines and levels, trade construction in prose, the graded direction call, and an optional free-text trade idea. Exactly two things reject a render, both structural: naming a restricted upstream data source, or a malformed direction field (the shape gate exists so the experiment always produces gradeable data — the content of the reasoning is free). A rejected or unavailable render falls back to the deterministic verdict, clearly marked as a fallback — the LLM path is never on the critical path.

What the AI sees (the signal pack)

Both stages read the same signal pack, built from the same signal store that feeds the dashboard and the public API — no private feed. The pack carries:

When it runs

AI-1 fires twice per trading day — a pre-market read (~08:30 ET) and a close recap (~16:15 ET). Each AI-1 read immediately triggers the AI-2 synthesis: the deterministic verdict always, and the LLM variant alongside it. On weekends and market holidays no reads fire at all — the signal store is frozen on closed sessions, so a read would only re-describe stale state; the cadence resumes at the next session’s pre-market read.

Event-driven fires add reads when conditions actually change: when one of the platform’s tripwires flips from armed to triggered and holds for 20 continuous minutes — a sustained condition change, never a momentary flicker. Each wire fires at most once per episode with a 2-hour per-wire cooldown, capped at 3 event fires per day with a 30-minute minimum gap.

Grading is unaffected by event fires: the forward graders score one observation per trading day — the closing verdict — so extra intraday reads are display freshness, never double-counted evidence.

What the verdict contains

The served verdict object, rendered on The Tape’s Market State and AI Read cards:

The accountability layer

Four standing graders score the recorded verdicts forward, each against realized outcomes, each with an explicit maturity floor below which it reports insufficient_data rather than a confident number:

The distilled scorecards are public on GET /api/v1/ai2/history and rendered on The Engine’s AI-2 Tracker. While samples mature, the scorecard says so plainly — “too early to know if this works” is the designed output, not a failure state. A failed forward grade raises a loud falsification flag naming the kill action — the operator pulls the read from the display (graders never auto-act); the recording never stops.

Where to see it

Why two stages

  1. Describing and judging are different failure modes. A model that both reads the tape and renders the verdict can launder a hunch into a confident call. Splitting the stages means the description is auditable on its own, and the verdict layer either contains no judgment at all (deterministic) or is graded on every judgment it makes (LLM).
  2. The default read costs nothing and cannot drift. The deterministic verdict is pure code over validated surfaces — always available, byte-reproducible, immune to model regressions. The LLM variant has to earn any larger role through its side-by-side track record.
  3. The AI reads the platform’s own surface. The signal pack is the same data the dashboard renders and the public API serves — same store, same trust adjustments, same freshness flags. If the data layer is good enough for the AI’s read, it is good enough for anyone subscribing to it.