pnl.model
anonymous okModel position P&L
Black-Scholes P&L for a 1–8 leg option position: P&L grid now and at expiration, per-leg and net Greeks, break-evens, max profit/loss and probability of profit. Missing prices, IVs and spot are marked from the live chain.
Free. Anonymous and Free callers get 15-minute delayed data capped at 50 rows.
Input
| Field | Type | Description |
|---|---|---|
| legs* | object[] | |
| underlying_price | number | Spot; defaults to the live price |
| iv | number | Decimal IV applied to every leg; defaults to each leg’s chain IV |
| rate | number | Risk-free rate, decimalDefault 0.045. |
| date | string | Valuation date; defaults to today |
| price_range_pct | number | Grid half-width as a fraction of spotDefault 0.2. |
| points | integer | Grid price countDefault 41. |
* required
Output
Returned under data; every response also carries meta with freshness, as_of and truncated.
| Field | Type | Description |
|---|---|---|
| symbol* | string | |
| as_of* | string | Calendar date, YYYY-MM-DD |
| underlying_price* | number | |
| legs* | object[] | |
| net_debit* | number | Dollars; negative = net credit |
| greeks* | object | Position-level: Σ qty × 100 × Greek |
| breakevens* | number[] | |
| max_profit* | number | null | null when unbounded |
| max_loss* | number | null | null when unbounded; negative number otherwise |
| pop* | number | null | Probability the position is profitable at the nearest expiration, 0–1 |
| grid* | object[] | |
| setup_url* | string |
* required
Example request
Call debit spread, marked from the live chain
curl -X POST "https://impliedoptions.com/api/v1/tools/pnl.model" \
-H "Authorization: Bearer <YOUR_KEY>" \
-H "Content-Type: application/json" \
-d '{
"args": {
"legs": [
{
"occ": "SPY260918C00620000",
"qty": 1
},
{
"occ": "SPY260918C00640000",
"qty": -1
}
]
}
}'Rendered result: /analysis?setup=ticker%3ASPY%7Cpositions%3A%2BSPY260918C620%400.00%2C-SPY260918C640%400.00%7Cexp%3A2026-09-18