Phase 19M · Operator wireframe · Phase 54 pre-live monitoring
SAFE PARKED STATE
Read only
Parked wireframe: no POST routes, broker mutations, OMS mutations, order submission, or live enablement paths. Telemetry below uses the same read-only GET overview payloads as production fetches. Phase 54 documentation is monitoring and review only — not live approval.
Phase 54 pre-live safety copy
- Phase 54 pre-live review — not live approval.
- PAPER ONLY — IBKR paper account active. Live trading is blocked.
- LIVE TRADING NO-GO — signed approval is missing.
- Auth/RBAC gap remains: internal routes are not protected by per-operator identity.
- Phase 54 documentation is not approval to trade live.
Authorization status
Filled rows need broker_order_id and fill fields to PASS. Reference: ord-stratloop-86.
| order_id | symbol | OMS status | filled_qty | avg_fill_price | broker_order_id (OMS) | proof | proof_reason |
|---|---|---|---|---|---|---|---|
| ord-manual-6da32de74fc9 | AAPL | submitted | 0 | — | 1211957035 | — | — |
| ord-manual-f9b6ddf00a92 | AAPL | approved | 0 | — | — | — | — |
| ord-manual-f7524be6dc81 | AAPL | approved | 0 | — | — | — | — |
| ord-manual-876133187eb8 | AAPL | approved | 0 | — | — | — | — |
| ord-manual-9568712e367b | AAPL | submitted | 0 | — | 1554758323 | — | — |
| ord-manual-de0d40f1df30 | AAPL | error | 0 | — | — | — | — |
| ord-manual-6971d1926b3c | AAPL | error | 0 | — | — | — | — |
| ord-stratloop-106 | AMD | canceled | 0 | — | — | — | — |
| ord-stratloop-105 | GOOGL | canceled | 0 | — | — | — | — |
| ord-exit-4 | AAPL | canceled | 0 | — | — | — | — |
| ord-exit-2 | AAPL | canceled | 0 | — | — | — | — |
| ord-exit-3 | AAPL | canceled | 0 | — | — | — | — |
| ord-exit-1 | MSFT | filled | 2 | 423.29 | 1569812048 | PASS | — |
| ord-stratloop-86 | AAPL | filled | 3 | 270.1 | 358965319 | PASS | — |
| ord-stratloop-47 | SPY | error | 0 | — | — | — | — |
| ord-stratloop-48 | QQQ | error | 0 | — | — | — | — |
| ord-stratloop-83 | AAPL | filled | 3 | 271.05 | 2142597903 | PASS | — |
| ord-stratloop-81 | AAPL | filled | 3 | 271.04 | 2142597650 | PASS | — |
| ord-stratloop-79 | MSFT | filled | 2 | 420.68 | 1467309844 | PASS | — |
| ord-stratloop-75 | SPY | error | 0 | — | — | — | — |
| ord-stratloop-76 | QQQ | error | 0 | — | — | — | — |
| ord-stratloop-73 | QQQ | error | 0 | — | — | — | — |
| ord-stratloop-69 | QQQ | error | 0 | — | — | — | — |
| ord-stratloop-70 | SPY | error | 0 | — | — | — | — |
| symbol | status | entry | exit | realized | warnings |
|---|---|---|---|---|---|
| AAPL | closed | ord-stratloop-86 | — | 0 | — |
| AAPL | closed | ord-stratloop-83 | — | 0 | — |
| AAPL | closed | ord-stratloop-81 | — | 0 | — |
| MSFT | closed | ord-stratloop-79 | ord-exit-1 | 5.22 | — |
- All overview feeds returned data for this render.
- Problem orders in window: 14 — see table below or /operator/orders
- Autonomous policy denies in sample window: 8
| order_id | sym | status | created |
|---|---|---|---|
| ord-manual-de0d40f1df30 | AAPL | error | 2026-05-19T17:54:49.889486+00:00 |
| ord-manual-6971d1926b3c | AAPL | error | 2026-05-19T17:53:31.307310+00:00 |
| ord-stratloop-106 | AMD | canceled | 2026-05-02T16:48:24.396792+00:00 |
| ord-stratloop-105 | GOOGL | canceled | 2026-05-02T16:48:24.396792+00:00 |
| ord-exit-3 | AAPL | canceled | 2026-05-02T14:35:15.025503+00:00 |
| ord-exit-4 | AAPL | canceled | 2026-05-02T14:35:15.025503+00:00 |
| ord-exit-2 | AAPL | canceled | 2026-05-02T14:35:15.025503+00:00 |
| ord-stratloop-48 | QQQ | error | 2026-04-24T17:23:06.527944+00:00 |
| ord-stratloop-47 | SPY | error | 2026-04-24T17:23:06.527944+00:00 |
| ord-stratloop-75 | SPY | error | 2026-04-24T14:24:08.173557+00:00 |
| ord-stratloop-76 | QQQ | error | 2026-04-24T14:24:08.173557+00:00 |
| ord-stratloop-73 | QQQ | error | 2026-04-24T13:50:13.921187+00:00 |
- Evidence entrypoint
Open the consolidated operator evidence report (same GET bundle as legacy overview).
Open /operator/evidence → - Worker freshness (operator evidence)Live worker signalsGET /internal/worker-freshness/report — DB-backed inference; optional Docker via KESTREL_INTERNAL_WORKER_DOCKER_STATUS_ENABLEDOverall:normalgenerated 2026-06-20T15:47:19.975716+00:00No automatic worker restart was performed by this report.docker_status_available=false — enable KESTREL_INTERNAL_WORKER_DOCKER_STATUS_ENABLED and ensure read-only docker ps works from the API process to attach container rows.Stale data flags
[ "market_bars_stale_off_rth_informational", "market_quotes_stale_off_rth_informational", "feature_snapshots_stale_off_rth_informational", "scanner_runs_stale_off_rth_informational", "strategy_loop_runs_stale_off_rth_informational" ]
Data freshnessTable / stream Latest ISO Count market_bars 2026-05-18T19:59:00+00:00 50329 market_quotes 2026-05-19T03:54:41.759396+00:00 230867 feature_snapshots 2026-05-18T19:59:00+00:00 36892 scanner_runs 2026-05-05T16:27:05.483016+00:00 101 strategy_loop_runs 2026-05-05T16:27:05.579224+00:00 93 orders 2026-05-20T13:43:51.015110+00:00 24 autonomous_submission_policy_runs 2026-05-02T16:53:12.774824+00:00 13 risk_runs — 0 broker_account_snapshots 2026-06-02T04:30:09.163786+00:00 34476 Expected workersService Inferred Container state Exit Status Started Finished Image ID worker-market-data ok — — — — — — — worker-features ok — — — — — — — worker-oms ok — — — — — — — worker-risk missing — — — — — — — worker-broker-ibkr ok — — — — — — — Container name: — · — · — · — · —Diagnosticsworker-market-data (info)Market bars look stale relative to thresholds, but the approximate calendar says outside likely RTH — treat as informational.
Suggested: Optional check of worker-market-data; no automatic restart was performed.
worker-risk (info)No risk_runs rows — risk worker may never have run in this environment or table is empty.
Suggested: If risk coverage is expected, verify worker-risk deployment and intake wiring.
- Reconciliation (latest snapshot)
No reconciliation_latest in pipeline summary.
Live enablement is not exposed in the operator UI. Requires Phase 18S and separate operational gates; this dashboard is read-only GETs.
Broker submission is disabled here by design. No order submission paths are wired to this console (Phase 19M wireframe; mutations not available).
OMS intake and OMS configuration toggles are not available from this page. Mutations are intentionally omitted.
Tiny-live launch requires its own approval and runbook. Not authorized from this dashboard (parked state).
Autonomous trading controls are not exposed. Policy denies below are read-only telemetry only.
Options trading enablement is not available in this UI. No trading actions are mounted (read-only overview).
Pipeline summary (JSON)
{
"latest_scanner_run": {
"id": 101,
"created_at_iso": "2026-05-05T16:27:05.483016+00:00",
"name": "core_scanner_v1",
"version": "1",
"interval": "1m",
"metadata": {
"universe_size": 7,
"scored_size": 7,
"missing_features": [],
"scanner_clean_universe": true,
"allowed_symbols_count": 7,
"symbols_requested": [
"META",
"AMZN",
"MSFT",
"NVDA",
"GOOGL",
"TSLA",
"AMD"
],
"symbols_scanned": [
"META",
"AMZN",
"MSFT",
"NVDA",
"GOOGL",
"TSLA",
"AMD"
],
"symbols_with_features": [
"NVDA",
"META",
"AMD",
"GOOGL",
"MSFT",
"AMZN",
"TSLA"
],
"symbols_missing_features": [],
"feature_set_name": "core_bars_v1",
"feature_set_version": "1"
}
},
"latest_strategy_run": {
"id": 1,
"created_at_iso": "2026-04-22T22:21:10.110419+00:00",
"name": "core_intent_v1",
"version": "1",
"interval": "1m",
"metadata": {
"scanner_run_id": 1,
"universe_size": 2,
"candidates_considered": 2,
"intents_proposed": 0,
"missing_features": [],
"rejected": [
{
"symbol": "SPY",
"reason": {
"close_return_1": -0.00010537408049537955,
"sma_5": 711.1749998,
"sma_20": 710.77246395,
"realized_vol_20": 0.0001270275992512768,
"rule_close_return_1_gt_0": false,
"rule_sma5_gt_sma20": true,
"rule_realized_vol_20_lt": 0.05
}
},
{
"symbol": "QQQ",
"reason": {
"close_return_1": -0.000045744990438634225,
"sma_5": 655.0349974000001,
"sma_20": 654.69226985,
"realized_vol_20": 0.00019266996063774147,
"rule_close_return_1_gt_0": false,
"rule_sma5_gt_sma20": true,
"rule_realized_vol_20_lt": 0.05
}
}
]
}
},
"latest_risk_run": null,
"oms_orders": {
"window": 24,
"total": 24,
"status_counts": {
"submitted": 2,
"approved": 3,
"error": 9,
"canceled": 5,
"filled": 5
},
"recent_problem_orders": [
{
"order_id": "ord-manual-de0d40f1df30",
"symbol": "AAPL",
"status": "error",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-19T17:54:49.889486+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-manual-6971d1926b3c",
"symbol": "AAPL",
"status": "error",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-19T17:53:31.307310+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-106",
"symbol": "AMD",
"status": "canceled",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": 106,
"strategy_loop_run_id": 90,
"created_at_iso": "2026-05-02T16:48:24.396792+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-105",
"symbol": "GOOGL",
"status": "canceled",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": 105,
"strategy_loop_run_id": 90,
"created_at_iso": "2026-05-02T16:48:24.396792+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-exit-3",
"symbol": "AAPL",
"status": "canceled",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-02T14:35:15.025503+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-exit-4",
"symbol": "AAPL",
"status": "canceled",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-02T14:35:15.025503+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-exit-2",
"symbol": "AAPL",
"status": "canceled",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-02T14:35:15.025503+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-48",
"symbol": "QQQ",
"status": "error",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": 48,
"strategy_loop_run_id": 24,
"created_at_iso": "2026-04-24T17:23:06.527944+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-47",
"symbol": "SPY",
"status": "error",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": 47,
"strategy_loop_run_id": 24,
"created_at_iso": "2026-04-24T17:23:06.527944+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-75",
"symbol": "SPY",
"status": "error",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": 75,
"strategy_loop_run_id": 38,
"created_at_iso": "2026-04-24T14:24:08.173557+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-76",
"symbol": "QQQ",
"status": "error",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": 76,
"strategy_loop_run_id": 38,
"created_at_iso": "2026-04-24T14:24:08.173557+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-73",
"symbol": "QQQ",
"status": "error",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": 73,
"strategy_loop_run_id": 37,
"created_at_iso": "2026-04-24T13:50:13.921187+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-70",
"symbol": "SPY",
"status": "error",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": 70,
"strategy_loop_run_id": 35,
"created_at_iso": "2026-04-24T13:32:17.175047+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-69",
"symbol": "QQQ",
"status": "error",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": 69,
"strategy_loop_run_id": 35,
"created_at_iso": "2026-04-24T13:32:17.175047+00:00",
"last_fill_at_iso": null
}
],
"approved_not_submitted_count": 3,
"recent_approved_not_submitted": [
{
"order_id": "ord-manual-f9b6ddf00a92",
"symbol": "AAPL",
"status": "approved",
"oms_lifecycle_stage": "approved_not_submitted",
"broker_order_id": null,
"filled_quantity": 0,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-19T20:54:33.970750+00:00"
},
{
"order_id": "ord-manual-f7524be6dc81",
"symbol": "AAPL",
"status": "approved",
"oms_lifecycle_stage": "approved_not_submitted",
"broker_order_id": null,
"filled_quantity": 0,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-19T20:06:19.343206+00:00"
},
{
"order_id": "ord-manual-876133187eb8",
"symbol": "AAPL",
"status": "approved",
"oms_lifecycle_stage": "approved_not_submitted",
"broker_order_id": null,
"filled_quantity": 0,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-19T20:05:42.099650+00:00"
}
]
},
"reconciliation_latest": null,
"incidents_last_24h": {
"window_hours": 24,
"total": 0,
"critical": 0,
"warning": 0,
"ok": 0,
"latest_severity": null
},
"upstream_footprint": {
"market_bars_count": 50329,
"market_bars_latest_ts_iso": "2026-05-18T19:59:00+00:00",
"market_quotes_count": 230867,
"market_quotes_latest_ts_iso": "2026-05-19T03:54:41.759396+00:00",
"feature_snapshots_count": 36892,
"feature_snapshots_latest_ts_iso": "2026-05-18T19:59:00+00:00",
"scanner_runs_count": 101,
"scanner_runs_latest_created_at_iso": "2026-05-05T16:27:05.483016+00:00",
"strategy_runs_count": 1,
"strategy_runs_latest_created_at_iso": "2026-04-22T22:21:10.110419+00:00",
"strategy_loop_runs_count": 93,
"strategy_loop_runs_latest_created_at_iso": "2026-05-05T16:27:05.579224+00:00",
"strategy_loop_decisions_count": 132,
"strategy_loop_decisions_latest_created_at_iso": "2026-05-05T16:27:05.579224+00:00",
"orders_count": 24,
"orders_latest_created_at_iso": "2026-05-20T13:43:51.015110+00:00",
"autonomous_submission_policy_runs_count": 13,
"autonomous_submission_policy_runs_latest_ts_iso": "2026-05-02T16:53:12.774824+00:00"
}
}Operator evidence report (JSON)
{
"generated_at_iso": "2026-06-20T15:47:19.790645+00:00",
"health_summary": {
"ok": true,
"components": {
"database": "ok",
"redis": "ok"
}
},
"latest_scanner_run": {
"run_id": 101,
"created_at_iso": "2026-05-05T16:27:05.483016+00:00",
"name": "core_scanner_v1",
"version": "1",
"interval": "1m",
"universe_size": 7,
"symbols_requested": [
"META",
"AMZN",
"MSFT",
"NVDA",
"GOOGL",
"TSLA",
"AMD"
],
"symbols_scanned": [
"META",
"AMZN",
"MSFT",
"NVDA",
"GOOGL",
"TSLA",
"AMD"
],
"symbols_with_features": [
"NVDA",
"META",
"AMD",
"GOOGL",
"MSFT",
"AMZN",
"TSLA"
],
"symbols_missing_features": []
},
"latest_strategy_loop": {
"run_id": 93,
"created_at_iso": "2026-05-05T16:27:05.579224+00:00",
"scanner_run_id": 101,
"decisions_total": 7,
"trade_decisions": 2,
"skip_decisions": 5,
"candidates_considered": 7,
"strategy_name": "formal_loop_v1",
"strategy_version": "1",
"control_state": {
"strategy_loop_intake_paused": false,
"autonomous_submission_held": false,
"governance_ts_iso": "2026-05-02T16:00:56.266375+00:00"
}
},
"oms_lifecycle": {
"approved_not_submitted_count": 3,
"recent_approved_not_submitted": [
{
"order_id": "ord-manual-f9b6ddf00a92",
"symbol": "AAPL",
"status": "approved",
"oms_lifecycle_stage": "approved_not_submitted",
"broker_order_id": null,
"filled_quantity": 0,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-19T20:54:33.970750+00:00"
},
{
"order_id": "ord-manual-f7524be6dc81",
"symbol": "AAPL",
"status": "approved",
"oms_lifecycle_stage": "approved_not_submitted",
"broker_order_id": null,
"filled_quantity": 0,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-19T20:06:19.343206+00:00"
},
{
"order_id": "ord-manual-876133187eb8",
"symbol": "AAPL",
"status": "approved",
"oms_lifecycle_stage": "approved_not_submitted",
"broker_order_id": null,
"filled_quantity": 0,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-19T20:05:42.099650+00:00"
}
],
"status_counts": {
"submitted": 2,
"approved": 3,
"error": 9,
"canceled": 5,
"filled": 5
},
"problem_orders_count": 14,
"recent_problem_orders": [
{
"order_id": "ord-manual-de0d40f1df30",
"symbol": "AAPL",
"status": "error",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-19T17:54:49.889486+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-manual-6971d1926b3c",
"symbol": "AAPL",
"status": "error",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-19T17:53:31.307310+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-106",
"symbol": "AMD",
"status": "canceled",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": 106,
"strategy_loop_run_id": 90,
"created_at_iso": "2026-05-02T16:48:24.396792+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-105",
"symbol": "GOOGL",
"status": "canceled",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": 105,
"strategy_loop_run_id": 90,
"created_at_iso": "2026-05-02T16:48:24.396792+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-exit-3",
"symbol": "AAPL",
"status": "canceled",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-02T14:35:15.025503+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-exit-4",
"symbol": "AAPL",
"status": "canceled",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-02T14:35:15.025503+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-exit-2",
"symbol": "AAPL",
"status": "canceled",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-02T14:35:15.025503+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-48",
"symbol": "QQQ",
"status": "error",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": 48,
"strategy_loop_run_id": 24,
"created_at_iso": "2026-04-24T17:23:06.527944+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-47",
"symbol": "SPY",
"status": "error",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": 47,
"strategy_loop_run_id": 24,
"created_at_iso": "2026-04-24T17:23:06.527944+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-75",
"symbol": "SPY",
"status": "error",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": 75,
"strategy_loop_run_id": 38,
"created_at_iso": "2026-04-24T14:24:08.173557+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-76",
"symbol": "QQQ",
"status": "error",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": 76,
"strategy_loop_run_id": 38,
"created_at_iso": "2026-04-24T14:24:08.173557+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-73",
"symbol": "QQQ",
"status": "error",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": 73,
"strategy_loop_run_id": 37,
"created_at_iso": "2026-04-24T13:50:13.921187+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-70",
"symbol": "SPY",
"status": "error",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": 70,
"strategy_loop_run_id": 35,
"created_at_iso": "2026-04-24T13:32:17.175047+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-69",
"symbol": "QQQ",
"status": "error",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"strategy_loop_decision_id": 69,
"strategy_loop_run_id": 35,
"created_at_iso": "2026-04-24T13:32:17.175047+00:00",
"last_fill_at_iso": null
}
],
"window": 24,
"total": 24
},
"autonomous_denial": {
"enabled": true,
"recent_deny_runs": [
{
"id": 13,
"ts_iso": "2026-05-02T16:53:12.774824+00:00",
"order_id": "ord-stratloop-106",
"symbol": "AMD",
"account_id": "DUP667958",
"decision": "deny",
"reasons_raw": [
"ORDER_CANDIDATE_STALE",
"BROKER_ACCOUNT_STATE_STALE",
"BROKER_POSITIONS_STATE_STALE",
"BROKER_OPEN_ORDERS_STATE_STALE",
"RECONCILIATION_STATE_STALE",
"STRATEGY_LOOP_STATE_STALE",
"MARKET_CLOSED_FOR_STOCK",
"PAPER_TEST_RTH_REQUIRED",
"DATA_FEATURES_STALE",
"DATA_BROKER_TRUTH_STALE"
],
"reasons_with_labels": [
{
"raw": "ORDER_CANDIDATE_STALE",
"label": "Order candidate stale",
"explanation": "The OMS order row is older than the policy freshness window for autonomous submit, so the candidate is treated as stale.",
"action": "Confirm scanner + strategy-loop just ran; check feature timestamps vs decision time; reduce clock skew."
},
{
"raw": "BROKER_ACCOUNT_STATE_STALE",
"label": "Broker account snapshot stale",
"explanation": "The latest persisted broker account snapshot is older than the policy TTL.",
"action": "Verify worker-oms / broker-truth snapshot path; check GET /internal/broker-truth/account/latest freshness."
},
{
"raw": "BROKER_POSITIONS_STATE_STALE",
"label": "Broker positions snapshot stale",
"explanation": "Broker positions used for safety checks are older than the allowed freshness window.",
"action": "Confirm broker-truth positions snapshots are updating; inspect worker-oms logs and snapshot timestamps."
},
{
"raw": "BROKER_OPEN_ORDERS_STATE_STALE",
"label": "Broker open-orders snapshot stale",
"explanation": "Open-order snapshots used for duplicate/conflict checks are older than the policy TTL.",
"action": "Verify broker open-order snapshot ingestion; compare with IBKR Client Portal open orders."
},
{
"raw": "RECONCILIATION_STATE_STALE",
"label": "Reconciliation signal stale",
"explanation": "Reconciliation inputs used by autonomous policy are older than the configured TTL.",
"action": "Review /internal/reconciliation-v2/latest and pipeline footprint; run read-only recon preview if configured."
},
{
"raw": "STRATEGY_LOOP_STATE_STALE",
"label": "Strategy-loop context stale",
"explanation": "Strategy-loop run/decision context is older than the policy freshness window relative to submit time.",
"action": "Confirm latest strategy-loop run completed; align scanner → loop cadence; check run metadata timestamps."
},
{
"raw": "MARKET_CLOSED_FOR_STOCK",
"label": "Market closed",
"explanation": "Stock entries are blocked because the session is outside the allowed US equity trading window for this policy.",
"action": "Wait for regular trading hours or verify market-hours / calendar configuration for paper vs live."
},
{
"raw": "PAPER_TEST_RTH_REQUIRED",
"label": "Paper test — RTH only",
"explanation": "Paper-test guard requires regular trading hours before allowing this class of entry/submit.",
"action": "Retry during RTH or adjust paper-test RTH policy only if your playbook explicitly allows off-hours testing."
},
{
"raw": "DATA_FEATURES_STALE",
"label": "Feature data stale",
"explanation": "Feature snapshots feeding the policy are older than the allowed freshness threshold.",
"action": "Check market-data / features workers and latest feature snapshot timestamps in pipeline footprint."
},
{
"raw": "DATA_BROKER_TRUTH_STALE",
"label": "Broker-truth data stale",
"explanation": "Broker-truth inputs (quotes/account/positions) are considered stale for autonomous submit.",
"action": "Inspect broker-truth snapshot ages and worker-oms reconcile cycles; confirm gateway connectivity."
}
],
"submit_attempted": false,
"submit_outcome": "skipped"
},
{
"id": 12,
"ts_iso": "2026-05-02T16:53:12.741420+00:00",
"order_id": "ord-stratloop-105",
"symbol": "GOOGL",
"account_id": "DUP667958",
"decision": "deny",
"reasons_raw": [
"ORDER_CANDIDATE_STALE",
"BROKER_ACCOUNT_STATE_STALE",
"BROKER_POSITIONS_STATE_STALE",
"BROKER_OPEN_ORDERS_STATE_STALE",
"RECONCILIATION_STATE_STALE",
"STRATEGY_LOOP_STATE_STALE",
"MARKET_CLOSED_FOR_STOCK",
"PAPER_TEST_RTH_REQUIRED",
"DATA_FEATURES_STALE",
"DATA_BROKER_TRUTH_STALE"
],
"reasons_with_labels": [
{
"raw": "ORDER_CANDIDATE_STALE",
"label": "Order candidate stale",
"explanation": "The OMS order row is older than the policy freshness window for autonomous submit, so the candidate is treated as stale.",
"action": "Confirm scanner + strategy-loop just ran; check feature timestamps vs decision time; reduce clock skew."
},
{
"raw": "BROKER_ACCOUNT_STATE_STALE",
"label": "Broker account snapshot stale",
"explanation": "The latest persisted broker account snapshot is older than the policy TTL.",
"action": "Verify worker-oms / broker-truth snapshot path; check GET /internal/broker-truth/account/latest freshness."
},
{
"raw": "BROKER_POSITIONS_STATE_STALE",
"label": "Broker positions snapshot stale",
"explanation": "Broker positions used for safety checks are older than the allowed freshness window.",
"action": "Confirm broker-truth positions snapshots are updating; inspect worker-oms logs and snapshot timestamps."
},
{
"raw": "BROKER_OPEN_ORDERS_STATE_STALE",
"label": "Broker open-orders snapshot stale",
"explanation": "Open-order snapshots used for duplicate/conflict checks are older than the policy TTL.",
"action": "Verify broker open-order snapshot ingestion; compare with IBKR Client Portal open orders."
},
{
"raw": "RECONCILIATION_STATE_STALE",
"label": "Reconciliation signal stale",
"explanation": "Reconciliation inputs used by autonomous policy are older than the configured TTL.",
"action": "Review /internal/reconciliation-v2/latest and pipeline footprint; run read-only recon preview if configured."
},
{
"raw": "STRATEGY_LOOP_STATE_STALE",
"label": "Strategy-loop context stale",
"explanation": "Strategy-loop run/decision context is older than the policy freshness window relative to submit time.",
"action": "Confirm latest strategy-loop run completed; align scanner → loop cadence; check run metadata timestamps."
},
{
"raw": "MARKET_CLOSED_FOR_STOCK",
"label": "Market closed",
"explanation": "Stock entries are blocked because the session is outside the allowed US equity trading window for this policy.",
"action": "Wait for regular trading hours or verify market-hours / calendar configuration for paper vs live."
},
{
"raw": "PAPER_TEST_RTH_REQUIRED",
"label": "Paper test — RTH only",
"explanation": "Paper-test guard requires regular trading hours before allowing this class of entry/submit.",
"action": "Retry during RTH or adjust paper-test RTH policy only if your playbook explicitly allows off-hours testing."
},
{
"raw": "DATA_FEATURES_STALE",
"label": "Feature data stale",
"explanation": "Feature snapshots feeding the policy are older than the allowed freshness threshold.",
"action": "Check market-data / features workers and latest feature snapshot timestamps in pipeline footprint."
},
{
"raw": "DATA_BROKER_TRUTH_STALE",
"label": "Broker-truth data stale",
"explanation": "Broker-truth inputs (quotes/account/positions) are considered stale for autonomous submit.",
"action": "Inspect broker-truth snapshot ages and worker-oms reconcile cycles; confirm gateway connectivity."
}
],
"submit_attempted": false,
"submit_outcome": "skipped"
},
{
"id": 10,
"ts_iso": "2026-04-24T17:23:06.627567+00:00",
"order_id": "ord-stratloop-48",
"symbol": "QQQ",
"account_id": "DUP667958",
"decision": "deny",
"reasons_raw": [
"RECONCILIATION_STATE_STALE",
"STRATEGY_LOOP_STATE_STALE"
],
"reasons_with_labels": [
{
"raw": "RECONCILIATION_STATE_STALE",
"label": "Reconciliation signal stale",
"explanation": "Reconciliation inputs used by autonomous policy are older than the configured TTL.",
"action": "Review /internal/reconciliation-v2/latest and pipeline footprint; run read-only recon preview if configured."
},
{
"raw": "STRATEGY_LOOP_STATE_STALE",
"label": "Strategy-loop context stale",
"explanation": "Strategy-loop run/decision context is older than the policy freshness window relative to submit time.",
"action": "Confirm latest strategy-loop run completed; align scanner → loop cadence; check run metadata timestamps."
}
],
"submit_attempted": false,
"submit_outcome": "skipped"
},
{
"id": 9,
"ts_iso": "2026-04-24T17:23:06.603402+00:00",
"order_id": "ord-stratloop-47",
"symbol": "SPY",
"account_id": "DUP667958",
"decision": "deny",
"reasons_raw": [
"RECONCILIATION_STATE_STALE",
"STRATEGY_LOOP_STATE_STALE"
],
"reasons_with_labels": [
{
"raw": "RECONCILIATION_STATE_STALE",
"label": "Reconciliation signal stale",
"explanation": "Reconciliation inputs used by autonomous policy are older than the configured TTL.",
"action": "Review /internal/reconciliation-v2/latest and pipeline footprint; run read-only recon preview if configured."
},
{
"raw": "STRATEGY_LOOP_STATE_STALE",
"label": "Strategy-loop context stale",
"explanation": "Strategy-loop run/decision context is older than the policy freshness window relative to submit time.",
"action": "Confirm latest strategy-loop run completed; align scanner → loop cadence; check run metadata timestamps."
}
],
"submit_attempted": false,
"submit_outcome": "skipped"
},
{
"id": 8,
"ts_iso": "2026-04-24T16:09:10.951475+00:00",
"order_id": "ord-stratloop-83",
"symbol": "AAPL",
"account_id": "DUP667958",
"decision": "deny",
"reasons_raw": [
"AUTONOMOUS_MAX_CONCURRENT_GLOBAL_REACHED",
"AUTONOMOUS_MAX_CONCURRENT_SYMBOL_REACHED",
"DUPLICATE_CANDIDATE_FINGERPRINT"
],
"reasons_with_labels": [
{
"raw": "AUTONOMOUS_MAX_CONCURRENT_GLOBAL_REACHED",
"label": "Policy / guard reason",
"explanation": "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.",
"action": "Inspect GET /internal/autonomous-policy/runs (full detail) or extend kestrel_oms.operator_evidence_report."
},
{
"raw": "AUTONOMOUS_MAX_CONCURRENT_SYMBOL_REACHED",
"label": "Policy / guard reason",
"explanation": "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.",
"action": "Inspect GET /internal/autonomous-policy/runs (full detail) or extend kestrel_oms.operator_evidence_report."
},
{
"raw": "DUPLICATE_CANDIDATE_FINGERPRINT",
"label": "Policy / guard reason",
"explanation": "This reason code is not in the Phase 14B operator glossary yet; the raw code is still authoritative for automation. Raw: DUPLICATE_CANDIDATE_FINGERPRINT.",
"action": "Inspect GET /internal/autonomous-policy/runs (full detail) or extend kestrel_oms.operator_evidence_report."
}
],
"submit_attempted": false,
"submit_outcome": "skipped"
},
{
"id": 4,
"ts_iso": "2026-04-24T14:24:08.454746+00:00",
"order_id": "ord-stratloop-75",
"symbol": "SPY",
"account_id": "DUP667958",
"decision": "deny",
"reasons_raw": [
"BROKER_ACCOUNT_STATE_STALE",
"BROKER_POSITIONS_STATE_STALE",
"BROKER_OPEN_ORDERS_STATE_STALE"
],
"reasons_with_labels": [
{
"raw": "BROKER_ACCOUNT_STATE_STALE",
"label": "Broker account snapshot stale",
"explanation": "The latest persisted broker account snapshot is older than the policy TTL.",
"action": "Verify worker-oms / broker-truth snapshot path; check GET /internal/broker-truth/account/latest freshness."
},
{
"raw": "BROKER_POSITIONS_STATE_STALE",
"label": "Broker positions snapshot stale",
"explanation": "Broker positions used for safety checks are older than the allowed freshness window.",
"action": "Confirm broker-truth positions snapshots are updating; inspect worker-oms logs and snapshot timestamps."
},
{
"raw": "BROKER_OPEN_ORDERS_STATE_STALE",
"label": "Broker open-orders snapshot stale",
"explanation": "Open-order snapshots used for duplicate/conflict checks are older than the policy TTL.",
"action": "Verify broker open-order snapshot ingestion; compare with IBKR Client Portal open orders."
}
],
"submit_attempted": false,
"submit_outcome": "skipped"
},
{
"id": 2,
"ts_iso": "2026-04-24T13:32:17.384925+00:00",
"order_id": "ord-stratloop-70",
"symbol": "SPY",
"account_id": "DUP667958",
"decision": "deny",
"reasons_raw": [
"RECONCILIATION_STATE_STALE",
"AUTONOMOUS_MAX_CONCURRENT_GLOBAL_REACHED",
"AUTONOMOUS_MAX_CONCURRENT_SYMBOL_REACHED"
],
"reasons_with_labels": [
{
"raw": "RECONCILIATION_STATE_STALE",
"label": "Reconciliation signal stale",
"explanation": "Reconciliation inputs used by autonomous policy are older than the configured TTL.",
"action": "Review /internal/reconciliation-v2/latest and pipeline footprint; run read-only recon preview if configured."
},
{
"raw": "AUTONOMOUS_MAX_CONCURRENT_GLOBAL_REACHED",
"label": "Policy / guard reason",
"explanation": "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.",
"action": "Inspect GET /internal/autonomous-policy/runs (full detail) or extend kestrel_oms.operator_evidence_report."
},
{
"raw": "AUTONOMOUS_MAX_CONCURRENT_SYMBOL_REACHED",
"label": "Policy / guard reason",
"explanation": "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.",
"action": "Inspect GET /internal/autonomous-policy/runs (full detail) or extend kestrel_oms.operator_evidence_report."
}
],
"submit_attempted": false,
"submit_outcome": "skipped"
},
{
"id": 1,
"ts_iso": "2026-04-24T13:32:17.340066+00:00",
"order_id": "ord-stratloop-69",
"symbol": "QQQ",
"account_id": "DUP667958",
"decision": "deny",
"reasons_raw": [
"RECONCILIATION_STATE_STALE",
"AUTONOMOUS_MAX_CONCURRENT_GLOBAL_REACHED",
"AUTONOMOUS_MAX_CONCURRENT_SYMBOL_REACHED"
],
"reasons_with_labels": [
{
"raw": "RECONCILIATION_STATE_STALE",
"label": "Reconciliation signal stale",
"explanation": "Reconciliation inputs used by autonomous policy are older than the configured TTL.",
"action": "Review /internal/reconciliation-v2/latest and pipeline footprint; run read-only recon preview if configured."
},
{
"raw": "AUTONOMOUS_MAX_CONCURRENT_GLOBAL_REACHED",
"label": "Policy / guard reason",
"explanation": "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.",
"action": "Inspect GET /internal/autonomous-policy/runs (full detail) or extend kestrel_oms.operator_evidence_report."
},
{
"raw": "AUTONOMOUS_MAX_CONCURRENT_SYMBOL_REACHED",
"label": "Policy / guard reason",
"explanation": "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.",
"action": "Inspect GET /internal/autonomous-policy/runs (full detail) or extend kestrel_oms.operator_evidence_report."
}
],
"submit_attempted": false,
"submit_outcome": "skipped"
}
],
"grouped_by_order_id": {
"ord-stratloop-106": [
{
"id": 13,
"ts_iso": "2026-05-02T16:53:12.774824+00:00",
"order_id": "ord-stratloop-106",
"symbol": "AMD",
"account_id": "DUP667958",
"decision": "deny",
"reasons_raw": [
"ORDER_CANDIDATE_STALE",
"BROKER_ACCOUNT_STATE_STALE",
"BROKER_POSITIONS_STATE_STALE",
"BROKER_OPEN_ORDERS_STATE_STALE",
"RECONCILIATION_STATE_STALE",
"STRATEGY_LOOP_STATE_STALE",
"MARKET_CLOSED_FOR_STOCK",
"PAPER_TEST_RTH_REQUIRED",
"DATA_FEATURES_STALE",
"DATA_BROKER_TRUTH_STALE"
],
"reasons_with_labels": [
{
"raw": "ORDER_CANDIDATE_STALE",
"label": "Order candidate stale",
"explanation": "The OMS order row is older than the policy freshness window for autonomous submit, so the candidate is treated as stale.",
"action": "Confirm scanner + strategy-loop just ran; check feature timestamps vs decision time; reduce clock skew."
},
{
"raw": "BROKER_ACCOUNT_STATE_STALE",
"label": "Broker account snapshot stale",
"explanation": "The latest persisted broker account snapshot is older than the policy TTL.",
"action": "Verify worker-oms / broker-truth snapshot path; check GET /internal/broker-truth/account/latest freshness."
},
{
"raw": "BROKER_POSITIONS_STATE_STALE",
"label": "Broker positions snapshot stale",
"explanation": "Broker positions used for safety checks are older than the allowed freshness window.",
"action": "Confirm broker-truth positions snapshots are updating; inspect worker-oms logs and snapshot timestamps."
},
{
"raw": "BROKER_OPEN_ORDERS_STATE_STALE",
"label": "Broker open-orders snapshot stale",
"explanation": "Open-order snapshots used for duplicate/conflict checks are older than the policy TTL.",
"action": "Verify broker open-order snapshot ingestion; compare with IBKR Client Portal open orders."
},
{
"raw": "RECONCILIATION_STATE_STALE",
"label": "Reconciliation signal stale",
"explanation": "Reconciliation inputs used by autonomous policy are older than the configured TTL.",
"action": "Review /internal/reconciliation-v2/latest and pipeline footprint; run read-only recon preview if configured."
},
{
"raw": "STRATEGY_LOOP_STATE_STALE",
"label": "Strategy-loop context stale",
"explanation": "Strategy-loop run/decision context is older than the policy freshness window relative to submit time.",
"action": "Confirm latest strategy-loop run completed; align scanner → loop cadence; check run metadata timestamps."
},
{
"raw": "MARKET_CLOSED_FOR_STOCK",
"label": "Market closed",
"explanation": "Stock entries are blocked because the session is outside the allowed US equity trading window for this policy.",
"action": "Wait for regular trading hours or verify market-hours / calendar configuration for paper vs live."
},
{
"raw": "PAPER_TEST_RTH_REQUIRED",
"label": "Paper test — RTH only",
"explanation": "Paper-test guard requires regular trading hours before allowing this class of entry/submit.",
"action": "Retry during RTH or adjust paper-test RTH policy only if your playbook explicitly allows off-hours testing."
},
{
"raw": "DATA_FEATURES_STALE",
"label": "Feature data stale",
"explanation": "Feature snapshots feeding the policy are older than the allowed freshness threshold.",
"action": "Check market-data / features workers and latest feature snapshot timestamps in pipeline footprint."
},
{
"raw": "DATA_BROKER_TRUTH_STALE",
"label": "Broker-truth data stale",
"explanation": "Broker-truth inputs (quotes/account/positions) are considered stale for autonomous submit.",
"action": "Inspect broker-truth snapshot ages and worker-oms reconcile cycles; confirm gateway connectivity."
}
],
"submit_attempted": false,
"submit_outcome": "skipped"
}
],
"ord-stratloop-105": [
{
"id": 12,
"ts_iso": "2026-05-02T16:53:12.741420+00:00",
"order_id": "ord-stratloop-105",
"symbol": "GOOGL",
"account_id": "DUP667958",
"decision": "deny",
"reasons_raw": [
"ORDER_CANDIDATE_STALE",
"BROKER_ACCOUNT_STATE_STALE",
"BROKER_POSITIONS_STATE_STALE",
"BROKER_OPEN_ORDERS_STATE_STALE",
"RECONCILIATION_STATE_STALE",
"STRATEGY_LOOP_STATE_STALE",
"MARKET_CLOSED_FOR_STOCK",
"PAPER_TEST_RTH_REQUIRED",
"DATA_FEATURES_STALE",
"DATA_BROKER_TRUTH_STALE"
],
"reasons_with_labels": [
{
"raw": "ORDER_CANDIDATE_STALE",
"label": "Order candidate stale",
"explanation": "The OMS order row is older than the policy freshness window for autonomous submit, so the candidate is treated as stale.",
"action": "Confirm scanner + strategy-loop just ran; check feature timestamps vs decision time; reduce clock skew."
},
{
"raw": "BROKER_ACCOUNT_STATE_STALE",
"label": "Broker account snapshot stale",
"explanation": "The latest persisted broker account snapshot is older than the policy TTL.",
"action": "Verify worker-oms / broker-truth snapshot path; check GET /internal/broker-truth/account/latest freshness."
},
{
"raw": "BROKER_POSITIONS_STATE_STALE",
"label": "Broker positions snapshot stale",
"explanation": "Broker positions used for safety checks are older than the allowed freshness window.",
"action": "Confirm broker-truth positions snapshots are updating; inspect worker-oms logs and snapshot timestamps."
},
{
"raw": "BROKER_OPEN_ORDERS_STATE_STALE",
"label": "Broker open-orders snapshot stale",
"explanation": "Open-order snapshots used for duplicate/conflict checks are older than the policy TTL.",
"action": "Verify broker open-order snapshot ingestion; compare with IBKR Client Portal open orders."
},
{
"raw": "RECONCILIATION_STATE_STALE",
"label": "Reconciliation signal stale",
"explanation": "Reconciliation inputs used by autonomous policy are older than the configured TTL.",
"action": "Review /internal/reconciliation-v2/latest and pipeline footprint; run read-only recon preview if configured."
},
{
"raw": "STRATEGY_LOOP_STATE_STALE",
"label": "Strategy-loop context stale",
"explanation": "Strategy-loop run/decision context is older than the policy freshness window relative to submit time.",
"action": "Confirm latest strategy-loop run completed; align scanner → loop cadence; check run metadata timestamps."
},
{
"raw": "MARKET_CLOSED_FOR_STOCK",
"label": "Market closed",
"explanation": "Stock entries are blocked because the session is outside the allowed US equity trading window for this policy.",
"action": "Wait for regular trading hours or verify market-hours / calendar configuration for paper vs live."
},
{
"raw": "PAPER_TEST_RTH_REQUIRED",
"label": "Paper test — RTH only",
"explanation": "Paper-test guard requires regular trading hours before allowing this class of entry/submit.",
"action": "Retry during RTH or adjust paper-test RTH policy only if your playbook explicitly allows off-hours testing."
},
{
"raw": "DATA_FEATURES_STALE",
"label": "Feature data stale",
"explanation": "Feature snapshots feeding the policy are older than the allowed freshness threshold.",
"action": "Check market-data / features workers and latest feature snapshot timestamps in pipeline footprint."
},
{
"raw": "DATA_BROKER_TRUTH_STALE",
"label": "Broker-truth data stale",
"explanation": "Broker-truth inputs (quotes/account/positions) are considered stale for autonomous submit.",
"action": "Inspect broker-truth snapshot ages and worker-oms reconcile cycles; confirm gateway connectivity."
}
],
"submit_attempted": false,
"submit_outcome": "skipped"
}
],
"ord-stratloop-48": [
{
"id": 10,
"ts_iso": "2026-04-24T17:23:06.627567+00:00",
"order_id": "ord-stratloop-48",
"symbol": "QQQ",
"account_id": "DUP667958",
"decision": "deny",
"reasons_raw": [
"RECONCILIATION_STATE_STALE",
"STRATEGY_LOOP_STATE_STALE"
],
"reasons_with_labels": [
{
"raw": "RECONCILIATION_STATE_STALE",
"label": "Reconciliation signal stale",
"explanation": "Reconciliation inputs used by autonomous policy are older than the configured TTL.",
"action": "Review /internal/reconciliation-v2/latest and pipeline footprint; run read-only recon preview if configured."
},
{
"raw": "STRATEGY_LOOP_STATE_STALE",
"label": "Strategy-loop context stale",
"explanation": "Strategy-loop run/decision context is older than the policy freshness window relative to submit time.",
"action": "Confirm latest strategy-loop run completed; align scanner → loop cadence; check run metadata timestamps."
}
],
"submit_attempted": false,
"submit_outcome": "skipped"
}
],
"ord-stratloop-47": [
{
"id": 9,
"ts_iso": "2026-04-24T17:23:06.603402+00:00",
"order_id": "ord-stratloop-47",
"symbol": "SPY",
"account_id": "DUP667958",
"decision": "deny",
"reasons_raw": [
"RECONCILIATION_STATE_STALE",
"STRATEGY_LOOP_STATE_STALE"
],
"reasons_with_labels": [
{
"raw": "RECONCILIATION_STATE_STALE",
"label": "Reconciliation signal stale",
"explanation": "Reconciliation inputs used by autonomous policy are older than the configured TTL.",
"action": "Review /internal/reconciliation-v2/latest and pipeline footprint; run read-only recon preview if configured."
},
{
"raw": "STRATEGY_LOOP_STATE_STALE",
"label": "Strategy-loop context stale",
"explanation": "Strategy-loop run/decision context is older than the policy freshness window relative to submit time.",
"action": "Confirm latest strategy-loop run completed; align scanner → loop cadence; check run metadata timestamps."
}
],
"submit_attempted": false,
"submit_outcome": "skipped"
}
],
"ord-stratloop-83": [
{
"id": 8,
"ts_iso": "2026-04-24T16:09:10.951475+00:00",
"order_id": "ord-stratloop-83",
"symbol": "AAPL",
"account_id": "DUP667958",
"decision": "deny",
"reasons_raw": [
"AUTONOMOUS_MAX_CONCURRENT_GLOBAL_REACHED",
"AUTONOMOUS_MAX_CONCURRENT_SYMBOL_REACHED",
"DUPLICATE_CANDIDATE_FINGERPRINT"
],
"reasons_with_labels": [
{
"raw": "AUTONOMOUS_MAX_CONCURRENT_GLOBAL_REACHED",
"label": "Policy / guard reason",
"explanation": "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.",
"action": "Inspect GET /internal/autonomous-policy/runs (full detail) or extend kestrel_oms.operator_evidence_report."
},
{
"raw": "AUTONOMOUS_MAX_CONCURRENT_SYMBOL_REACHED",
"label": "Policy / guard reason",
"explanation": "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.",
"action": "Inspect GET /internal/autonomous-policy/runs (full detail) or extend kestrel_oms.operator_evidence_report."
},
{
"raw": "DUPLICATE_CANDIDATE_FINGERPRINT",
"label": "Policy / guard reason",
"explanation": "This reason code is not in the Phase 14B operator glossary yet; the raw code is still authoritative for automation. Raw: DUPLICATE_CANDIDATE_FINGERPRINT.",
"action": "Inspect GET /internal/autonomous-policy/runs (full detail) or extend kestrel_oms.operator_evidence_report."
}
],
"submit_attempted": false,
"submit_outcome": "skipped"
}
],
"ord-stratloop-75": [
{
"id": 4,
"ts_iso": "2026-04-24T14:24:08.454746+00:00",
"order_id": "ord-stratloop-75",
"symbol": "SPY",
"account_id": "DUP667958",
"decision": "deny",
"reasons_raw": [
"BROKER_ACCOUNT_STATE_STALE",
"BROKER_POSITIONS_STATE_STALE",
"BROKER_OPEN_ORDERS_STATE_STALE"
],
"reasons_with_labels": [
{
"raw": "BROKER_ACCOUNT_STATE_STALE",
"label": "Broker account snapshot stale",
"explanation": "The latest persisted broker account snapshot is older than the policy TTL.",
"action": "Verify worker-oms / broker-truth snapshot path; check GET /internal/broker-truth/account/latest freshness."
},
{
"raw": "BROKER_POSITIONS_STATE_STALE",
"label": "Broker positions snapshot stale",
"explanation": "Broker positions used for safety checks are older than the allowed freshness window.",
"action": "Confirm broker-truth positions snapshots are updating; inspect worker-oms logs and snapshot timestamps."
},
{
"raw": "BROKER_OPEN_ORDERS_STATE_STALE",
"label": "Broker open-orders snapshot stale",
"explanation": "Open-order snapshots used for duplicate/conflict checks are older than the policy TTL.",
"action": "Verify broker open-order snapshot ingestion; compare with IBKR Client Portal open orders."
}
],
"submit_attempted": false,
"submit_outcome": "skipped"
}
],
"ord-stratloop-70": [
{
"id": 2,
"ts_iso": "2026-04-24T13:32:17.384925+00:00",
"order_id": "ord-stratloop-70",
"symbol": "SPY",
"account_id": "DUP667958",
"decision": "deny",
"reasons_raw": [
"RECONCILIATION_STATE_STALE",
"AUTONOMOUS_MAX_CONCURRENT_GLOBAL_REACHED",
"AUTONOMOUS_MAX_CONCURRENT_SYMBOL_REACHED"
],
"reasons_with_labels": [
{
"raw": "RECONCILIATION_STATE_STALE",
"label": "Reconciliation signal stale",
"explanation": "Reconciliation inputs used by autonomous policy are older than the configured TTL.",
"action": "Review /internal/reconciliation-v2/latest and pipeline footprint; run read-only recon preview if configured."
},
{
"raw": "AUTONOMOUS_MAX_CONCURRENT_GLOBAL_REACHED",
"label": "Policy / guard reason",
"explanation": "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.",
"action": "Inspect GET /internal/autonomous-policy/runs (full detail) or extend kestrel_oms.operator_evidence_report."
},
{
"raw": "AUTONOMOUS_MAX_CONCURRENT_SYMBOL_REACHED",
"label": "Policy / guard reason",
"explanation": "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.",
"action": "Inspect GET /internal/autonomous-policy/runs (full detail) or extend kestrel_oms.operator_evidence_report."
}
],
"submit_attempted": false,
"submit_outcome": "skipped"
}
],
"ord-stratloop-69": [
{
"id": 1,
"ts_iso": "2026-04-24T13:32:17.340066+00:00",
"order_id": "ord-stratloop-69",
"symbol": "QQQ",
"account_id": "DUP667958",
"decision": "deny",
"reasons_raw": [
"RECONCILIATION_STATE_STALE",
"AUTONOMOUS_MAX_CONCURRENT_GLOBAL_REACHED",
"AUTONOMOUS_MAX_CONCURRENT_SYMBOL_REACHED"
],
"reasons_with_labels": [
{
"raw": "RECONCILIATION_STATE_STALE",
"label": "Reconciliation signal stale",
"explanation": "Reconciliation inputs used by autonomous policy are older than the configured TTL.",
"action": "Review /internal/reconciliation-v2/latest and pipeline footprint; run read-only recon preview if configured."
},
{
"raw": "AUTONOMOUS_MAX_CONCURRENT_GLOBAL_REACHED",
"label": "Policy / guard reason",
"explanation": "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.",
"action": "Inspect GET /internal/autonomous-policy/runs (full detail) or extend kestrel_oms.operator_evidence_report."
},
{
"raw": "AUTONOMOUS_MAX_CONCURRENT_SYMBOL_REACHED",
"label": "Policy / guard reason",
"explanation": "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.",
"action": "Inspect GET /internal/autonomous-policy/runs (full detail) or extend kestrel_oms.operator_evidence_report."
}
],
"submit_attempted": false,
"submit_outcome": "skipped"
}
]
},
"raw_reason_codes_seen": [
"ORDER_CANDIDATE_STALE",
"BROKER_ACCOUNT_STATE_STALE",
"BROKER_POSITIONS_STATE_STALE",
"BROKER_OPEN_ORDERS_STATE_STALE",
"RECONCILIATION_STATE_STALE",
"STRATEGY_LOOP_STATE_STALE",
"MARKET_CLOSED_FOR_STOCK",
"PAPER_TEST_RTH_REQUIRED",
"DATA_FEATURES_STALE",
"DATA_BROKER_TRUTH_STALE",
"AUTONOMOUS_MAX_CONCURRENT_GLOBAL_REACHED",
"AUTONOMOUS_MAX_CONCURRENT_SYMBOL_REACHED",
"DUPLICATE_CANDIDATE_FINGERPRINT"
]
},
"open_trades": {
"enabled": true,
"account_id": "DUP667958",
"count": 0,
"rows": []
},
"terminal_control": {
"enabled": true,
"persisted_state": "normal",
"reason_summary": "effective=normal | gov=normal | ops=normal | recon=normal | inc=normal",
"effective_resolved_state": "normal",
"effective_reason_summary": "effective=normal | gov=normal | ops=normal | recon=normal | inc=normal",
"submissions_blocked": false,
"submit_guard_env_enabled": true,
"stale_warning": true,
"live_mismatch": false,
"persisted_age_seconds": 2807556.865443,
"blocked_submissions_recent": [
{
"id": 3,
"ts_iso": "2026-05-02T14:38:51.291754+00:00",
"order_id": "ord-exit-4",
"symbol": "AAPL",
"reason_code": "paper_test_rth_required",
"reason_labels": {
"label": "Paper test — RTH only",
"explanation": "Paper-test guard requires regular trading hours before allowing this class of entry/submit.",
"action": "Retry during RTH or adjust paper-test RTH policy only if your playbook explicitly allows off-hours testing."
}
},
{
"id": 2,
"ts_iso": "2026-05-02T14:38:51.287902+00:00",
"order_id": "ord-exit-3",
"symbol": "AAPL",
"reason_code": "paper_test_rth_required",
"reason_labels": {
"label": "Paper test — RTH only",
"explanation": "Paper-test guard requires regular trading hours before allowing this class of entry/submit.",
"action": "Retry during RTH or adjust paper-test RTH policy only if your playbook explicitly allows off-hours testing."
}
},
{
"id": 1,
"ts_iso": "2026-05-02T14:38:51.277890+00:00",
"order_id": "ord-exit-2",
"symbol": "AAPL",
"reason_code": "paper_test_rth_required",
"reason_labels": {
"label": "Paper test — RTH only",
"explanation": "Paper-test guard requires regular trading hours before allowing this class of entry/submit.",
"action": "Retry during RTH or adjust paper-test RTH policy only if your playbook explicitly allows off-hours testing."
}
}
]
},
"safety": {
"no_open_trades": true,
"submissions_blocked": false,
"has_approved_not_submitted": true
},
"operator_narrative": {
"what_happened": "Latest scanner run id=101 at 2026-05-05T16:27:05.483016+00:00 (universe_size=7). Latest strategy-loop run id=93 with 7 decisions (2 trade, 5 skip). OMS window: 24 orders; approved_not_submitted=3; problem sample count=14.",
"why_broker_submission_may_not_have_happened": "Autonomous submission policy recorded 8 recent deny evaluation(s); see reasons_with_labels. There are OMS orders in approved_not_submitted (approved locally, no broker id / zero fills) — broker submission did not complete for those rows.",
"open_trades_answer": "No open trades for account 'DUP667958'.",
"suggested_next_steps": [
"Refresh or recompute system control state — persisted control row looks stale.",
"Review autonomous_policy/runs for snapshot_json on the top deny order_ids.",
"Inspect approved_not_submitted rows and broker-truth / policy freshness."
]
},
"worker_freshness": {
"available": true,
"generated_at_iso": "2026-06-20T15:47:19.975716+00:00",
"overall_state": "normal",
"stale_data_flags": [
"market_bars_stale_off_rth_informational",
"market_quotes_stale_off_rth_informational",
"feature_snapshots_stale_off_rth_informational",
"scanner_runs_stale_off_rth_informational",
"strategy_loop_runs_stale_off_rth_informational"
],
"docker_status_available": false,
"data_freshness": {
"market_bars": {
"latest_ts_iso": "2026-05-18T19:59:00+00:00",
"count": 50329
},
"market_quotes": {
"latest_ts_iso": "2026-05-19T03:54:41.759396+00:00",
"count": 230867
},
"feature_snapshots": {
"latest_ts_iso": "2026-05-18T19:59:00+00:00",
"count": 36892
},
"scanner_runs": {
"latest_created_at_iso": "2026-05-05T16:27:05.483016+00:00",
"count": 101
},
"strategy_loop_runs": {
"latest_created_at_iso": "2026-05-05T16:27:05.579224+00:00",
"count": 93
},
"orders": {
"latest_created_at_iso": "2026-05-20T13:43:51.015110+00:00",
"count": 24
},
"autonomous_submission_policy_runs": {
"latest_ts_iso": "2026-05-02T16:53:12.774824+00:00",
"count": 13
},
"risk_runs": {
"latest_created_at_iso": null,
"count": 0
},
"broker_account_snapshots": {
"latest_ts_iso": "2026-06-02T04:30:09.163786+00:00",
"count": 34476
}
},
"services": [
{
"service_name": "worker-market-data",
"docker_status_available": false,
"container_state": null,
"exit_code": null,
"status_message": null,
"started_at_iso": null,
"finished_at_iso": null,
"inferred_health": "ok",
"inference_source": "market_bars"
},
{
"service_name": "worker-features",
"docker_status_available": false,
"container_state": null,
"exit_code": null,
"status_message": null,
"started_at_iso": null,
"finished_at_iso": null,
"inferred_health": "ok",
"inference_source": "feature_snapshots"
},
{
"service_name": "worker-oms",
"docker_status_available": false,
"container_state": null,
"exit_code": null,
"status_message": null,
"started_at_iso": null,
"finished_at_iso": null,
"inferred_health": "ok",
"inference_source": "orders+autonomous_submission_policy_runs"
},
{
"service_name": "worker-risk",
"docker_status_available": false,
"container_state": null,
"exit_code": null,
"status_message": null,
"started_at_iso": null,
"finished_at_iso": null,
"inferred_health": "missing",
"inference_source": "risk_runs"
},
{
"service_name": "worker-broker-ibkr",
"docker_status_available": false,
"container_state": null,
"exit_code": null,
"status_message": null,
"started_at_iso": null,
"finished_at_iso": null,
"inferred_health": "ok",
"inference_source": "broker_account_snapshots"
}
],
"diagnostics": [
{
"subject": "worker-market-data",
"severity": "info",
"explanation": "Market bars look stale relative to thresholds, but the approximate calendar says outside likely RTH — treat as informational.",
"suggested_action": "Optional check of worker-market-data; no automatic restart was performed.",
"details": {
"last_data_age_seconds": 2836100.059792
}
},
{
"subject": "worker-risk",
"severity": "info",
"explanation": "No risk_runs rows — risk worker may never have run in this environment or table is empty.",
"suggested_action": "If risk coverage is expected, verify worker-risk deployment and intake wiring.",
"details": {}
}
],
"no_automatic_restart_note": "No automatic worker restart was performed by this report."
}
}Replay orders (first 20 rows, JSON)
[
{
"order_id": "ord-manual-6da32de74fc9",
"symbol": "AAPL",
"status": "submitted",
"broker": "ibkr",
"account_id": "DUP667958",
"broker_order_id": "1211957035",
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"option_spread_risk_decision_id": null,
"strategy_intent_id": null,
"strategy_run_id": null,
"scanner_run_id": null,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-20T13:43:51.015110+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-manual-f9b6ddf00a92",
"symbol": "AAPL",
"status": "approved",
"broker": "ibkr",
"account_id": "DUP667958",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"option_spread_risk_decision_id": null,
"strategy_intent_id": null,
"strategy_run_id": null,
"scanner_run_id": null,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-19T20:54:33.970750+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-manual-f7524be6dc81",
"symbol": "AAPL",
"status": "approved",
"broker": "ibkr",
"account_id": "DUP667958",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"option_spread_risk_decision_id": null,
"strategy_intent_id": null,
"strategy_run_id": null,
"scanner_run_id": null,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-19T20:06:19.343206+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-manual-876133187eb8",
"symbol": "AAPL",
"status": "approved",
"broker": "ibkr",
"account_id": "DUP667958",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"option_spread_risk_decision_id": null,
"strategy_intent_id": null,
"strategy_run_id": null,
"scanner_run_id": null,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-19T20:05:42.099650+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-manual-9568712e367b",
"symbol": "AAPL",
"status": "submitted",
"broker": "ibkr",
"account_id": "DUP667958",
"broker_order_id": "1554758323",
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"option_spread_risk_decision_id": null,
"strategy_intent_id": null,
"strategy_run_id": null,
"scanner_run_id": null,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-19T17:57:38.636404+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-manual-de0d40f1df30",
"symbol": "AAPL",
"status": "error",
"broker": "ibkr",
"account_id": "PUT_REAL_RETURNED_ACCOUNT_ID_HERE",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"option_spread_risk_decision_id": null,
"strategy_intent_id": null,
"strategy_run_id": null,
"scanner_run_id": null,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-19T17:54:49.889486+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-manual-6971d1926b3c",
"symbol": "AAPL",
"status": "error",
"broker": "ibkr",
"account_id": "DU867958",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"option_spread_risk_decision_id": null,
"strategy_intent_id": null,
"strategy_run_id": null,
"scanner_run_id": null,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-19T17:53:31.307310+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-106",
"symbol": "AMD",
"status": "canceled",
"broker": "ibkr",
"account_id": "DUP667958",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"option_spread_risk_decision_id": null,
"strategy_intent_id": null,
"strategy_run_id": null,
"scanner_run_id": null,
"strategy_loop_decision_id": 106,
"strategy_loop_run_id": 90,
"created_at_iso": "2026-05-02T16:48:24.396792+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-105",
"symbol": "GOOGL",
"status": "canceled",
"broker": "ibkr",
"account_id": "DUP667958",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"option_spread_risk_decision_id": null,
"strategy_intent_id": null,
"strategy_run_id": null,
"scanner_run_id": null,
"strategy_loop_decision_id": 105,
"strategy_loop_run_id": 90,
"created_at_iso": "2026-05-02T16:48:24.396792+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-exit-4",
"symbol": "AAPL",
"status": "canceled",
"broker": "ibkr",
"account_id": "DUP667958",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"option_spread_risk_decision_id": null,
"strategy_intent_id": null,
"strategy_run_id": null,
"scanner_run_id": null,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-02T14:35:15.025503+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-exit-2",
"symbol": "AAPL",
"status": "canceled",
"broker": "ibkr",
"account_id": "DUP667958",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"option_spread_risk_decision_id": null,
"strategy_intent_id": null,
"strategy_run_id": null,
"scanner_run_id": null,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-02T14:35:15.025503+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-exit-3",
"symbol": "AAPL",
"status": "canceled",
"broker": "ibkr",
"account_id": "DUP667958",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"option_spread_risk_decision_id": null,
"strategy_intent_id": null,
"strategy_run_id": null,
"scanner_run_id": null,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-05-02T14:35:15.025503+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-exit-1",
"symbol": "MSFT",
"status": "filled",
"broker": "ibkr",
"account_id": "DUP667958",
"broker_order_id": "1569812048",
"filled_quantity": 2,
"avg_fill_price": 423.29,
"risk_decision_id": null,
"option_spread_risk_decision_id": null,
"strategy_intent_id": null,
"strategy_run_id": null,
"scanner_run_id": null,
"strategy_loop_decision_id": null,
"strategy_loop_run_id": null,
"created_at_iso": "2026-04-27T14:32:11.055632+00:00",
"last_fill_at_iso": "2026-04-27T14:32:12+00:00"
},
{
"order_id": "ord-stratloop-86",
"symbol": "AAPL",
"status": "filled",
"broker": "ibkr",
"account_id": "DUP667958",
"broker_order_id": "358965319",
"filled_quantity": 3,
"avg_fill_price": 270.1,
"risk_decision_id": null,
"option_spread_risk_decision_id": null,
"strategy_intent_id": null,
"strategy_run_id": null,
"scanner_run_id": null,
"strategy_loop_decision_id": 86,
"strategy_loop_run_id": 83,
"created_at_iso": "2026-04-24T17:39:02.725933+00:00",
"last_fill_at_iso": "2026-04-24T17:39:08.067393+00:00"
},
{
"order_id": "ord-stratloop-47",
"symbol": "SPY",
"status": "error",
"broker": "ibkr",
"account_id": "DUP667958",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"option_spread_risk_decision_id": null,
"strategy_intent_id": null,
"strategy_run_id": null,
"scanner_run_id": null,
"strategy_loop_decision_id": 47,
"strategy_loop_run_id": 24,
"created_at_iso": "2026-04-24T17:23:06.527944+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-48",
"symbol": "QQQ",
"status": "error",
"broker": "ibkr",
"account_id": "DUP667958",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"option_spread_risk_decision_id": null,
"strategy_intent_id": null,
"strategy_run_id": null,
"scanner_run_id": null,
"strategy_loop_decision_id": 48,
"strategy_loop_run_id": 24,
"created_at_iso": "2026-04-24T17:23:06.527944+00:00",
"last_fill_at_iso": null
},
{
"order_id": "ord-stratloop-83",
"symbol": "AAPL",
"status": "filled",
"broker": "ibkr",
"account_id": "DUP667958",
"broker_order_id": "2142597903",
"filled_quantity": 3,
"avg_fill_price": 271.05,
"risk_decision_id": null,
"option_spread_risk_decision_id": null,
"strategy_intent_id": null,
"strategy_run_id": null,
"scanner_run_id": null,
"strategy_loop_decision_id": 83,
"strategy_loop_run_id": 81,
"created_at_iso": "2026-04-24T16:09:09.997181+00:00",
"last_fill_at_iso": "2026-04-24T16:49:30.016138+00:00"
},
{
"order_id": "ord-stratloop-81",
"symbol": "AAPL",
"status": "filled",
"broker": "ibkr",
"account_id": "DUP667958",
"broker_order_id": "2142597650",
"filled_quantity": 3,
"avg_fill_price": 271.04,
"risk_decision_id": null,
"option_spread_risk_decision_id": null,
"strategy_intent_id": null,
"strategy_run_id": null,
"scanner_run_id": null,
"strategy_loop_decision_id": 81,
"strategy_loop_run_id": 80,
"created_at_iso": "2026-04-24T16:00:16.724448+00:00",
"last_fill_at_iso": "2026-04-24T16:49:30.007022+00:00"
},
{
"order_id": "ord-stratloop-79",
"symbol": "MSFT",
"status": "filled",
"broker": "ibkr",
"account_id": "DUP667958",
"broker_order_id": "1467309844",
"filled_quantity": 2,
"avg_fill_price": 420.68,
"risk_decision_id": null,
"option_spread_risk_decision_id": null,
"strategy_intent_id": null,
"strategy_run_id": null,
"scanner_run_id": null,
"strategy_loop_decision_id": 79,
"strategy_loop_run_id": 79,
"created_at_iso": "2026-04-24T15:40:03.201654+00:00",
"last_fill_at_iso": "2026-04-24T16:49:29.888166+00:00"
},
{
"order_id": "ord-stratloop-75",
"symbol": "SPY",
"status": "error",
"broker": "ibkr",
"account_id": "DUP667958",
"broker_order_id": null,
"filled_quantity": 0,
"avg_fill_price": null,
"risk_decision_id": null,
"option_spread_risk_decision_id": null,
"strategy_intent_id": null,
"strategy_run_id": null,
"scanner_run_id": null,
"strategy_loop_decision_id": 75,
"strategy_loop_run_id": 38,
"created_at_iso": "2026-04-24T14:24:08.173557+00:00",
"last_fill_at_iso": null
}
]Trade ledger (JSON)
{
"phase": "9AZ",
"generated_at": "2026-06-20T15:47:19.791581+00:00",
"summary": {
"open_trades": 0,
"closed_trades": 4,
"partial_trades": 0,
"inconsistent_trades": 0,
"realized_pnl": 5.22,
"unrealized_pnl": null
},
"trades": [
{
"trade_id": "tr-4",
"id": 4,
"account_id": "DUP667958",
"symbol": "AAPL",
"asset_type": "stock",
"entry_order_id": "ord-stratloop-86",
"entry_side": "buy",
"entry_quantity": 3,
"entry_avg_fill_price": 270.1,
"entry_filled_at": "2026-04-24T17:39:08.067393+00:00",
"exit_order_id": null,
"exit_side": "sell",
"exit_quantity": 3,
"exit_avg_fill_price": null,
"exit_filled_at": "2026-05-02T14:54:33.350039+00:00",
"status": "closed",
"db_status": "closed",
"realized_pnl": 0,
"unrealized_pnl": null,
"mark_price": null,
"last_price": null,
"broker_order_ids": [
"358965319"
],
"entry_broker_order_id": "358965319",
"exit_broker_order_id": null,
"valuation": {},
"warnings": []
},
{
"trade_id": "tr-3",
"id": 3,
"account_id": "DUP667958",
"symbol": "AAPL",
"asset_type": "stock",
"entry_order_id": "ord-stratloop-83",
"entry_side": "buy",
"entry_quantity": 3,
"entry_avg_fill_price": 271.05,
"entry_filled_at": "2026-04-24T16:49:30.016138+00:00",
"exit_order_id": null,
"exit_side": "sell",
"exit_quantity": 3,
"exit_avg_fill_price": null,
"exit_filled_at": "2026-05-02T14:54:33.350039+00:00",
"status": "closed",
"db_status": "closed",
"realized_pnl": 0,
"unrealized_pnl": null,
"mark_price": null,
"last_price": null,
"broker_order_ids": [
"2142597903"
],
"entry_broker_order_id": "2142597903",
"exit_broker_order_id": null,
"valuation": {},
"warnings": []
},
{
"trade_id": "tr-2",
"id": 2,
"account_id": "DUP667958",
"symbol": "AAPL",
"asset_type": "stock",
"entry_order_id": "ord-stratloop-81",
"entry_side": "buy",
"entry_quantity": 3,
"entry_avg_fill_price": 271.04,
"entry_filled_at": "2026-04-24T16:49:30.007022+00:00",
"exit_order_id": null,
"exit_side": "sell",
"exit_quantity": 3,
"exit_avg_fill_price": null,
"exit_filled_at": "2026-05-02T14:54:33.350039+00:00",
"status": "closed",
"db_status": "closed",
"realized_pnl": 0,
"unrealized_pnl": null,
"mark_price": null,
"last_price": null,
"broker_order_ids": [
"2142597650"
],
"entry_broker_order_id": "2142597650",
"exit_broker_order_id": null,
"valuation": {},
"warnings": []
},
{
"trade_id": "tr-1",
"id": 1,
"account_id": "DUP667958",
"symbol": "MSFT",
"asset_type": "stock",
"entry_order_id": "ord-stratloop-79",
"entry_side": "buy",
"entry_quantity": 2,
"entry_avg_fill_price": 420.68,
"entry_filled_at": "2026-04-24T16:49:29.888166+00:00",
"exit_order_id": "ord-exit-1",
"exit_side": "sell",
"exit_quantity": 2,
"exit_avg_fill_price": 423.29,
"exit_filled_at": "2026-04-27T14:32:12+00:00",
"status": "closed",
"db_status": "closed",
"realized_pnl": 5.22,
"unrealized_pnl": null,
"mark_price": null,
"last_price": null,
"broker_order_ids": [
"1467309844",
"1569812048"
],
"entry_broker_order_id": "1467309844",
"exit_broker_order_id": "1569812048",
"valuation": {},
"warnings": []
}
]
}