Institutional Ownership
Overview
Every calendar quarter, asset managers are required to disclose positions they hold that could impact the ownership of public companies. These are commonly thought of as hedge funds and other "smart money". While the raw filings are public, no effort to validate, correct, combine, map or aggregate is done until they are processes by QUANTkiosk.
Key Facts
- Sourced: SEC
13F-HR13F-HR/A13F-NT13F-NT/A - Reporting Frequency:
quarterly(45 days after end of calendar quarter) - Request Period:
yyyyqq= report period - Updated:
intradaynightly - Mapped:
qkidcikticker - Amendments:
true - Views:
aggregatedoriginal - API:
Rpythonbulkcomplete
- Countries:
US - Dates:
Pre-2013†2013-Present - Managers:
14,000+ - Instruments:
60,000+EquityADRETFConvertsWarrantsOptions
Find Filer
Filers are entities — e.g. hedge funds or banks. They file with the SEC using their assigned CIK, though this may
change over time. As with the rest of the API, we require a QKID (class of qkid) to query for data. To locate a filer's CIK,
we have two methods to specify which manager you are seeking.
One option is to pass the CIK into the cik function to convert to a QKID. Yet another is to use our built in search tool.
- .py
- .r
import qkiosk as qk
# If you know the fund's CIK just use `qk.cik`
qk.cik(1423053)
# Out[1]: qkid: ['0001423053.0000.E0000UI19']
# you can also find the filer's QKID using the built in `seach_mgr` function
qk.search_mgr("citadel")
#
# 1. CITADEL ADVISORS LLC
# 2. CITADEL INVESTMENT ADVISORY INC.
#
# ...
#
# 9. CITIZENS NATIONAL BANK TRUST DEPARTMENT
# 10. CI PRIVATE WEALTH LLC
#
# Selection: 1
# Out[2]: qkid: ['0001423053.0000.E0000UI19']
# alternately you can even copy and paste a string into
# the `qkid` constructor to make a valid `qkid` object
qk.qkid('0001423053.0000.E0000UI19')
# Out[3]: qkid: ['0001423053.0000.E0000UI19']
library(qkiosk)
# If you know the fund's CIK just use `qk_cik`
qk_cik(1423053)
# 0001423053.0000.000000000
# alternately, use the seach_mgr function to see matches
qk.search_mgr("citadel")
#
# 1. CITADEL ADVISORS LLC
# 2. CITADEL INVESTMENT ADVISORY INC.
#
# ...
#
# 9. CITIZENS NATIONAL BANK TRUST DEPARTMENT
# 10. CI PRIVATE WEALTH LLC
#
# Selection: 1
# [1] qkid: ['0001423053.0000.E0000UI19']
# you can us a string version of a QKID by wrapping with
# the `qkid` constructor to make a valid `qkid` object
qk_qkid('0001423053.0000.E0000UI19')
Holdings - Aggregated
The most compact view of a position held by a fund is the aggregated view, which
is the default for querying. This takes all reported positions by instrument and
combines into one aggregated position.
For example, if a filer is reporting for 3 submanagers and each holds 100, 250, and 130 shares of a company — the instrument would be reported as one row holding 480 shares.
- .py
- .r
import qkiosk as qk
qk.institutional(qk.cik(1423053), 202504)
# -- or --
qk.institutional(qk.qkid('0001423053.0000.E0000UI19'), yyyyqq=202504)
library(qkiosk)
qk_institutional(qk_cik(1423053), 202504)
# -- or --
qk_institutional(qk_qkid('0001423053.0000.E0000UI19'), yyyyqq=202504)
Holdings - Submanagers
Conversely, the original disclosure would have a record for each manager or combination of managers. This is the "submanager" view
which is useful if you are looking to examine strategies amongst managers. This data is more feature rich, as will contain more
rows to fascilitate. This is effected by setting the agg= argument to false.
Additional fields in the submanager view (selected via agg= argument):
inclMgrsinvDiscretionotherManagerotherManagerNameotherManagerFileNumbervotingAuthSolevotingAuthSharedvotingRightsNone
- .py
- .r
import qkiosk as qk
# View Citadel's holdings for the asset management business and market making
qk.institutional(qk.cik(1423053), 202504, agg=False)
library(qkiosk)
# View Citadel's holdings for the asset management business and market making
qk_institutional(qk_cik(1423053), 202504, agg=FALSE)
Sample Data
QK uniquely provides two views into an institutions holdings:
- an aggregated (all submanagers holding same intrument are rolled into one record)
- a broken-down view based on submanager reporting
This allows for the researcher to decide what is important for a particular thesis at runtime, instead of at data acquisition.
- Aggregated ( 22 fields, 14801 obs. )
- w/ Submanagers ( 30 fields, 18710 obs. )
If a manager reports for other managers (aka submanager), the hasOtherManager field is marked as true if position includes submanager position.
⬇️ Scroll to see all fields:
Download full 14801 rows: qk-ownership-institutional-aggregated.csv
Adds holding breakdowns and fields +invDiscretion, +votingAuthSole, +votingAuthShared, +votingAuthNone, +otherManager,+otherManagerName, and +otherManagerFileNumber
⬇️ Scroll to see all fields:
Download full 18710 rows: qk-ownership-institutional-submanager.csv
Data Dictionary
A canonical reference for data returned from institutional functions. There may be "Type" differences by language.
Please refer to the language specific API for details.
Notes include:
qk addedare fields that are derived or calculated by QUANTkiosk to facilitate research and discovery.submanagersare fields available to non-aggregated calls.
| Type | Description | Notes | |
|---|---|---|---|
| filerName | character | name of filer (i.e. fund name) | |
| filing | character | canonical EDGAR® filing path | |
| submissionType | character | filing type: 13F-HR or 13F-HR/A (amended) | |
| reportPeriod | integer | period of report | |
| filedDate | integer | when the data was filed | |
| inclMgrs | integer | number of submanagers reported for. See otherManager | submanagers qk added |
| issuer | character | name of instrument | |
| titleOfClass | character | title or class name of instrument | |
| issuerSIC | integer | official standardized industrial code | qk added |
| issuerSector | character | two-character sector code from QUANTkiosk™ | qk added |
| issuerTicker | character | common exchange ticker | qk added |
| issuerQkid | character | QKID™ symbol | |
| value | double | fair market value of position at end of report period | |
| shrsOrPrnAmt | integer | number of shares held or principal amount | |
| putCall | character | one of PUT , CALL or empty | |
| shrsOrPrnAmtType | character | shares SH or principal PRN | |
| invDiscretion | character | type of discretion over investment decision | submanagers |
| votingAuthSole | integer | number of shares of SOLE voting authority | submanagers |
| votingAuthShared | integer | number of shares of SHARED voting authority | submanagers |
| votingAuthNone | integer | number of shares of NONE voting authority | submanagers |
| portWgt | double | portfolio weight (QK™ calculated) | qk added |
| hasOtherManager | logical | logical indicating if record is for other manager | qk added |
| otherManager | integer | reference number of other manager(s) from filing | submanagers qk added |
| otherManagerName | character | name of other manager(s) from filing | submanagers qk added |
| otherManagerFileNumber | character | file number of other manager(s) | submanagers qk added |
| QtrsHeld | integer | quarters held (QK™ calculated) | qk added |
| QOQSshPrnAmt | integer | quarter over quarter change in shares or principal amount of holding (QK™ calculated) | qk added |
| QOQValue | double | quarter over quarter change in value of holding (QK™ calculated) | qk added |
| QOQPortWgt | double | quarter over quarter change in portfolio weight (QK™ calculated) | qk added |
| newOrDel | character | is position NEW or DEL eted. See details. (QK™ calculated) | qk added |
Parameters
Always refer to the respective package for complete documentation and calling details.
| Parameter | Type | Description |
|---|---|---|
| qkid | symbol | a qkid object representing the 'QKID™' of reporting institution or filer. Use qk_cik, qk_ticker, or similar. See qkid for details. |
| yyyyqq | symbol | a number of the form 'YYYYQQ' where 'YYYY' is a 4-digit year, and 'QQ' is a 2-digit quarter [00,01,02,03,04]. Use in conjuction with qtrs argument to request additional prior quarters in one call. Four digit values will be treated as a full year (i.e. 'YYYY') and expanded to YYYY00. |
| qtrs | double | number of previous quarters to request (including current yyyyqq. |
| agg | logical | if TRUE, all other managers reporting are rolled up into one record, otherwise filing will contain other managers if filed for as distinct holdings for one or more of the same instruments. |
| wait | double | time in seconds between calls. |
| quiet | logical | make request silent. |