---
title: "GET /private/simulate_portfolio"
method: GET
path: "/private/simulate_portfolio"
tags: ["Account Management", "Private"]
---

# GET /private/simulate_portfolio

`GET /private/simulate_portfolio`

Calculates portfolio margin requirements and risk metrics for simulated positions or the current portfolio. This method helps you understand margin requirements before opening new positions or assess the impact of potential trades.

You can simulate adding new positions to the current portfolio or calculate margin for a completely simulated portfolio. The response includes initial margin, maintenance margin, available funds, and other risk metrics.

**Note:** This method has a restricted rate limit of not more than once per second due to the computational complexity of portfolio margin calculations.

**📖 Related Article:** [Portfolio Margin](https://support.deribit.com/hc/en-us/articles/25944756247837-Portfolio-Margin)

**Scope:** `account:read`

[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fsimulate_portfolio)

## Query parameters

- `currency` 'BTC' | 'ETH' | 'USDC' | 'USDT' | 'EURR', required — Currency, i.e `"BTC"`, `"ETH"`, `"USDC"`
- `add_positions` boolean
- `simulated_positions` string — JSON string containing: object data

## Response `200`

Success response

- PrivateSimulatePortfolioResponse
  - `jsonrpc` '2.0', required — The JSON-RPC version (2.0)
  - `id` integer — The id that was sent in the request
  - `result` object, required — Portfolio margin simulation result
    - `currency` string — Currency of the simulation
    - `equity` number — The account's equity in the selected currency: `balance + futures (session UPL + RPL) + options mark value` (plus any external/implied equity). Related: `margin_balance` excludes options mark value under standard margin.
    - `balance` number — The account's cash balance in the selected currency (deposits, withdrawals, transfers, option premiums, settlements/deliveries, corrections, costs, and insurance refills). Does not include open futures PnL or options mark value.
    - `margin_balance` number — Collateral available against margin requirements. Under standard margin (SM): `equity - options_value` (cash balance plus futures session UPL and RPL). Under portfolio margin (PM): equal to `equity`. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
    - `initial_margin` number — The account's initial margin. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
    - `maintenance_margin` number — The maintenance margin. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
    - `projected_initial_margin` number — Initial margin calculated as if instruments expiring at the nearest expiration were excluded, so it shows the requirement that will remain once those instruments have expired. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
    - `projected_maintenance_margin` number — Maintenance margin calculated as if instruments expiring at the nearest expiration were excluded, so it shows the requirement that will remain once those instruments have expired. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
    - `available_funds` number — Funds available to increase margin usage (open or enlarge positions). Equal to `margin_balance - initial_margin`, floored at `0` in the API response. When initial margin usage exceeds 100%, this is `0` and only reducing orders can be placed. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
    - `available_withdrawal_funds` number — Funds available to withdraw in the selected currency. Typically lower than `available_funds` because withdrawals also exclude positive session profit, locked balance, `spot_reserve`, `additional_reserve`, and non-withdrawable external/implied equity components. Always ≥ `0`.
    - `available_subaccount_transfer_funds` number — The account's available funds for subaccount transfers
    - `total_pl` number — Total profit and loss of all open positions since each position was opened (not limited to the current session). Differs from `session_rpl` + `session_upl`, which reset at daily settlement.
    - `session_rpl` number — Realized profit and loss accrued in the current trading session (since the last daily settlement). Resets at each daily settlement.
    - `session_upl` number — Unrealized profit and loss on open positions in the current trading session (since the last daily settlement).
    - `futures_pl` number — Futures profit and loss
    - `futures_session_rpl` number — Futures session realized profit and loss
    - `futures_session_upl` number — Futures session unrealized profit and loss
    - `options_pl` number — Options profit and loss
    - `options_session_rpl` number — Options session realized profit and loss
    - `options_session_upl` number — Options session unrealized profit and loss
    - `options_value` number — Mark value of all open options positions in the selected currency. Under standard margin, `margin_balance = equity - options_value`.
    - `options_delta` number — Sum of the deltas of all options positions. For inverse (coin-margined) options this is the Black-Scholes delta; for linear options it is the index-price-adjusted delta. Unlike account-level `delta_total`, the options mark value is not subtracted.
    - `options_gamma` number — Sum of options position gammas (Black-Scholes).
    - `options_theta` number — Sum of the thetas of all options positions. Theta is expressed per day; for options with less than one day left to expiry it is scaled down to the fraction of a day remaining.
    - `options_vega` number — Sum of options position vegas (Black-Scholes).
    - `options_gamma_map` object — Map of options' gammas per index
    - `options_theta_map` object — Map of options' thetas per index
    - `options_vega_map` object — Map of options' vegas per index
    - `delta_total` number — The sum of position deltas. **DeltaTotal = Net Transaction Delta of options + BTC Position of Futures** The DeltaTotal uses the Net Transaction Delta (or price adjusted Delta) of the options, where Net Transaction Delta = Black Scholes Delta - Mark Price of Options. This is because, from a risk perspective, we are interested in the change in Bitcoin price as the underlying changes. You should actually treat your delta as **Equity + Delta Total** if you want to have less risk for your USD PnL. ⚠️ **During the 30 minute settlement period we decay your Delta.** See [Delta decay during settlement](https://support.deribit.com/hc/en-us/articles/25944751433757-Delta-decay-during-settlement) for more details.
    - `delta_total_map` object — Map of total deltas per index
    - `projected_delta_total` number — The sum of position deltas excluding positions that expire at the nearest expiration, so it shows the delta that will remain once those positions have expired. Calculated on the same Net Transaction Delta basis as `delta_total`, including delta decay during the settlement period.
    - `additional_reserve` number — The account's balance reserved for open buy option orders and option combo orders (the premium payable if they fill). Only non-zero on the `cross_sm` margin model; balance reserved by spot orders is reported separately in `spot_reserve`.
    - `spot_reserve` number — The account's balance reserved in active spot orders
    - `fee_balance` number — The account's fee balance (it can be used to pay for fees)
    - `locked_balance` number — The account's locked balance
    - `margin_model` string — Name of user's currently enabled margin model
    - `portfolio_margining_enabled` boolean — `true` when portfolio margining is enabled for user
    - `cross_collateral_enabled` boolean — When `true` cross collateral is enabled for user
    - `total_equity_usd` number — Optional (only for users using cross margin). The account's total equity in all cross collateral currencies, expressed in USD
    - `total_initial_margin_usd` number — Optional (only for users using cross margin). The account's total initial margin in all cross collateral currencies, expressed in USD
    - `total_maintenance_margin_usd` number — Optional (only for users using cross margin). The account's total maintenance margin in all cross collateral currencies, expressed in USD
    - `total_margin_balance_usd` number — Optional (only for users using cross margin). The account's total margin balance in all cross collateral currencies, expressed in USD
    - `total_delta_total_usd` number — Optional (only for users using cross margin). The account's total delta total in all cross collateral currencies, expressed in USD

---

[API](https://skmtc.net/deribit/apis/deribit-api.md) · [All operations](https://skmtc.net/deribit/apis/deribit-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/deribit/deribit-api/revisions/3506493f7ae3/schema)
