LIVE TRADING NO-GO — signed approval is missing.
Phase 54 documentation is not approval to trade live.
PAPER ONLY — IBKR paper account active. Live trading is blocked.
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)
On this page
Jump to key sections
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
| symbol | severity | categories | broker qty | internal qty | broker avg | internal avg | operator note |
|---|---|---|---|---|---|---|---|
| No symbols with quantity mismatch. | |||||||
Priority 2 — avg_cost_mismatch (no quantity mismatch on symbol)
| symbol | severity | categories | broker qty | internal qty | broker avg | internal avg | operator note |
|---|---|---|---|---|---|---|---|
| No symbols with avg-cost mismatch only. | |||||||
Priority 3 — broker_position_outside_ledger_scope (no quantity or avg-cost mismatch on symbol)
| symbol | severity | categories | broker qty | internal qty | broker avg | internal avg | operator note |
|---|---|---|---|---|---|---|---|
| AAPL | warning | broker_position_outside_ledger_scope | -565 | - | 272.476935 | - | Broker position is outside open/closing trade-ledger scope. |
| AVGO | warning | broker_position_outside_ledger_scope | 3 | - | 399.343333 | - | Broker position is outside open/closing trade-ledger scope. |
| CF | warning | broker_position_outside_ledger_scope | -99 | - | 115.567424 | - | Broker position is outside open/closing trade-ledger scope. |
| COST | warning | broker_position_outside_ledger_scope | -99 | - | 1010.328993 | - | Broker position is outside open/closing trade-ledger scope. |
| GOOG | warning | broker_position_outside_ledger_scope | -195 | - | 335.600084 | - | Broker position is outside open/closing trade-ledger scope. |
| GOOGL | warning | broker_position_outside_ledger_scope | -188 | - | 337.263582 | - | Broker position is outside open/closing trade-ledger scope. |
| MU | warning | broker_position_outside_ledger_scope | -199 | - | 489.030578 | - | Broker position is outside open/closing trade-ledger scope. |
| NFLX | warning | broker_position_outside_ledger_scope | -187 | - | 93.214516 | - | Broker position is outside open/closing trade-ledger scope. |
| PEP | warning | broker_position_outside_ledger_scope | -191 | - | 156.207791 | - | Broker position is outside open/closing trade-ledger scope. |
| PLTR | warning | broker_position_outside_ledger_scope | -197 | - | 143.957601 | - | Broker position is outside open/closing trade-ledger scope. |
| TSLA | warning | broker_position_outside_ledger_scope | -292 | - | 384.162398 | - | Broker position is outside open/closing trade-ledger scope. |
| V | warning | broker_position_outside_ledger_scope | 4 | - | 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
| symbol | broker qty | ledger qty | net diff | severity |
|---|---|---|---|---|
| No quantity mismatches. | ||||
Priority 2: avg_cost_mismatch
| symbol | broker avg | ledger avg | diff | severity |
|---|---|---|---|---|
| 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
| metric | value |
|---|---|
| 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 |
Actionable mismatches0 findings
| category | severity | symbol | account | broker qty | internal qty | broker avg | internal avg | message | links | details |
|---|---|---|---|---|---|---|---|---|---|---|
| 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.
| category | severity | symbol | account | broker qty | internal qty | broker avg | internal avg | message | links | details |
|---|---|---|---|---|---|---|---|---|---|---|
| broker_position_outside_ledger_scope | warning | MU | DUP667958 | -199 | - | 489.030578 | - | broker position not represented in trade ledger scope | detailsorder_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_scope | warning | AAPL | DUP667958 | -565 | - | 272.476935 | - | broker position not represented in trade ledger scope | detailsorder_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_scope | warning | AVGO | DUP667958 | 3 | - | 399.343333 | - | broker position not represented in trade ledger scope | detailsorder_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_scope | warning | CF | DUP667958 | -99 | - | 115.567424 | - | broker position not represented in trade ledger scope | detailsorder_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_scope | warning | COST | DUP667958 | -99 | - | 1010.328993 | - | broker position not represented in trade ledger scope | detailsorder_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_scope | warning | GOOG | DUP667958 | -195 | - | 335.600084 | - | broker position not represented in trade ledger scope | detailsorder_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_scope | warning | GOOGL | DUP667958 | -188 | - | 337.263582 | - | broker position not represented in trade ledger scope | detailsorder_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_scope | warning | NFLX | DUP667958 | -187 | - | 93.214516 | - | broker position not represented in trade ledger scope | detailsorder_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_scope | warning | PEP | DUP667958 | -191 | - | 156.207791 | - | broker position not represented in trade ledger scope | detailsorder_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_scope | warning | PLTR | DUP667958 | -197 | - | 143.957601 | - | broker position not represented in trade ledger scope | detailsorder_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_scope | warning | TSLA | DUP667958 | -292 | - | 384.162398 | - | broker position not represented in trade ledger scope | detailsorder_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_scope | warning | V | DUP667958 | 4 | - | 314.1 | - | broker position not represented in trade ledger scope | detailsorder_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
| metric | value |
|---|---|
| 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 | … |
| source | operator_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
}Recommended actions (v2)
Source: /internal/reconciliation-v2/remediation/latest
| severity | code | title | count |
|---|---|---|---|
| ok | rerun_reconciliation | Re-run reconciliation | 1 |
raw (latest remediation)
{
"run_id": 16,
"generated_at_iso": "2026-05-02T16:05:43.275119+00:00",
"recommendations": [
{
"code": "rerun_reconciliation",
"severity": "ok",
"title": "Re-run reconciliation",
"rationale": "After any operator action (or broker truth refresh), re-run reconciliation v2 to verify state convergence.",
"affected": {
"run_id": 16
},
"count": 1
}
]
}Operator actions (9K)
Available actions + recent history (manual trigger via API)
Available actions (from latest recommendations)
| severity | action_code | title | required_params |
|---|---|---|---|
| ok | rerun_reconciliation | Re-run reconciliation v2 | {} |
Recent operator actions
| ts | action_code | status | requested_by |
|---|---|---|---|
| 2026-05-02T16:05:43.272879+00:00 | rerun_reconciliation | ok | vinaipatel |
| 2026-05-02T15:55:21.663500+00:00 | rerun_reconciliation | ok | vinaipatel |
| 2026-05-02T15:54:50.360922+00:00 | rerun_reconciliation | ok | vinaipatel |
| 2026-05-02T15:16:50.141489+00:00 | rerun_reconciliation | ok | vinaipatel |
| 2026-05-02T15:07:10.410406+00:00 | rerun_reconciliation | ok | vinaipatel |
| 2026-05-02T14:59:02.302728+00:00 | rerun_reconciliation | ok | vinaipatel |
| 2026-05-02T14:56:29.741650+00:00 | rerun_reconciliation | ok | vinaipatel |
| 2026-05-02T14:55:47.384526+00:00 | rerun_reconciliation | ok | vinaipatel |
| 2026-05-02T14:47:30.304013+00:00 | rerun_reconciliation | ok | vinaipatel |
| 2026-05-02T14:41:49.925325+00:00 | rerun_reconciliation | ok | vinaipatel |
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_code | target_type | description |
|---|---|---|
| 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_decision | strategy_loop_decision | Hold a specific strategy-loop decision from OMS intake (target: strategy_loop_decision). |
| release_strategy_loop_decision | strategy_loop_decision | Release a held strategy-loop decision (target: strategy_loop_decision). |
| cancel_pending_autonomous_oms_order | oms_order | Cancel 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
| ts | intervention_code | status | target | requested_by |
|---|---|---|---|---|
| 2026-05-02T16:00:56.266375+00:00 | release_autonomous_order_submission | ok | -:- | vinaipatel |
| 2026-05-02T16:00:56.229358+00:00 | resume_strategy_loop_intake | ok | -:- | vinaipatel |
| 2026-05-02T14:38:58.922009+00:00 | cancel_pending_autonomous_oms_order | ok | oms_order:ord-exit-4 | vinaipatel |
| 2026-05-02T14:38:58.835106+00:00 | cancel_pending_autonomous_oms_order | ok | oms_order:ord-exit-3 | vinaipatel |
| 2026-05-02T14:38:58.624938+00:00 | cancel_pending_autonomous_oms_order | ok | oms_order:ord-exit-2 | vinaipatel |
| 2026-05-02T14:37:25.326568+00:00 | cancel_pending_autonomous_oms_order | error | oms_order:ord-exit-4 | vinaipatel |
| 2026-05-02T14:37:25.238564+00:00 | cancel_pending_autonomous_oms_order | error | oms_order:ord-exit-3 | vinaipatel |
| 2026-05-02T14:37:24.959688+00:00 | cancel_pending_autonomous_oms_order | error | oms_order:ord-exit-2 | vinaipatel |
| 2026-05-02T14:34:19.486126+00:00 | pause_strategy_loop_intake | ok | -:- | vinaipatel |
| 2026-05-02T14:33:08.438149+00:00 | hold_autonomous_order_submission | ok | -:- | 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…