> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rook.pm/llms.txt
> Use this file to discover all available pages before exploring further.

# Positions and pre-trade exposure

> Compare your book before and after explicitly supplied candidate trades.

[`POST /evaluations:run`](/api-reference/run-evaluation) is stateless. Supply current positions directly, plus any candidate trade alternatives. A hypothetical fill never changes inventory.

## Make the desk side explicit

```json theme={null}
{
  "positions": [
    {
      "position_id": "inventory_cut",
      "instrument": {
        "outcome_id": "out_fed_dec_2026_cut_yes"
      },
      "position_type": "HELD",
      "quantity": "1000"
    },
    {
      "position_id": "inventory_hold",
      "instrument": {
        "outcome_id": "out_fed_dec_2026_hold_yes"
      },
      "position_type": "HELD",
      "quantity": "300"
    }
  ],
  "candidates": [
    {
      "candidate_id": "sell_250_cut",
      "trades": [
        {
          "trade_id": "trade_cut_250",
          "instrument": {
            "outcome_id": "out_fed_dec_2026_cut_yes"
          },
          "quantity_delta": "-250"
        }
      ]
    }
  ],
  "scenario_pins": [
    {
      "family_id": "fam_fed_dec_2026",
      "scenario_version": "1"
    }
  ],
  "include": [
    "SUMMARY",
    "PAYOUTS",
    "CONTRIBUTIONS",
    "SCENARIOS"
  ],
  "pricing": {
    "mode": "NONE"
  }
}
```

`HELD` receives the payout; `OWED` owes it. Position quantities are strictly positive. Candidate deltas are signed and nonzero. A positive delta adds receipt exposure and a negative delta reduces it or adds an obligation. This analytical convention does not imply a venue permits shorting.

Each candidate is an independent alternative against the same baseline. Trades inside one candidate form a simultaneous package. Duplicate holdings aggregate without losing contribution attribution.

## Read the result

The response provides a baseline, candidate before/after deltas, coverage, versions, requested pricing observations and warnings. Results can include payout vectors, contribution matrices, extrema, tie counts, witnesses, rankings and offsets.

Rankings cover the stated scenario domain before the result limit is applied. Filtering scenarios conditions the analysis; it cannot establish full-family extrema. An offset finding is analytical and does not imply collateral or operational netting.

## Several families

Separate families retain separate matrices. Exact whole-book extrema require compatible scenario tuples and currency/unit conventions, with each holding assigned once. Where local extrema cannot occur together, their sum may be a bound rather than an attainable result. Whole-book status is `EXACT`, `BOUND` or `UNAVAILABLE`, with an explanation.

## Optional current valuation

`pricing.mode` can request `MIDPOINT` or `LIQUIDATION`, with an optional maximum quote age. Missing quotes, depth or fees can make valuation incomplete while structural payout analysis remains available.

Mark-to-settlement comparisons use the stated current valuation convention. Historical-entry P\&L needs historical costs. An unlisted RFQ Combo may have no observed market price; the desk assesses its own premium separately.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.