Kestrel • Terminal
Dashboard
Control plane
Persisted state normal · source recompute · updated 2026-05-19T03:54:43.104824+00:00
Summary effective=normal | gov=normal | ops=normal | recon=normal | inc=normal
Persisted age 778.8h — stale (older than 600s; run recompute or enable worker)
Submit guard (env) on · OMS submissions allowed (not frozen)
Runtime enablement (Phase 51B)
Live trading BLOCKED · PAPER manual stock ALLOWED (IBKR paper)
Options-live and autonomous-live remain blocked. NO_GO safety preserved (paper env).
IBKR Client Portal paper session only — manual stock BUY/SELL. Live/real-money, options-live, and autonomous-live remain blocked.
Recent blocked OMS submits (audit)
2026-05-02T14:38:51.291754+00:00 · AAPL · ord-exit-4
Raw: paper_test_rth_required
Paper test — RTH only
Paper-test guard requires regular trading hours before allowing this class of entry/submit.
Next: Retry during RTH or adjust paper-test RTH policy only if your playbook explicitly allows off-hours testing.
2026-05-02T14:38:51.287902+00:00 · AAPL · ord-exit-3
Raw: paper_test_rth_required
Paper test — RTH only
Paper-test guard requires regular trading hours before allowing this class of entry/submit.
Next: Retry during RTH or adjust paper-test RTH policy only if your playbook explicitly allows off-hours testing.
2026-05-02T14:38:51.277890+00:00 · AAPL · ord-exit-2
Raw: paper_test_rth_required
Paper test — RTH only
Paper-test guard requires regular trading hours before allowing this class of entry/submit.
Next: Retry during RTH or adjust paper-test RTH policy only if your playbook explicitly allows off-hours testing.
  • PAPER ONLY — IBKR paper account active. Live trading is blocked.
  • LIVE TRADING NO-GO — signed approval is missing.
  • Phase 54 documentation is not approval to trade live.

IBKR PAPER — manual stock BUY/SELL

PAPER ONLY

Operator ticket for IBKR Client Portal paper session only. Submits to POST /internal/oms/paper-stock-order. Live, options, and autonomous paths are not available here.

Operator readiness

Readiness is informational. Backend policy/risk gates remain authoritative.

No readiness data yet.

Safety (fixed): mode PAPER, broker IBKR_PAPER, source terminal_manual, asset STOCK. No live / options / autonomous toggles on this form.

First paper submit checklist: refresh broker truth → confirm readiness open → Preview dry run → submit once.

Dry run only — no IBKR order submitted. Submit PAPER stock order is the only action that can place a paper broker order. Live, options-live, and autonomous-live remain blocked.

Readiness and dry-run are not order submission.

Manual submit requires final confirmation with account, symbol, side, quantity, order type, and environment.

Active working orders: trust active_working_orders, not raw broker feed rows.

Stale broker truth blocks submission.

A. Instrument

US equity symbol only (no options).

B. Order details

Buy or sell; market or limit.

C. Paper account

IBKR paper account id (default DUP667958).

Before submit (copy reminder only)

Manual submit requires final confirmation with account, symbol, side, quantity, order type, and environment.

Readiness and dry-run are not order submission.

Preview dry run validates policy and risk without IBKR submit. Submit is explicit and separate — it never runs automatically after a dry run. When US equity RTH is closed, Submit is disabled here; backend would block submit anyway.

D. Safety confirmation / results

Validation, policy, broker, and network outcomes appear here.

No submit result yet. Fill the form and submit a paper stock order.

Broker truth snapshot
Persisted IBKR paper account state — refresh from the order ticket.

Account DUP667958

Refresh broker truth required

Current snapshot may not reflect broker state. Refresh broker truth on the order ticket before trusting reconciliation or open-order matches.

Current snapshot may not reflect broker state (1592018s old, threshold 300s).

Raw broker open-orders feed rows are not necessarily active working orders. Active working orders use per-row status and remaining quantity. Filled zero-remaining rows may remain visible in the IBKR Client Portal open-orders feed.Active working orders: trust active_working_orders, not raw broker feed rows.

Account
DUP667958
Broker env
paper
Adapter
live
Buying power known
yes
Positions count
12
Broker feed rows
0
Active working orders
0
Filled / zero remaining rows
0
Terminal / inactive rows
0
Snapshot stale
yes (refresh required)
Snapshot age
1592018s
Snapshot at
Jun 2, 2026, 4:30 AM
Net liquidation
1212046.80
Cash
2026637.00
Buying power
2026637.00
Positions preview
Latest persisted broker positions for this account.
SymbolQtySide
AAPL-565.0000short
AVGO3.0000long
CF-99.0000short
COST-99.0000short
GOOG-195.0000short
GOOGL-188.0000short
Recent PAPER stock orders
Read-only lifecycle and broker-truth reconciliation for manual terminal submits.

