Kestrel v2 • Operator
Console

Auth/RBAC gap remains: internal routes are not protected by per-operator identity.

Unknown or not_matched reconciliation rows are live no-go items.

This page is read-only. No broker orders or reconciliation POST from the UI.

Reconciliation
Consistency view: broker truth vs machine truth
Error: v1: not found (404)
Review summary
Read-only snapshot from already-loaded reconciliation + ledger-scope preview (no extra requests)
Cards summarize persisted v2 latest, on-demand ledger-scope preview, overlap scope, and finding counts. This section does not trigger reconciliation or persist anything.
Persisted latest run
run_id
16
severity
warning
findings_count
14
source
operator_action
Ledger-scope preview
persisted
false
source
ledger_scope_preview
severity
warning
findings_count
12
Scope (preview)
broker_positions_total
12
ledger_positions_total
0
overlapping_symbols_count
0
clean_matched_symbols_count
0
Action counts (preview)
quantity_mismatch
0
avg_cost_mismatch
0
broker_outside_ledger_scope
12
missing_internal_position
0
Symbols needing operator review
Grouped by severity of issue: quantity mismatch first, then avg-cost, then broker outside ledger scope
Rows are derived from ledger-scope preview findings only. Order is stable: critical quantity issues first, then avg-cost, then broker-only-outside-scope symbols.
Priority 1 — quantity_mismatch
symbolseveritycategoriesbroker qtyinternal qtybroker avginternal avgoperator note
No symbols with quantity mismatch.
Priority 2 — avg_cost_mismatch (no quantity mismatch on symbol)
symbolseveritycategoriesbroker qtyinternal qtybroker avginternal avgoperator note
No symbols with avg-cost mismatch only.
Priority 3 — broker_position_outside_ledger_scope (no quantity or avg-cost mismatch on symbol)
symbolseveritycategoriesbroker qtyinternal qtybroker avginternal avgoperator note
AAPLwarningbroker_position_outside_ledger_scope-565-272.476935-Broker position is outside open/closing trade-ledger scope.
AVGOwarningbroker_position_outside_ledger_scope3-399.343333-Broker position is outside open/closing trade-ledger scope.
CFwarningbroker_position_outside_ledger_scope-99-115.567424-Broker position is outside open/closing trade-ledger scope.
COSTwarningbroker_position_outside_ledger_scope-99-1010.328993-Broker position is outside open/closing trade-ledger scope.
GOOGwarningbroker_position_outside_ledger_scope-195-335.600084-Broker position is outside open/closing trade-ledger scope.
GOOGLwarningbroker_position_outside_ledger_scope-188-337.263582-Broker position is outside open/closing trade-ledger scope.
MUwarningbroker_position_outside_ledger_scope-199-489.030578-Broker position is outside open/closing trade-ledger scope.
NFLXwarningbroker_position_outside_ledger_scope-187-93.214516-Broker position is outside open/closing trade-ledger scope.
PEPwarningbroker_position_outside_ledger_scope-191-156.207791-Broker position is outside open/closing trade-ledger scope.
PLTRwarningbroker_position_outside_ledger_scope-197-143.957601-Broker position is outside open/closing trade-ledger scope.
TSLAwarningbroker_position_outside_ledger_scope-292-384.162398-Broker position is outside open/closing trade-ledger scope.
Vwarningbroker_position_outside_ledger_scope4-314.1-Broker position is outside open/closing trade-ledger scope.
Action plan (read-only)
Derived from ledger-scope preview findings (no actions)
This panel is derived from the read-only ledger-scope preview. It does not persist data or perform reconciliation actions.
Priority 1: quantity_mismatch
symbolbroker qtyledger qtynet diffseverity
No quantity mismatches.
Priority 2: avg_cost_mismatch
symbolbroker avgledger avgdiffseverity
No avg cost mismatches.
Priority 3: broker_position_outside_ledger_scope
These broker positions are not represented by open/closing trade-ledger rows.
count
12
first_10_symbols
MU, AAPL, AVGO, CF, COST, GOOG, GOOGL, NFLX, PEP, PLTR
Scope decision needed
Operator interpretation required (read-only)
The broker account contains positions that are not represented by the Kestrel trade ledger. Before treating reconciliation as operationally clean, decide whether this account is intended to be Kestrel-only or mixed-use.
External decision status
This page does not store the account-scope decision. Record the decision in the operator log or incident tracker using the template below.
Decision required
DUP667958 account scope is not stored in Kestrel
Acceptable decision values
Kestrel-only / Mixed-use legacy
Next safe action
Copy the decision record template and file it externally
After the external decision is recorded, use that record to interpret `broker_position_outside_ledger_scope` findings during routine review.
Choice A — Kestrel-only account
  • Broker positions outside ledger scope should be removed or migrated into internal truth by an explicit operator-approved process.
  • Any quantity mismatches in overlapping symbols must be resolved before reconciliation can be considered clean.
  • Future reconciliation should expect zero broker_position_outside_ledger_scope findings.
Choice B — Mixed-use account
  • Ledger-scope preview should be treated as the primary strategy-scope view.
  • broker_position_outside_ledger_scope findings are informational unless they overlap with Kestrel-managed symbols.
  • Persisted reconciliation should not be interpreted as “strategy failed” when it includes manual/legacy broker exposure.
