Skip to content

Atlas Ruling — Anchor Calibration: Structural, Not Regime

In response to: NEO Desk/handoffs/TO_ATLAS_anchor_calibration_question.md Ruling covers: S43–S50 anchor saturation pattern, ±10 bps cap appropriateness, anchor reference price methodology, ANCHOR-CALIBRATION workstream authorization


Ruling Summary

The anchor is miscalibrated. The current implementation measures the persistent CLOB-AMM basis (structural) plus short-term price movement (signal). These are two fundamentally different things and should not be combined into a single metric. The ±10 bps cap is inappropriate when the structural divergence routinely runs 12–20 bps. The result is that the anchor is always at the rail during afternoon ET, making ANCHOR_IDLE the steady state rather than the exception. This is a calibration problem, not a regime problem.

The answer to Katja's question is (B).


Architectural Finding

What the anchor is currently measuring

The anchor error is computed as:

anchor_error = AMM_price - CLOB_mid

This picks up two signals simultaneously:

  1. Structural pair basis — the persistent discount at which CLOB mid trades relative to the AMM price on this pair. For XRP/RLUSD during afternoon ET, this is approximately −12 to −20 bps and is stationary (it does not meaningfully recover within a session).

  2. Short-term regime distortion — transient deviations from the pair's normal basis that represent genuine market hostility: flash divergence, flow pressure, temporary liquidity gaps.

Only signal (2) should be triggering ANCHOR_IDLE. Signal (1) is background noise for this pair, not a tradeable regime indicator.

Why the cap makes it worse

With ±10 bps cap and a structural floor of ~12 bps minimum raw divergence during afternoon ET:

  • Raw anchor error: 12–20 bps (every tick)
  • Capped to: +10 bps (every tick)
  • Exit threshold: <6 bps for 30 consecutive ticks
  • Exit condition: mathematically unreachable

This is confirmed by S50: min raw divergence 11.9 bps, mean 10.0 bps at cap, 184/184 ticks cap-locked. The engine cannot exit ANCHOR_IDLE during afternoon ET regardless of actual market conditions.

Why S48 behaved differently

S48 ran at ~07:00Z (overnight ET). The CLOB-AMM structural gap narrows during overnight hours — likely 3–6 bps rather than 12–20 bps. With the anchor error closer to structural-only and within the cap range, the signal was not saturated. This is the same pair with the same methodology but a different underlying basis — further evidence that the current anchor is measuring a time-varying structural feature, not a regime distortion.


What the Anchor Should Measure

The correct anchor formulation:

anchor_signal = (clob_mid - amm_price) - rolling_pair_basis

Where rolling_pair_basis is a slowly-updating estimate of the structural CLOB-AMM discount for this pair at this time of day. The anchor signal then measures deviation from that baseline — i.e., the residual distortion relative to normal.

Under this formulation: - When the CLOB-AMM gap is exactly the structural baseline → anchor error ≈ 0 → ACTIVE - When the gap widens beyond baseline → positive anchor error → potential ANCHOR_IDLE - When the gap narrows within normal range → anchor error ≈ 0 → ACTIVE or exit

This correctly separates the structural pair basis from the time-varying regime signal.


Answers to the Four Questions

Q1: Is the anchor reference price correctly constructed for the XRP/RLUSD CLOB?

No. It is susceptible to permanent bias from persistent CLOB-AMM divergence on this pair. The structural basis is embedded directly in the anchor error with no normalization.

Q2: Is the ±10 bps cap appropriate?

No. With structural divergence running 12–20 bps, the cap clips all signal before it can be evaluated. A wider cap alone does not fix the problem — the root issue is the formulation, not the cap size. However, the cap will need recalibration once the residual-basis formulation is implemented.

Q3: What should the anchor actually be measuring?

Residual distortion relative to the pair's structural baseline. See above. The anchor should be zero-centered around the normal CLOB-AMM relationship for this pair, not around zero absolute divergence.

Q4: Is this a calibration problem rather than a regime problem?

Yes. FLAG-046 (ANCHOR_IDLE) was the correct structural fix for the episode budget issue. But it does not fix the root: the engine is idling during conditions that are actually tradeable. ANCHOR_IDLE is the right behavior when the market is genuinely hostile. It is the wrong behavior when the anchor is miscalibrated and the market is active.


Authorization

New workstream: ANCHOR-CALIBRATION is hereby authorized. This workstream owns the anchor reference price methodology, cap calibration, and any threshold adjustments.

Constraints (mandatory)

  • Do NOT just widen the cap. Raising ±10 bps to ±25 bps without fixing the formulation moves the rail but does not fix the underlying bias. The engine would still be measuring structural basis + short-term signal.
  • Do NOT loosen thresholds or lower prevalence requirements without a corrected formulation in place.
  • Do NOT proceed to Phase 7.4 clean session preconditions until the anchor model is corrected. Sessions under the current calibration cannot be evaluated for Phase 7.4 gate — the anchor behavior is not interpretable as a regime signal.

Interim operating guidance

While ANCHOR-CALIBRATION is in progress, treat anchor-triggered idling as inconclusive, not authoritative. The engine is pausing for an unknown reason (calibration error + regime, combined unresolved). Do not count sessions against Phase 7.4 clean session precondition in either direction.


Required Deliverable Before Implementation

I want a short calibration memo from Vesper covering three candidate anchor formulations. For each formulation, explicitly state:

  • What it blocks
  • What it allows
  • How it would have behaved in S48 vs S49/S50

Memo format: NEO Desk/handoffs/TO_ATLAS_vesper_calibration_memo.md

That memo comes before any code changes. Do not begin implementation until I have reviewed the formulations and ruled on one.


Three Candidate Formulations (to evaluate in memo)

Option 1 — Residual Basis Anchor

anchor_signal = (clob_mid - amm_price) - rolling_pair_basis
Rolling basis updates slowly (e.g., EMA over last N minutes). Anchor error is relative to historical norm.

Option 2 — CLOB-First Anchor

CLOB mid is the primary price reference. AMM price is diagnostic context only — used to detect unusual conditions but does not drive the anchor error calculation directly.

Option 3 — Dual Signal

Separate the structural basis metric (slow-moving, time-of-day aware) from the regime distortion metric (fast-moving, tick-level). ANCHOR_IDLE fires only on the distortion metric, not on the basis metric.


New Flag

This ruling generates FLAG-048 — ANCHOR-CALIBRATION: anchor reference price methodology requires correction. Vesper to file.


— Atlas (CSO) Filed by Vesper (COO) on behalf of Atlas 2026-04-22