Broker truth is fresh — reconciliation labels reflect the latest snapshot.

No recent manual paper stock orders for this account.

Dashboard
Paper manual stock terminal — trade ledger and control-plane visibility (read-only). Autonomous and live trading are not enabled from this page.
Open trades
0
Closed trades
4
Total unrealized
0.00
Total realized
5.22
Win rate
100.0%
Ledger version
8b_analytics_v1
Strategy loop (9C)
Command center →
Source: /internal/strategy-loop/* (latest run + decisions)
Latest run_id
93
Strategy
formal_loop_v1@1
Created
2026-05-05T16:27:05.579224+00:00
Execution proof for latest run: /internal/strategy-loop/pipeline
Trade → OMS ingested
0
Trade → OMS pending
2
Broker submitted
0
Filled
0
Reconciliation (9I)
Operator →
Source: /internal/reconciliation-v2/latest
Latest run_id
16
Severity
warning
Findings
14
Recommended actions (9J)
rerun_reconciliationRe-run reconciliation
ok
Last operator action (9K)
2026-05-02T16:05:43.272879+00:00 • rerun_reconciliation • ok
Interventions state (9L)
intake_paused=false • submit_held=false
Open trades (preview)
View all →
Most recent open/closing lots by opened_at.
TypeInstrumentStatusRemUnreal
No open trades.
Closed trades (preview)
View all →
Most recent closed lots by closed_at.
TypeInstrumentRealizedClosed
stock
AAPL
AAPL
0.002026-05-02T14:54:33.350039+00:00Detail
stock
AAPL
AAPL
0.002026-05-02T14:54:33.350039+00:00Detail
stock
AAPL
AAPL
0.002026-05-02T14:54:33.350039+00:00Detail
stock
MSFT
MSFT
5.222026-04-27T14:32:12+00:00Detail
Autonomous policy denies (read-only)
Latest deny rows with plain-English reasons — collapsed by default so the paper ticket stays primary.
8 recent
2026-05-02T16:53:12.774824+00:00 · AMD · ord-stratloop-106
Raw: ORDER_CANDIDATE_STALE
Order candidate stale
The OMS order row is older than the policy freshness window for autonomous submit, so the candidate is treated as stale.
Next: Confirm scanner + strategy-loop just ran; check feature timestamps vs decision time; reduce clock skew.
Raw: BROKER_ACCOUNT_STATE_STALE
Broker account snapshot stale
The latest persisted broker account snapshot is older than the policy TTL.
Next: Verify worker-oms / broker-truth snapshot path; check GET /internal/broker-truth/account/latest freshness.
Raw: BROKER_POSITIONS_STATE_STALE
Broker positions snapshot stale
Broker positions used for safety checks are older than the allowed freshness window.
Next: Confirm broker-truth positions snapshots are updating; inspect worker-oms logs and snapshot timestamps.
Raw: BROKER_OPEN_ORDERS_STATE_STALE
Broker open-orders snapshot stale
Open-order snapshots used for duplicate/conflict checks are older than the policy TTL.
Next: Verify broker open-order snapshot ingestion; compare with IBKR Client Portal open orders.
Raw: RECONCILIATION_STATE_STALE
Reconciliation signal stale
Reconciliation inputs used by autonomous policy are older than the configured TTL.
Next: Review /internal/reconciliation-v2/latest and pipeline footprint; run read-only recon preview if configured.
Raw: STRATEGY_LOOP_STATE_STALE
Strategy-loop context stale
Strategy-loop run/decision context is older than the policy freshness window relative to submit time.
Next: Confirm latest strategy-loop run completed; align scanner → loop cadence; check run metadata timestamps.
Raw: MARKET_CLOSED_FOR_STOCK
Market closed
Stock entries are blocked because the session is outside the allowed US equity trading window for this policy.
Next: Wait for regular trading hours or verify market-hours / calendar configuration for paper vs live.
Raw: PAPER_TEST_RTH_REQUIRED
Paper test — RTH only
Paper-test guard requires regular trading hours before allowing this class of entry/submit.
Next: Retry during RTH or adjust paper-test RTH policy only if your playbook explicitly allows off-hours testing.
Raw: DATA_FEATURES_STALE
Feature data stale
Feature snapshots feeding the policy are older than the allowed freshness threshold.
Next: Check market-data / features workers and latest feature snapshot timestamps in pipeline footprint.
Raw: DATA_BROKER_TRUTH_STALE
Broker-truth data stale
Broker-truth inputs (quotes/account/positions) are considered stale for autonomous submit.
Next: Inspect broker-truth snapshot ages and worker-oms reconcile cycles; confirm gateway connectivity.
2026-05-02T16:53:12.741420+00:00 · GOOGL · ord-stratloop-105
Raw: ORDER_CANDIDATE_STALE
Order candidate stale
The OMS order row is older than the policy freshness window for autonomous submit, so the candidate is treated as stale.
Next: Confirm scanner + strategy-loop just ran; check feature timestamps vs decision time; reduce clock skew.
Raw: BROKER_ACCOUNT_STATE_STALE
Broker account snapshot stale
The latest persisted broker account snapshot is older than the policy TTL.
Next: Verify worker-oms / broker-truth snapshot path; check GET /internal/broker-truth/account/latest freshness.
Raw: BROKER_POSITIONS_STATE_STALE
Broker positions snapshot stale
Broker positions used for safety checks are older than the allowed freshness window.
Next: Confirm broker-truth positions snapshots are updating; inspect worker-oms logs and snapshot timestamps.
Raw: BROKER_OPEN_ORDERS_STATE_STALE
Broker open-orders snapshot stale
Open-order snapshots used for duplicate/conflict checks are older than the policy TTL.
Next: Verify broker open-order snapshot ingestion; compare with IBKR Client Portal open orders.
Raw: RECONCILIATION_STATE_STALE
Reconciliation signal stale
Reconciliation inputs used by autonomous policy are older than the configured TTL.
Next: Review /internal/reconciliation-v2/latest and pipeline footprint; run read-only recon preview if configured.
Raw: STRATEGY_LOOP_STATE_STALE
Strategy-loop context stale
Strategy-loop run/decision context is older than the policy freshness window relative to submit time.
Next: Confirm latest strategy-loop run completed; align scanner → loop cadence; check run metadata timestamps.
Raw: MARKET_CLOSED_FOR_STOCK
Market closed
Stock entries are blocked because the session is outside the allowed US equity trading window for this policy.
Next: Wait for regular trading hours or verify market-hours / calendar configuration for paper vs live.
Raw: PAPER_TEST_RTH_REQUIRED
Paper test — RTH only
Paper-test guard requires regular trading hours before allowing this class of entry/submit.
Next: Retry during RTH or adjust paper-test RTH policy only if your playbook explicitly allows off-hours testing.
Raw: DATA_FEATURES_STALE
Feature data stale
Feature snapshots feeding the policy are older than the allowed freshness threshold.
Next: Check market-data / features workers and latest feature snapshot timestamps in pipeline footprint.
Raw: DATA_BROKER_TRUTH_STALE
Broker-truth data stale
Broker-truth inputs (quotes/account/positions) are considered stale for autonomous submit.
Next: Inspect broker-truth snapshot ages and worker-oms reconcile cycles; confirm gateway connectivity.
2026-04-24T17:23:06.627567+00:00 · QQQ · ord-stratloop-48
Raw: RECONCILIATION_STATE_STALE
Reconciliation signal stale
Reconciliation inputs used by autonomous policy are older than the configured TTL.
Next: Review /internal/reconciliation-v2/latest and pipeline footprint; run read-only recon preview if configured.
Raw: STRATEGY_LOOP_STATE_STALE
Strategy-loop context stale
Strategy-loop run/decision context is older than the policy freshness window relative to submit time.
Next: Confirm latest strategy-loop run completed; align scanner → loop cadence; check run metadata timestamps.
2026-04-24T17:23:06.603402+00:00 · SPY · ord-stratloop-47
Raw: RECONCILIATION_STATE_STALE
Reconciliation signal stale
Reconciliation inputs used by autonomous policy are older than the configured TTL.
Next: Review /internal/reconciliation-v2/latest and pipeline footprint; run read-only recon preview if configured.
Raw: STRATEGY_LOOP_STATE_STALE
Strategy-loop context stale
Strategy-loop run/decision context is older than the policy freshness window relative to submit time.
Next: Confirm latest strategy-loop run completed; align scanner → loop cadence; check run metadata timestamps.
2026-04-24T16:09:10.951475+00:00 · AAPL · ord-stratloop-83
Raw: AUTONOMOUS_MAX_CONCURRENT_GLOBAL_REACHED
Policy / guard reason
This reason code is not in the Phase 14B operator glossary yet; the raw code is still authoritative for automation. Raw: AUTONOMOUS_MAX_CONCURRENT_GLOBAL_REACHED.
Next: Inspect GET /internal/autonomous-policy/runs (full detail) or extend apps/web/lib/autonomousReasonLabels.ts.
Raw: AUTONOMOUS_MAX_CONCURRENT_SYMBOL_REACHED
Policy / guard reason
This reason code is not in the Phase 14B operator glossary yet; the raw code is still authoritative for automation. Raw: AUTONOMOUS_MAX_CONCURRENT_SYMBOL_REACHED.
Next: Inspect GET /internal/autonomous-policy/runs (full detail) or extend apps/web/lib/autonomousReasonLabels.ts.
Raw: DUPLICATE_CANDIDATE_FINGERPRINT
Policy / guard reason
This reason code is not in the Phase 14B operator glossary yet; the raw code is still authoritative for automation. Raw: DUPLICATE_CANDIDATE_FINGERPRINT.
Next: Inspect GET /internal/autonomous-policy/runs (full detail) or extend apps/web/lib/autonomousReasonLabels.ts.
2026-04-24T14:24:08.454746+00:00 · SPY · ord-stratloop-75
Raw: BROKER_ACCOUNT_STATE_STALE
Broker account snapshot stale
The latest persisted broker account snapshot is older than the policy TTL.
Next: Verify worker-oms / broker-truth snapshot path; check GET /internal/broker-truth/account/latest freshness.
Raw: BROKER_POSITIONS_STATE_STALE
Broker positions snapshot stale
Broker positions used for safety checks are older than the allowed freshness window.
Next: Confirm broker-truth positions snapshots are updating; inspect worker-oms logs and snapshot timestamps.
Raw: BROKER_OPEN_ORDERS_STATE_STALE
Broker open-orders snapshot stale
Open-order snapshots used for duplicate/conflict checks are older than the policy TTL.
Next: Verify broker open-order snapshot ingestion; compare with IBKR Client Portal open orders.
2026-04-24T13:32:17.384925+00:00 · SPY · ord-stratloop-70
Raw: RECONCILIATION_STATE_STALE
Reconciliation signal stale
Reconciliation inputs used by autonomous policy are older than the configured TTL.
Next: Review /internal/reconciliation-v2/latest and pipeline footprint; run read-only recon preview if configured.
Raw: AUTONOMOUS_MAX_CONCURRENT_GLOBAL_REACHED
Policy / guard reason
This reason code is not in the Phase 14B operator glossary yet; the raw code is still authoritative for automation. Raw: AUTONOMOUS_MAX_CONCURRENT_GLOBAL_REACHED.
Next: Inspect GET /internal/autonomous-policy/runs (full detail) or extend apps/web/lib/autonomousReasonLabels.ts.
Raw: AUTONOMOUS_MAX_CONCURRENT_SYMBOL_REACHED
Policy / guard reason
This reason code is not in the Phase 14B operator glossary yet; the raw code is still authoritative for automation. Raw: AUTONOMOUS_MAX_CONCURRENT_SYMBOL_REACHED.
Next: Inspect GET /internal/autonomous-policy/runs (full detail) or extend apps/web/lib/autonomousReasonLabels.ts.
2026-04-24T13:32:17.340066+00:00 · QQQ · ord-stratloop-69
Raw: RECONCILIATION_STATE_STALE
Reconciliation signal stale
Reconciliation inputs used by autonomous policy are older than the configured TTL.
Next: Review /internal/reconciliation-v2/latest and pipeline footprint; run read-only recon preview if configured.
Raw: AUTONOMOUS_MAX_CONCURRENT_GLOBAL_REACHED
Policy / guard reason
This reason code is not in the Phase 14B operator glossary yet; the raw code is still authoritative for automation. Raw: AUTONOMOUS_MAX_CONCURRENT_GLOBAL_REACHED.
Next: Inspect GET /internal/autonomous-policy/runs (full detail) or extend apps/web/lib/autonomousReasonLabels.ts.
Raw: AUTONOMOUS_MAX_CONCURRENT_SYMBOL_REACHED
Policy / guard reason
This reason code is not in the Phase 14B operator glossary yet; the raw code is still authoritative for automation. Raw: AUTONOMOUS_MAX_CONCURRENT_SYMBOL_REACHED.
Next: Inspect GET /internal/autonomous-policy/runs (full detail) or extend apps/web/lib/autonomousReasonLabels.ts.