Current derived facts (from ledger-scope preview)
broker_positions_total
12
ledger_positions_total
0
broker_position_outside_ledger_scope
12
quantity_mismatch
0
avg_cost_mismatch
0
AAPL quantity_mismatch
not present
MSFT avg_cost_mismatch
not present
Operator decision record template
Copy/paste (read-only; no saving)
Copy this into the operator log or incident tracker after the scope decision is made. This page does not save the decision.
Decision record (copy)
Operator decision record — reconciliation scope

Timestamp: 2026-06-20T15:48:26.239Z
Account: —
Latest persisted reconciliation run: 16 (source=operator_action)
Ledger-scope preview source: ledger_scope_preview
Ledger-scope preview persisted: false
Decision:
[ ] Kestrel-only account
[ ] Mixed-use account

Current facts:
- Broker positions total: 12
- Ledger positions total: 0
- Broker positions outside ledger scope: 12
- Quantity mismatches: 0
- Avg-cost mismatches: 0
- Overlapping symbols: 0
- Clean matched symbols: 0

Actionable mismatches:
- AAPL: —
- MSFT: —

Operator notes:
- 

Approved next action:
[ ] No action; monitor only
[ ] Treat outside-ledger positions as mixed-use informational
[ ] Plan separate migration/materialization of legacy broker positions
[ ] Plan broker cleanup outside Kestrel automation
[ ] Other:

