# Institutional holding object

Returned by [`POST /ownership/institutional-holdings/portfolio`](/documents/post-ownershipinstitutional-holdingsportfolio.md) and [`POST /ownership/institutional-holdings/security`](/documents/post-ownershipinstitutional-holdingssecurity.md) (flat mode) as `transactions[]`. Security rows additionally carry `manager_cik` / `manager_name`. Three row kinds, told apart by `type`:

- **`positions`** — a stock holding.
- **`derivatives`** — an option holding (`put_call` says which side).
- **`exited`** — a position closed out this quarter: identity plus the closing deltas only (`d_shares`, and `d_value` or `d_notional_value_usd`).

| Field | Meaning |
|-------|---------|
| `type`, `period` | Row kind and calendar quarter end. |
| `cusip`, `ticker`, `current_ticker`, `ticker_status`, `issuer`, `issuer_norm`, `class`, `security_type` | Security identity. `ticker` is the symbol matched to the CUSIP, `current_ticker` the current one (`null` when none). `issuer` is the name as filed, `issuer_norm` the normalized name, `class` the share-class text as filed. `ticker_status` is `us_listing`, `when_issued`, `non_us_listing`, `none` (no matching listed ticker), or null. Exited rows have no `ticker_status` or `security_type`. |
| `put_call` | `"Put"` / `"Call"` on option rows; null on stock rows. When the row kinds are mixed it is one of the fields telling them apart. |
| `shares_or_principal_amount` | `SH` = the row's `shares` is a share count; `PRN` = a principal amount in USD (debt securities); null = a row cancelled by an amendment, or missing in the original filing. |
| `shares` | Share count or principal amount, per the previous field. |
| `vote_sole`, `vote_shared`, `vote_none` | Voting-authority split as filed. |
| `discretion` | Investment discretion as filed (`SOLE`, `DFND`, `OTR` and combinations). |
| `source_accessions` | The amendment filings this row's current values come from; null = the quarter's main filing. |
| `activity` | `NEW` / `ADD` / `REDUCE` / `HOLD` / `CUSIP_CHANGE` versus the prior quarter. Null when there is no prior filed quarter to compare against. Exited rows have no activity. |
| `predecessor_cusip` | On `CUSIP_CHANGE` rows: the CUSIP this security was held under in the prior quarter. |
| `shares_before_cusip_change` | Shares held under the predecessor CUSIP; present only when non-null, directly after `predecessor_cusip`. |
| `d_pct` | Share change versus the prior quarter, percent (`d_shares` is the absolute change). |
| `unit_multiplier` | Row-level unit-correction multiplier (can be fractional, e.g. `0.001`); present when this row's filed value was individually corrected. |
| `restated` | `added` / `modified` / `cancelled` when an amendment changed this row; null otherwise. A cancelled row is a tombstone: its current-value fields are null and the old values sit in `prior_versions`. |
| `prior_versions` | Pre-amendment field values, newest first. |
| `submgr_breakdown` | Sub-manager split of the position: `{submgr_index, submgr_name, shares, pct_of_position}`. |
| `filer_flags` | Present only when the row is flagged: `zero_shares_with_value` (0 shares filed together with a value above 0), `implied_price_outlier` (value ÷ shares is at least 5× away from the security's closing price on the last trading day of the quarter). The filed values are returned as filed. |

Stock rows additionally carry `value` (USD), `weight` (this holding's share of the quarter's `total_positions_value` — a percent **string** with two decimals, e.g. `"61.88%"`; null on cancelled rows), `rank` (1 = the quarter's largest stock holding), `avg_price`, and `d_value`. Option rows carry `notional_value_usd`, `underlying_price_implied`, and `d_notional_value_usd`.

**Warnings** (`_warnings`, present only when non-empty) on the portfolio / security endpoints flag:

- an amendment whose **claimed action type differs from its actual action** (portfolio only — see the `claimed_type` and `action` fields in `quarter.amendments_merged`);
- **unit-correction multipliers** in the returned result, whole-quarter or row-level — see the `unit_multiplier` fields;
- **`CUSIP_CHANGE` rows** in the returned result — see each row's `predecessor_cusip`;
- a quarter **with no prior filed quarter** in the returned result — `activity`, `d_shares`, `d_value`, `d_pct` and the quarter's `est_turnover`, `portfolio_value_qoq_pct`, `activity_counts` are null there;
- **flagged rows** in the returned result — see each row's `filer_flags`;
- **cancelled rows** in the returned result — see each row's `restated`.
