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

# Dealer positioning: flow vs std

> How GEX and TRACE sign dealer exposure, multi-venue aggregation, and when each model applies

Dealer exposure needs a **sign** at every contract: is the desk long or
short that option's gamma? Two models are available on the live GEX and
TRACE surfaces.

## Models

| Mode                 | Meaning                                                                                                  | When to use                                                             |
| -------------------- | -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| **`flow`** (default) | BackQuant's measured dealer model, derived from observed trading rather than an open-interest assumption | Best match to how price behaves where the model is available (BTC, ETH) |
| **`std`**            | Textbook convention: call OI positive, put OI negative                                                   | Backtests, comparisons to public GEX, or symbols without usable tape    |

Pass `?positioning=flow` or `?positioning=std`. Omit the param to get **flow**.

Every response that rebuilds live exposure reports the effective model in:

* `data.positioning` when present
* `meta.extra.positioning` and `meta.extra.positioning_requested`
* `meta.extra.positioning_fallback_reason` when flow was requested but std ran instead

## Aggregation

Live signed surfaces use:

Both models read the same multi-venue options chain for greeks and
**coin-unit OI**: Deribit, Bybit, OKX, Binance, Derive (when enabled), Thalex,
Delta India and Delta Global. See [Venue coverage](/concepts/venues) for what
each venue contributes.

GEX is reported in **USD impact per 1% move in spot**, so magnitudes are
comparable across symbols and across both models.

`meta.extra.aggregation` echoes which venues were combined for the response.

## Coin coverage

| Symbol            | Flow tape                           | Default behaviour                                                           |
| ----------------- | ----------------------------------- | --------------------------------------------------------------------------- |
| BTCUSDT, ETHUSDT  | Yes (multi-venue)                   | Flow when tape is non-empty                                                 |
| SOLUSDT, HYPEUSDT | When Derive (or other) tape is live | Falls back to **std** if no aggressor tape (`no_aggressor_tape_for_symbol`) |

If flow is empty for BTC/ETH, the API falls back to std and sets
`meta.extra.positioning_fallback_reason` (for example `flow_tape_empty`
or `flow_qty_all_zero`).

## Live vs history

| Surface                                                                               | Positioning                           |
| ------------------------------------------------------------------------------------- | ------------------------------------- |
| Levels, strike profile, expiry profile, heatmaps, TRACE, multi levels, greek profiles | **flow** default                      |
| `/v2/gex/history`, `/v2/gex/stress-history`                                           | **std** only (stored series)          |
| WebSocket `gex.levels.{SYMBOL}`                                                       | **flow** default, same as REST levels |
| Max pain, IV, PCR, OI, expected move, probability                                     | Not a signed dealer model             |

## Customer flow vs dealer hedge flow

Do not mix these up:

| Endpoint family                             | Side                                         | Source        |
| ------------------------------------------- | -------------------------------------------- | ------------- |
| `/v2/gex/delta-flow`, tape `weight=delta`   | **Customer** signed delta from trades        | Options tape  |
| `/v2/tape/flow-by-strike`                   | **Aggressor** activity by strike             | Options tape  |
| `/v2/gex/gamma-flow`, `/v2/gex/dealer-flow` | **Dealer** hedge estimate from chain × moves | GEX snapshots |

Positive on dealer-flow ≈ estimated dealer **buying** the underlying to
re-hedge. Positive on delta-flow ≈ net **customer** buy-side delta notional.

## Related

<CardGroup cols={2}>
  <Card title="What is GEX?" href="/concepts/gex" icon="bookmark" />

  <Card title="Venue coverage" href="/concepts/venues" icon="building" />

  <Card title="Flow by strike" href="/api/v2/tape/flow-by-strike" icon="chart-column" />

  <Card title="Greek TRACE" href="/api/v2/options/greeks/trace" icon="chart-area" />
</CardGroup>