Constraints:
- No automated broker action authorized by this record.
- No reconciliation POST run authorized by this record.
- Any broker/order action requires separate explicit approval.
Operator export snapshot
Copy/paste for tickets and runbooks (read-only)
This snapshot is generated client-side from read-only API responses. It is intended for tickets/runbooks and does not persist or trigger actions.
Export snapshot (copy)
{
  "generated_at_client_iso": "2026-06-20T15:48:26.239Z",
  "latest_persisted_run_id": 16,
  "latest_persisted_source": "operator_action",
  "latest_persisted_severity": "warning",
  "ledger_scope_source": "ledger_scope_preview",
  "ledger_scope_persisted": false,
  "ledger_scope_severity": "warning",
  "findings_count": 12,
  "scope_summary": {
    "broker_positions_total": 12,
    "ledger_positions_total": 0,
    "matched_symbols_count": 0,
    "overlapping_symbols_count": 0,
    "clean_matched_symbols_count": 0,
    "matched_symbols_count_description": "count of overlapping symbols with no diffs (clean match)",
    "ledger_missing_broker_count": 0,
    "broker_outside_ledger_scope_count": 12,
    "quantity_mismatch_count": 0,
    "avg_cost_mismatch_count": 0,
    "stale_broker_flags_positions": 12,
    "snapshot_ts_iso": "2026-05-20T20:37:54.580370+00:00"
  },
  "category_counts": {
    "broker_position_outside_ledger_scope": 12
  },
  "priority_quantity_mismatches": [],
  "priority_avg_cost_mismatches": [],
  "broker_positions_outside_ledger_scope_count": 12,
  "broker_positions_outside_ledger_scope_symbols_first_20": [
    "MU",
    "AAPL",
    "AVGO",
    "CF",
    "COST",
    "GOOG",
    "GOOGL",
    "NFLX",
    "PEP",
    "PLTR",
    "TSLA",
    "V"
  ]
}
Ledger-scope preview (read-only)
Source: /internal/reconciliation-v2/ledger-scope-preview
This preview is computed on demand and is not persisted. It compares broker positions against positions implied by open/closing trade-ledger rows. Broker positions outside the trade-ledger scope are classified separately.
generated_at
2026-06-20T15:48:26.191513+00:00
persisted
false
source
ledger_scope_preview
severity
warning
findings_count
12
overlapping_symbols_count
0
clean_matched_symbols_count
0
broker_outside_ledger_scope_count
12
quantity_mismatch_count
0
avg_cost_mismatch_count
0
snapshot_ts_iso
2026-05-20T20:37:54.580370+00:00
Details show the raw broker/internal snapshots used for this read-only preview. Links navigate to existing read-only operator views.
Scope summary
metricvalue
broker_positions_total12
ledger_positions_total0
matched_symbols_count0
overlapping_symbols_count0
clean_matched_symbols_count0
matched_symbols_count_descriptioncount of overlapping symbols with no diffs (clean match)
ledger_missing_broker_count0
broker_outside_ledger_scope_count12
quantity_mismatch_count0
avg_cost_mismatch_count0
stale_broker_flags_positions12
snapshot_ts_iso2026-05-20T20:37:54.580370+00:00
Actionable mismatches0 findings
categoryseveritysymbolaccountbroker qtyinternal qtybroker avginternal avgmessagelinksdetails
No findings.
Broker positions outside trade-ledger scope12 findings
warning 12
These broker positions exist at the broker but are not represented by open/closing trade-ledger rows. They may be legacy/manual/out-of-scope positions.
categoryseveritysymbolaccountbroker qtyinternal qtybroker avginternal avgmessagelinksdetails
broker_position_outside_ledger_scopewarningMUDUP667958-199-489.030578-broker position not represented in trade ledger scope
details
order_id
-
broker_order_id
-
ts_iso
2026-06-20T15:48:26.191513+00:00
broker_value_json
{
  "account_id": "DUP667958",
  "symbol": "MU",
  "quantity": -199,
  "avg_price": 489.030578
}
internal_value_json
{}
metadata_json
{
  "kind": "outside_ledger_scope",
  "key": "DUP667958|MU",
  "reason_code": "STALE_BROKER_TRUTH"
}
broker_position_outside_ledger_scopewarningAAPLDUP667958-565-272.476935-broker position not represented in trade ledger scope
details
order_id
-
broker_order_id
-
ts_iso
2026-06-20T15:48:26.191513+00:00
broker_value_json
{
  "account_id": "DUP667958",
  "symbol": "AAPL",
  "quantity": -565,
  "avg_price": 272.476935
}
internal_value_json
{}
metadata_json
{
  "kind": "outside_ledger_scope",
  "key": "DUP667958|AAPL",
  "reason_code": "STALE_BROKER_TRUTH"
}
broker_position_outside_ledger_scopewarningAVGODUP6679583-399.343333-broker position not represented in trade ledger scope
details
order_id
-
broker_order_id
-
ts_iso
2026-06-20T15:48:26.191513+00:00
broker_value_json
{
  "account_id": "DUP667958",
  "symbol": "AVGO",
  "quantity": 3,
  "avg_price": 399.343333
}
internal_value_json
{}
metadata_json
{
  "kind": "outside_ledger_scope",
  "key": "DUP667958|AVGO",
  "reason_code": "STALE_BROKER_TRUTH"
}
broker_position_outside_ledger_scopewarningCFDUP667958-99-115.567424-broker position not represented in trade ledger scope
details
order_id
-
broker_order_id
-
ts_iso
2026-06-20T15:48:26.191513+00:00
broker_value_json
{
  "account_id": "DUP667958",
  "symbol": "CF",
  "quantity": -99,
  "avg_price": 115.567424
}
internal_value_json
{}
metadata_json
{
  "kind": "outside_ledger_scope",
  "key": "DUP667958|CF",
  "reason_code": "STALE_BROKER_TRUTH"
}
broker_position_outside_ledger_scopewarningCOSTDUP667958-99-1010.328993-broker position not represented in trade ledger scope
details
order_id
-
broker_order_id
-
ts_iso
2026-06-20T15:48:26.191513+00:00
broker_value_json
{
  "account_id": "DUP667958",
  "symbol": "COST",
  "quantity": -99,
  "avg_price": 1010.328993
}
internal_value_json
{}
metadata_json
{
  "kind": "outside_ledger_scope",
  "key": "DUP667958|COST",
  "reason_code": "STALE_BROKER_TRUTH"
}
broker_position_outside_ledger_scopewarningGOOGDUP667958-195-335.600084-broker position not represented in trade ledger scope
details
order_id
-
broker_order_id
-
ts_iso
2026-06-20T15:48:26.191513+00:00
broker_value_json
{
  "account_id": "DUP667958",
  "symbol": "GOOG",
  "quantity": -195,
  "avg_price": 335.600084
}
internal_value_json
{}
metadata_json
{
  "kind": "outside_ledger_scope",
  "key": "DUP667958|GOOG",
  "reason_code": "STALE_BROKER_TRUTH"
}
broker_position_outside_ledger_scopewarningGOOGLDUP667958-188-337.263582-broker position not represented in trade ledger scope
details
order_id
-
broker_order_id
-
ts_iso
2026-06-20T15:48:26.191513+00:00
broker_value_json
{
  "account_id": "DUP667958",
  "symbol": "GOOGL",
  "quantity": -188,
  "avg_price": 337.263582
}
internal_value_json
{}
metadata_json
{
  "kind": "outside_ledger_scope",
  "key": "DUP667958|GOOGL",
  "reason_code": "STALE_BROKER_TRUTH"
}
broker_position_outside_ledger_scopewarningNFLXDUP667958-187-93.214516-broker position not represented in trade ledger scope
details
order_id
-
broker_order_id
-
ts_iso
2026-06-20T15:48:26.191513+00:00
broker_value_json
{
  "account_id": "DUP667958",
  "symbol": "NFLX",
  "quantity": -187,
  "avg_price": 93.214516
}
internal_value_json
{}
metadata_json
{
  "kind": "outside_ledger_scope",
  "key": "DUP667958|NFLX",
  "reason_code": "STALE_BROKER_TRUTH"
}
broker_position_outside_ledger_scopewarningPEPDUP667958-191-156.207791-broker position not represented in trade ledger scope
details
order_id
-
broker_order_id
-
ts_iso
2026-06-20T15:48:26.191513+00:00
broker_value_json
{
  "account_id": "DUP667958",
  "symbol": "PEP",
  "quantity": -191,
  "avg_price": 156.207791
}
internal_value_json
{}
metadata_json
{
  "kind": "outside_ledger_scope",
  "key": "DUP667958|PEP",
  "reason_code": "STALE_BROKER_TRUTH"
}
broker_position_outside_ledger_scopewarningPLTRDUP667958-197-143.957601-broker position not represented in trade ledger scope
details
order_id
-
broker_order_id
-
ts_iso
2026-06-20T15:48:26.191513+00:00
broker_value_json
{
  "account_id": "DUP667958",
  "symbol": "PLTR",
  "quantity": -197,
  "avg_price": 143.957601
}
internal_value_json
{}
metadata_json
{
  "kind": "outside_ledger_scope",
  "key": "DUP667958|PLTR",
  "reason_code": "STALE_BROKER_TRUTH"
}
broker_position_outside_ledger_scopewarningTSLADUP667958-292-384.162398-broker position not represented in trade ledger scope
details
order_id
-
broker_order_id
-
ts_iso
2026-06-20T15:48:26.191513+00:00
broker_value_json
{
  "account_id": "DUP667958",
  "symbol": "TSLA",
  "quantity": -292,
  "avg_price": 384.162398
}
internal_value_json
{}
metadata_json
{
  "kind": "outside_ledger_scope",
  "key": "DUP667958|TSLA",
  "reason_code": "STALE_BROKER_TRUTH"
}
broker_position_outside_ledger_scopewarningVDUP6679584-314.1-broker position not represented in trade ledger scope
details
order_id
-
broker_order_id
-
ts_iso
2026-06-20T15:48:26.191513+00:00
broker_value_json
{
  "account_id": "DUP667958",
  "symbol": "V",
  "quantity": 4,
  "avg_price": 314.1
}
internal_value_json
{}
metadata_json
{
  "kind": "outside_ledger_scope",
  "key": "DUP667958|V",
  "reason_code": "STALE_BROKER_TRUTH"
}
raw (ledger-scope preview)
{
  "generated_at_iso": "2026-06-20T15:48:26.191513+00:00",
  "source": "ledger_scope_preview",
  "persisted": false,
  "severity": "warning",
  "findings_count": 12,
  "summary": {
    "severity": "warning",
    "broker_positions": 12,
    "internal_positions": 0,
    "matched_positions": 0,
    "findings_count": 12,
    "source": "ledger_scope_preview",
    "scope_summary": {
      "broker_positions_total": 12,
      "ledger_positions_total": 0,
      "matched_symbols_count": 0,
      "overlapping_symbols_count": 0,
      "clean_matched_symbols_count": 0,
      "matched_symbols_count_description": "count of overlapping symbols with no diffs (clean match)",
      "ledger_missing_broker_count": 0,
      "broker_outside_ledger_scope_count": 12,
      "quantity_mismatch_count": 0,
      "avg_cost_mismatch_count": 0,
      "stale_broker_flags_positions": 12,
      "snapshot_ts_iso": "2026-05-20T20:37:54.580370+00:00"
    }
  },
  "findings": [
    {
      "ts_iso": "2026-06-20T15:48:26.191513+00:00",
      "category": "broker_position_outside_ledger_scope",
      "severity": "warning",
      "symbol": "MU",
      "order_id": null,
      "broker_order_id": null,
      "message": "broker position not represented in trade ledger scope",
      "internal_value_json": {},
      "broker_value_json": {
        "account_id": "DUP667958",
        "symbol": "MU",
        "quantity": -199,
        "avg_price": 489.030578
      },
      "metadata_json": {
        "kind": "outside_ledger_scope",
        "key": "DUP667958|MU",
        "reason_code": "STALE_BROKER_TRUTH"
      }
    },
    {
      "ts_iso": "2026-06-20T15:48:26.191513+00:00",
      "category": "broker_position_outside_ledger_scope",
      "severity": "warning",
      "symbol": "AAPL",
      "order_id": null,
      "broker_order_id": null,
      "message": "broker position not represented in trade ledger scope",
      "internal_value_json": {},
      "broker_value_json": {
        "account_id": "DUP667958",
        "symbol": "AAPL",
        "quantity": -565,
        "avg_price": 272.476935
      },
      "metadata_json": {
        "kind": "outside_ledger_scope",
        "key": "DUP667958|AAPL",
        "reason_code": "STALE_BROKER_TRUTH"
      }
    },
    {
      "ts_iso": "2026-06-20T15:48:26.191513+00:00",
      "category": "broker_position_outside_ledger_scope",
      "severity": "warning",
      "symbol": "AVGO",
      "order_id": null,
      "broker_order_id": null,
      "message": "broker position not represented in trade ledger scope",
      "internal_value_json": {},
      "broker_value_json": {
        "account_id": "DUP667958",
        "symbol": "AVGO",
        "quantity": 3,
        "avg_price": 399.343333
      },
      "metadata_json": {
        "kind": "outside_ledger_scope",
        "key": "DUP667958|AVGO",
        "reason_code": "STALE_BROKER_TRUTH"
      }
    },
    {
      "ts_iso": "2026-06-20T15:48:26.191513+00:00",
      "category": "broker_position_outside_ledger_scope",
      "severity": "warning",
      "symbol": "CF",
      "order_id": null,
      "broker_order_id": null,
      "message": "broker position not represented in trade ledger scope",
      "internal_value_json": {},
      "broker_value_json": {
        "account_id": "DUP667958",
        "symbol": "CF",
        "quantity": -99,
        "avg_price": 115.567424
      },
      "metadata_json": {
        "kind": "outside_ledger_scope",
        "key": "DUP667958|CF",
        "reason_code": "STALE_BROKER_TRUTH"
      }
    },
    {
      "ts_iso": "2026-06-20T15:48:26.191513+00:00",
      "category": "broker_position_outside_ledger_scope",
      "severity": "warning",
      "symbol": "COST",
      "order_id": null,
      "broker_order_id": null,
      "message": "broker position not represented in trade ledger scope",
      "internal_value_json": {},
      "broker_value_json": {
        "account_id": "DUP667958",
        "symbol": "COST",
        "quantity": -99,
        "avg_price": 1010.328993
      },
      "metadata_json": {
        "kind": "outside_ledger_scope",
        "key": "DUP667958|COST",
        "reason_code": "STALE_BROKER_TRUTH"
      }
    },
    {
      "ts_iso": "2026-06-20T15:48:26.191513+00:00",
      "category": "broker_position_outside_ledger_scope",
      "severity": "warning",
      "symbol": "GOOG",
      "order_id": null,
      "broker_order_id": null,
      "message": "broker position not represented in trade ledger scope",
      "internal_value_json": {},
      "broker_value_json": {
        "account_id": "DUP667958",
        "symbol": "GOOG",
        "quantity": -195,
        "avg_price": 335.600084
      },
      "metadata_json": {
        "kind": "outside_ledger_scope",
        "key": "DUP667958|GOOG",
        "reason_code": "STALE_BROKER_TRUTH"
      }
    },
    {
      "ts_iso": "2026-06-20T15:48:26.191513+00:00",
      "category": "broker_position_outside_ledger_scope",
      "severity": "warning",
      "symbol": "GOOGL",
      "order_id": null,
      "broker_order_id": null,
      "message": "broker position not represented in trade ledger scope",
      "internal_value_json": {},
      "broker_value_json": {
        "account_id": "DUP667958",
        "symbol": "GOOGL",
        "quantity": -188,
        "avg_price": 337.263582
      },
      "metadata_json": {
        "kind": "outside_ledger_scope",
        "key": "DUP667958|GOOGL",
        "reason_code": "STALE_BROKER_TRUTH"
      }
    },
    {
      "ts_iso": "2026-06-20T15:48:26.191513+00:00",
      "category": "broker_position_outside_ledger_scope",
      "severity": "warning",
      "symbol": "NFLX",
      "order_id": null,
      "broker_order_id": null,
      "message": "broker position not represented in trade ledger scope",
      "internal_value_json": {},
      "broker_value_json": {
        "account_id": "DUP667958",
        "symbol": "NFLX",
        "quantity": -187,
        "avg_price": 93.214516
      },
      "metadata_json": {
        "kind": "outside_ledger_scope",
        "key": "DUP667958|NFLX",
        "reason_code": "STALE_BROKER_TRUTH"
      }
    },
    {
      "ts_iso": "2026-06-20T15:48:26.191513+00:00",
      "category": "broker_position_outside_ledger_scope",
      "severity": "warning",
      "symbol": "PEP",
      "order_id": null,
      "broker_order_id": null,
      "message": "broker position not represented in trade ledger scope",
      "internal_value_json": {},
      "broker_value_json": {
        "account_id": "DUP667958",
        "symbol": "PEP",
        "quantity": -191,
        "avg_price": 156.207791
      },
      "metadata_json": {
        "kind": "outside_ledger_scope",
        "key": "DUP667958|PEP",
        "reason_code": "STALE_BROKER_TRUTH"
      }
    },
    {
      "ts_iso": "2026-06-20T15:48:26.191513+00:00",
      "category": "broker_position_outside_ledger_scope",
      "severity": "warning",
      "symbol": "PLTR",
      "order_id": null,
      "broker_order_id": null,
      "message": "broker position not represented in trade ledger scope",
      "internal_value_json": {},
      "broker_value_json": {
        "account_id": "DUP667958",
        "symbol": "PLTR",
        "quantity": -197,
        "avg_price": 143.957601
      },
      "metadata_json": {
        "kind": "outside_ledger_scope",
        "key": "DUP667958|PLTR",
        "reason_code": "STALE_BROKER_TRUTH"
      }
    },
    {
      "ts_iso": "2026-06-20T15:48:26.191513+00:00",
      "category": "broker_position_outside_ledger_scope",
      "severity": "warning",
      "symbol": "TSLA",
      "order_id": null,
      "broker_order_id": null,
      "message": "broker position not represented in trade ledger scope",
      "internal_value_json": {},
      "broker_value_json": {
        "account_id": "DUP667958",
        "symbol": "TSLA",
        "quantity": -292,
        "avg_price": 384.162398
      },
      "metadata_json": {
        "kind": "outside_ledger_scope",
        "key": "DUP667958|TSLA",
        "reason_code": "STALE_BROKER_TRUTH"
      }
    },
    {
      "ts_iso": "2026-06-20T15:48:26.191513+00:00",
      "category": "broker_position_outside_ledger_scope",
      "severity": "warning",
      "symbol": "V",
      "order_id": null,
      "broker_order_id": null,
      "message": "broker position not represented in trade ledger scope",
      "internal_value_json": {},
      "broker_value_json": {
        "account_id": "DUP667958",
        "symbol": "V",
        "quantity": 4,
        "avg_price": 314.1
      },
      "metadata_json": {
        "kind": "outside_ledger_scope",
        "key": "DUP667958|V",
        "reason_code": "STALE_BROKER_TRUTH"
      }
    }
  ],
  "scope_summary": {
    "broker_positions_total": 12,
    "ledger_positions_total": 0,
    "matched_symbols_count": 0,
    "overlapping_symbols_count": 0,
    "clean_matched_symbols_count": 0,
    "matched_symbols_count_description": "count of overlapping symbols with no diffs (clean match)",
    "ledger_missing_broker_count": 0,
    "broker_outside_ledger_scope_count": 12,
    "quantity_mismatch_count": 0,
    "avg_cost_mismatch_count": 0,
    "stale_broker_flags_positions": 12,
    "snapshot_ts_iso": "2026-05-20T20:37:54.580370+00:00"
  }
}
Latest persisted reconciliation run
Source: /internal/reconciliation-v2/latest
Historical reconciliation-v2 run is stale and does not by itself affect terminal control state.
Effective state: normal. Always use terminal effective state for gating.
run_id
16
severity
warning
generated_at
2026-05-02T16:05:43.275119+00:00
findings_count
14
age_seconds
4232562.887066
stale_threshold_seconds
600
stale_warning
true
historical_latest
true
affects_terminal_control_state
false
metricvalue
severitywarning
broker_orders0
broker_positions16
internal_orders0
internal_positions1
matched_orders0
matched_positions0
findings_count14
phase_9ax
sourceoperator_action
raw (latest v2)
{
  "has_persisted": true,
  "run": {
    "id": 16,
    "created_at_iso": "2026-05-02T16:05:43.274232+00:00",
    "generated_at_iso": "2026-05-02T16:05:43.275119+00:00",
    "source": "operator_action",
    "summary": {
      "severity": "warning",
      "broker_orders": 0,
      "broker_positions": 16,
      "internal_orders": 0,
      "internal_positions": 1,
      "matched_orders": 0,
      "matched_positions": 0,
      "findings_count": 14,
      "phase_9ax": {
        "phase": "9AX",
        "checked_at": "2026-05-02T16:05:43.275119+00:00",
        "orders_checked": 0,
        "broker_orders_checked": 0,
        "matched_orders": 0,
        "unmatched_oms_orders": 0,
        "unmatched_broker_orders": 0,
        "matched_broker_id": 0,
        "matched_secondary_oms_id": 0,
        "positions_checked": 1,
        "matched_positions": 0,
        "unmatched_positions": 14,
        "stale_broker_flags_positions": 0,
        "snapshot_ts_iso": "2026-05-02T16:05:42.656527+00:00",
        "env_grace_broker_id_sec": 300,
        "env_stale_snapshot_sec": 600,
        "critical": 0,
        "warning": 14,
        "info": 0,
        "reasons": {
          "INTERNAL_PRE_V2_POSITION": 1,
          "EXTERNAL_PRE_V2_BROKER_POSITION": 13
        }
      },
      "source": "operator_action"
    }
  },
  "age_seconds": 4232562.887066,
  "stale_threshold_seconds": 600,
  "stale_warning": true,
  "historical_latest": true,
  "affects_terminal_control_state": false,
  "operator_message": null
}
Operator actions (9K)
Available actions + recent history (manual trigger via API)
Available actions (from latest recommendations)
severityaction_codetitlerequired_params
okrerun_reconciliationRe-run reconciliation v2{}
Recent operator actions
tsaction_codestatusrequested_by
2026-05-02T16:05:43.272879+00:00rerun_reconciliationokvinaipatel
2026-05-02T15:55:21.663500+00:00rerun_reconciliationokvinaipatel
2026-05-02T15:54:50.360922+00:00rerun_reconciliationokvinaipatel
2026-05-02T15:16:50.141489+00:00rerun_reconciliationokvinaipatel
2026-05-02T15:07:10.410406+00:00rerun_reconciliationokvinaipatel
2026-05-02T14:59:02.302728+00:00rerun_reconciliationokvinaipatel
2026-05-02T14:56:29.741650+00:00rerun_reconciliationokvinaipatel
2026-05-02T14:55:47.384526+00:00rerun_reconciliationokvinaipatel
2026-05-02T14:47:30.304013+00:00rerun_reconciliationokvinaipatel
2026-05-02T14:41:49.925325+00:00rerun_reconciliationokvinaipatel
raw (operator actions available)
{
  "run_id": 16,
  "actions": [
    {
      "action_code": "rerun_reconciliation",
      "title": "Re-run reconciliation v2",
      "severity": "ok",
      "rationale": "After any operator action (or broker truth refresh), re-run reconciliation v2 to verify state convergence.",
      "required_params": {}
    }
  ]
}
raw (operator action history)
{
  "runs": [
    {
      "id": 10,
      "ts_iso": "2026-05-02T16:05:43.272879+00:00",
      "action_code": "rerun_reconciliation",
      "requested_by": "vinaipatel",
      "status": "ok",
      "source_context_json": {},
      "result_json": {
        "reconciliation_v2_run_id": 16,
        "severity": "warning",
        "findings_count": 14
      }
    },
    {
      "id": 9,
      "ts_iso": "2026-05-02T15:55:21.663500+00:00",
      "action_code": "rerun_reconciliation",
      "requested_by": "vinaipatel",
      "status": "ok",
      "source_context_json": {},
      "result_json": {
        "reconciliation_v2_run_id": 15,
        "severity": "warning",
        "findings_count": 14
      }
    },
    {
      "id": 8,
      "ts_iso": "2026-05-02T15:54:50.360922+00:00",
      "action_code": "rerun_reconciliation",
      "requested_by": "vinaipatel",
      "status": "ok",
      "source_context_json": {},
      "result_json": {
        "reconciliation_v2_run_id": 14,
        "severity": "warning",
        "findings_count": 14
      }
    },
    {
      "id": 7,
      "ts_iso": "2026-05-02T15:16:50.141489+00:00",
      "action_code": "rerun_reconciliation",
      "requested_by": "vinaipatel",
      "status": "ok",
      "source_context_json": {},
      "result_json": {
        "reconciliation_v2_run_id": 13,
        "severity": "critical",
        "findings_count": 14
      }
    },
    {
      "id": 6,
      "ts_iso": "2026-05-02T15:07:10.410406+00:00",
      "action_code": "rerun_reconciliation",
      "requested_by": "vinaipatel",
      "status": "ok",
      "source_context_json": {},
      "result_json": {
        "reconciliation_v2_run_id": 12,
        "severity": "critical",
        "findings_count": 14
      }
    },
    {
      "id": 5,
      "ts_iso": "2026-05-02T14:59:02.302728+00:00",
      "action_code": "rerun_reconciliation",
      "requested_by": "vinaipatel",
      "status": "ok",
      "source_context_json": {},
      "result_json": {
        "reconciliation_v2_run_id": 11,
        "severity": "warning",
        "findings_count": 14
      }
    },
    {
      "id": 4,
      "ts_iso": "2026-05-02T14:56:29.741650+00:00",
      "action_code": "rerun_reconciliation",
      "requested_by": "vinaipatel",
      "status": "ok",
      "source_context_json": {},
      "result_json": {
        "reconciliation_v2_run_id": 10,
        "severity": "warning",
        "findings_count": 14
      }
    },
    {
      "id": 3,
      "ts_iso": "2026-05-02T14:55:47.384526+00:00",
      "action_code": "rerun_reconciliation",
      "requested_by": "vinaipatel",
      "status": "ok",
      "source_context_json": {},
      "result_json": {
        "reconciliation_v2_run_id": 9,
        "severity": "warning",
        "findings_count": 14
      }
    },
    {
      "id": 2,
      "ts_iso": "2026-05-02T14:47:30.304013+00:00",
      "action_code": "rerun_reconciliation",
      "requested_by": "vinaipatel",
      "status": "ok",
      "source_context_json": {},
      "result_json": {
        "reconciliation_v2_run_id": 8,
        "severity": "warning",
        "findings_count": 14
      }
    },
    {
      "id": 1,
      "ts_iso": "2026-05-02T14:41:49.925325+00:00",
      "action_code": "rerun_reconciliation",
      "requested_by": "vinaipatel",
      "status": "ok",
      "source_context_json": {},
      "result_json": {
        "reconciliation_v2_run_id": 7,
        "severity": "warning",
        "findings_count": 14
      }
    }
  ]
}
Trigger via `POST /internal/operator-actions/run` (gated). Example payload:{"action_code":"rerun_reconciliation","requested_by":"operator","source_context":{"reconciliation_run_id":16},"params":{}}
Operator interventions (9L)
Execution controls (manual + persisted + reversible where applicable)
Effective pipeline state
strategy_loop_intake_paused
false
autonomous_submission_held
false
state_ts
2026-05-02T16:00:56.266375+00:00
Available interventions
intervention_codetarget_typedescription
pause_strategy_loop_intake-Pause OMS intake from strategy-loop decisions (manual trigger only; reversible).
resume_strategy_loop_intake-Resume OMS intake from strategy-loop decisions (manual trigger only).
hold_autonomous_order_submission-Hold submission of autonomous strategy-loop OMS orders to broker (manual; reversible).
release_autonomous_order_submission-Release hold on autonomous strategy-loop OMS order submission (manual).
hold_strategy_loop_decisionstrategy_loop_decisionHold a specific strategy-loop decision from OMS intake (target: strategy_loop_decision).
release_strategy_loop_decisionstrategy_loop_decisionRelease a held strategy-loop decision (target: strategy_loop_decision).
cancel_pending_autonomous_oms_orderoms_orderCancel a pending autonomous OMS order safely (approved-only local cancel; no broker mutation). Target: oms_order.
manual_override_record-Record a manual override note (persisted + auditable; no execution).
Recent intervention history
tsintervention_codestatustargetrequested_by
2026-05-02T16:00:56.266375+00:00release_autonomous_order_submissionok-:-vinaipatel
2026-05-02T16:00:56.229358+00:00resume_strategy_loop_intakeok-:-vinaipatel
2026-05-02T14:38:58.922009+00:00cancel_pending_autonomous_oms_orderokoms_order:ord-exit-4vinaipatel
2026-05-02T14:38:58.835106+00:00cancel_pending_autonomous_oms_orderokoms_order:ord-exit-3vinaipatel
2026-05-02T14:38:58.624938+00:00cancel_pending_autonomous_oms_orderokoms_order:ord-exit-2vinaipatel
2026-05-02T14:37:25.326568+00:00cancel_pending_autonomous_oms_ordererroroms_order:ord-exit-4vinaipatel
2026-05-02T14:37:25.238564+00:00cancel_pending_autonomous_oms_ordererroroms_order:ord-exit-3vinaipatel
2026-05-02T14:37:24.959688+00:00cancel_pending_autonomous_oms_ordererroroms_order:ord-exit-2vinaipatel
2026-05-02T14:34:19.486126+00:00pause_strategy_loop_intakeok-:-vinaipatel
2026-05-02T14:33:08.438149+00:00hold_autonomous_order_submissionok-:-vinaipatel
raw (operator interventions available)
[
  {
    "intervention_code": "pause_strategy_loop_intake",
    "description": "Pause OMS intake from strategy-loop decisions (manual trigger only; reversible).",
    "target_type": null
  },
  {
    "intervention_code": "resume_strategy_loop_intake",
    "description": "Resume OMS intake from strategy-loop decisions (manual trigger only).",
    "target_type": null
  },
  {
    "intervention_code": "hold_autonomous_order_submission",
    "description": "Hold submission of autonomous strategy-loop OMS orders to broker (manual; reversible).",
    "target_type": null
  },
  {
    "intervention_code": "release_autonomous_order_submission",
    "description": "Release hold on autonomous strategy-loop OMS order submission (manual).",
    "target_type": null
  },
  {
    "intervention_code": "hold_strategy_loop_decision",
    "description": "Hold a specific strategy-loop decision from OMS intake (target: strategy_loop_decision).",
    "target_type": "strategy_loop_decision"
  },
  {
    "intervention_code": "release_strategy_loop_decision",
    "description": "Release a held strategy-loop decision (target: strategy_loop_decision).",
    "target_type": "strategy_loop_decision"
  },
  {
    "intervention_code": "cancel_pending_autonomous_oms_order",
    "description": "Cancel a pending autonomous OMS order safely (approved-only local cancel; no broker mutation). Target: oms_order.",
    "target_type": "oms_order"
  },
  {
    "intervention_code": "manual_override_record",
    "description": "Record a manual override note (persisted + auditable; no execution).",
    "target_type": null
  }
]
raw (operator intervention state)
{
  "ts": "2026-05-02T16:00:56.266375+00:00",
  "strategy_loop_intake_paused": false,
  "autonomous_submission_held": false
}
raw (operator intervention history)
[
  {
    "id": 10,
    "ts": "2026-05-02T16:00:56.266375+00:00",
    "intervention_code": "release_autonomous_order_submission",
    "target_type": null,
    "target_id": null,
    "requested_by": "vinaipatel",
    "status": "ok",
    "result_json": {
      "persisted": true,
      "note": "intervention persisted; enforcement is deterministic via effective-state reads"
    },
    "metadata_json": {}
  },
  {
    "id": 9,
    "ts": "2026-05-02T16:00:56.229358+00:00",
    "intervention_code": "resume_strategy_loop_intake",
    "target_type": null,
    "target_id": null,
    "requested_by": "vinaipatel",
    "status": "ok",
    "result_json": {
      "persisted": true,
      "note": "intervention persisted; enforcement is deterministic via effective-state reads"
    },
    "metadata_json": {}
  },
  {
    "id": 8,
    "ts": "2026-05-02T14:38:58.922009+00:00",
    "intervention_code": "cancel_pending_autonomous_oms_order",
    "target_type": "oms_order",
    "target_id": "ord-exit-4",
    "requested_by": "vinaipatel",
    "status": "ok",
    "result_json": {
      "order_id": "ord-exit-4",
      "oms_cancel_result": {
        "order_id": "ord-exit-4",
        "status": "canceled",
        "broker": null
      }
    },
    "metadata_json": {}
  },
  {
    "id": 7,
    "ts": "2026-05-02T14:38:58.835106+00:00",
    "intervention_code": "cancel_pending_autonomous_oms_order",
    "target_type": "oms_order",
    "target_id": "ord-exit-3",
    "requested_by": "vinaipatel",
    "status": "ok",
    "result_json": {
      "order_id": "ord-exit-3",
      "oms_cancel_result": {
        "order_id": "ord-exit-3",
        "status": "canceled",
        "broker": null
      }
    },
    "metadata_json": {}
  },
  {
    "id": 6,
    "ts": "2026-05-02T14:38:58.624938+00:00",
    "intervention_code": "cancel_pending_autonomous_oms_order",
    "target_type": "oms_order",
    "target_id": "ord-exit-2",
    "requested_by": "vinaipatel",
    "status": "ok",
    "result_json": {
      "order_id": "ord-exit-2",
      "oms_cancel_result": {
        "order_id": "ord-exit-2",
        "status": "canceled",
        "broker": null
      }
    },
    "metadata_json": {}
  },
  {
    "id": 5,
    "ts": "2026-05-02T14:37:25.326568+00:00",
    "intervention_code": "cancel_pending_autonomous_oms_order",
    "target_type": "oms_order",
    "target_id": "ord-exit-4",
    "requested_by": "vinaipatel",
    "status": "error",
    "result_json": {
      "error": "illegal transition: approved -> canceled"
    },
    "metadata_json": {}
  },
  {
    "id": 4,
    "ts": "2026-05-02T14:37:25.238564+00:00",
    "intervention_code": "cancel_pending_autonomous_oms_order",
    "target_type": "oms_order",
    "target_id": "ord-exit-3",
    "requested_by": "vinaipatel",
    "status": "error",
    "result_json": {
      "error": "illegal transition: approved -> canceled"
    },
    "metadata_json": {}
  },
  {
    "id": 3,
    "ts": "2026-05-02T14:37:24.959688+00:00",
    "intervention_code": "cancel_pending_autonomous_oms_order",
    "target_type": "oms_order",
    "target_id": "ord-exit-2",
    "requested_by": "vinaipatel",
    "status": "error",
    "result_json": {
      "error": "illegal transition: approved -> canceled"
    },
    "metadata_json": {}
  },
  {
    "id": 2,
    "ts": "2026-05-02T14:34:19.486126+00:00",
    "intervention_code": "pause_strategy_loop_intake",
    "target_type": null,
    "target_id": null,
    "requested_by": "vinaipatel",
    "status": "ok",
    "result_json": {
      "persisted": true,
      "note": "intervention persisted; enforcement is deterministic via effective-state reads"
    },
    "metadata_json": {}
  },
  {
    "id": 1,
    "ts": "2026-05-02T14:33:08.438149+00:00",
    "intervention_code": "hold_autonomous_order_submission",
    "target_type": null,
    "target_id": null,
    "requested_by": "vinaipatel",
    "status": "ok",
    "result_json": {
      "persisted": true,
      "note": "intervention persisted; enforcement is deterministic via effective-state reads"
    },
    "metadata_json": {}
  }
]
Trigger via `POST /internal/operator-interventions/run` (gated). Example payload:{"intervention_code":"pause_strategy_loop_intake","requested_by":"operator","target_type":null,"target_id":null,"params":{},"metadata":{}}
Latest reconciliation (v1)
Source: /internal/reconciliation/latest
Loading…