Cash Flow Triage
Cash Flow Triage
Open Operator Dashboard → Operations → Cash Flow Triage (/market-pnl-issues), or use a warning/banner link from Market PnL.
All three scopes are required: trades:read, redemptions:read, and balance_operations:read, or *. Records and details are limited to your operator. This page is read-only: it cannot confirm outcomes, retry money movement, refund a user, or write off an unpaid payout.
Find the source record
Start with Unresolved outcomes (the default), or select:
| Issue state | What it selects |
|---|---|
| Unresolved outcomes | Sources with pending or ambiguous cash work, including source blockers with no open wallet row. |
| Failed / unpaid | Failed sources or sources with remaining failed-payout obligations. A failed source is not necessarily an unpaid payout; inspect the count and amount. |
| Resolved outcomes | Sources with recorded manual resolution history and no remaining ambiguity. An unpaid obligation can still remain. |
| All recorded issues | Pending issues, failed/unpaid obligations, or recorded manual-resolution history; not a complete trade ledger. |
Filter by source (Trade orders or Redemptions), exact Source ID, Market ID, exact external user ID, market title/slug, and operator-local resolution dates. Use source kind together with Source ID: order and redemption numbers are separate namespaces. Select Apply filters; results have 25 source records per page, newest source update first.
There is no default date cutoff when opening Triage directly. Market PnL links preserve their resolution-date filters, not a wallet-operation creation-date window. Clear dates or use Reset if an older item is missing. This operator view concerns resolved Opinion markets, not Polyflight or all open-market operations; use Balance Ops for broader wallet investigation.
Expand retained evidence
Expand a source to load its linked operations. Review:
- source kind/ID, source status, user, market, and failure reason;
- unresolved count and failed/unpaid amount;
- wallet operation ID, direction, amount/currency, status, and attempt count;
- original idempotency key and remote receipt reference;
- created, updated, completed, and stored next-retry timestamps;
- the Resolution eligibility blocker, when present;
- Recorded request / response logs (redacted) and Resolution audit history.
These are bounded retained request/response records, not a live server-log stream. Credentials, transport fields, unstructured bodies, and unknown fields are withheld or truncated. Missing retained evidence is not proof the wallet mutation did not happen. A retry timestamp does not guarantee an automatic retry. Retry loading evidence repeats only the read request; it does not retry the wallet mutation.
A Source-level blocker has no linked wallet operation. Escalate the source itself: there is no wallet receipt here to mark completed or failed.
Audit history shows the recorded decision, actor ID, time, reason, and evidence reference. A recorded failure can close ambiguity without satisfying an outstanding payment obligation.
Escalate, do not resend
- Capture environment, operator, source kind/ID, market ID, and exact external user ID.
- Record operation ID, direction, amount/currency, original idempotency key, receipt reference, timestamps, and any eligibility blocker.
- Look up that original key in your authoritative wallet ledger. Supply evidence of whether the exact mutation applied, plus the ledger/receipt reference and a reason. A timeout alone is not evidence of failure; a current balance alone may not identify a specific mutation.
- Send the minimal redacted evidence through Operator Support. State whether an unpaid obligation remains and whether any correction has already occurred.
Open Polynion Admin to resolve is a handoff link for separately authorized Polynion Admin staff. It does not grant Admin access to operator staff. Authorized Admin reconciliation can record a completed/failed wallet outcome with evidence and an audit reason; it does not send money or waive debt. Do not issue a fresh-key retry or make a separate compensating payment merely to clear the warning. Reconciliation of unknown outcomes and any actual financial follow-up must be coordinated first.
Use Refresh after Polynion has reconciled the record, then return to Market PnL and review both unresolved and failed/unpaid warnings. An error loading details is not an empty or resolved issue.
Source API
Read-only endpoints:
GET /api/operator/market-pnl/issues
GET /api/operator/market-pnl/issues/{kind}/{source_id}
kind is order or redemption. Both endpoints require all three scopes and reject operator selectors. No operator mutation endpoint is provided for cash-outcome decisions.
See the Cash Flow Triage API reference for list/detail projections, filter limits, and error codes.
