Skip to main content
Python function: getInstitutionalHoldings()
SpecificationValue
Delivery Frequencycontinuous, daily
Data Frequencyquarterly
Reporting LagReal-time from EDGAR stream (< 1 min); daily backfill safety net
Coverage14,000+ institutions, 13,800+ securities, SEC Form 13F
HistorySince 1987-03-31
AvailabilityFree

Product Overview

Overview

Institutional Holdings provides structured, real-time data from SEC Form 13F filings — the quarterly disclosure that institutional investment managers exercising discretion over $100 million or more in qualifying assets must file with the SEC. Each filing’s holdings are flattened into per-security rows, enabling queries by ticker, institution, or time period. The dataset contains 85M+ holdings rows from 14,000+ unique institutions covering 13,800+ securities, with history back to Q1 1987.

Data Pipeline & Latency

Scalar Field ingests 13F filings through two complementary paths:
  • Real-time stream: A persistent connection to SEC EDGAR receives filing notifications within seconds of acceptance. Holdings and cover page data are fetched by accession number and written to the database.
  • Daily backfill: A safety-net job runs daily, re-processing the last 3 calendar days of filings to catch anything missed by the real-time stream.
  • Bulk historical: Full history back to 1987 is loaded from SEC-API’s monthly archives.

Quarterly Filing Volume (recent quarters)

QuarterHoldings RowsUnique Filers
Q1 20242,119,1257,378
Q2 20242,122,2937,388
Q3 20242,408,1377,432
Q4 20242,560,5328,143
Q1 20252,584,7508,094
Q2 20252,579,9848,107
Q3 20252,586,8478,034
Q4 20252,920,3498,604
Filing volume has grown steadily, with Q4 2025 seeing nearly 2.9M holdings rows from 8,600+ filers.

Timestamp Semantics: ts_recv vs filed_at vs period_of_report

TimestampMeaningUse Case
ts_recvWhen Scalar Field’s pipeline first ingested the record (New York time). This is the point-in-time timestamp.Point-in-time backtesting. Use this as your event timestamp to avoid look-ahead bias.
filed_atWhen the 13F filing was submitted to EDGAR (New York time).Filing-date analysis. The official SEC submission timestamp.
period_of_reportThe quarter-end date the filing covers (e.g., 2025-12-31 for Q4 2025).Snapshot analysis. Use to compare holdings across quarters.

Annual Volume (recent years)

YearHoldings Rows
20206,886,918
20218,324,009
20228,319,390
20238,368,360
20249,210,087
202510,671,930

Coverage

  • Institutions: 14,000+ unique filers (hedge funds, mutual funds, pension funds, insurance companies, bank trust departments, endowments). ~8,600 active filers per quarter in recent periods.
  • Securities: 13,800+ unique tickers in recent quarters. Covers U.S. equity and equity-like securities (ETFs, closed-end funds, certain convertible instruments).
  • History: Q1 1987 to present, with continuous real-time updates.
  • Filing frequency: Quarterly (45 days after quarter-end). Most filings arrive in a concentrated window during the 6th week after quarter-end.

Querying the Data

Basic Usage

from scalarlib import getInstitutionalHoldings

# All funds holding AAPL in recent filings
df = getInstitutionalHoldings(ticker='AAPL', start='2025-01-01', end='2025-12-31')

# Berkshire Hathaway's full portfolio
df = getInstitutionalHoldings(institution_name='berkshire & hathaway', start='2025-01-01', end='2026-02-28')

# Bridgewater OR Citadel holdings of TSLA
df = getInstitutionalHoldings(ticker='TSLA', institution_name='bridgewater | citadel', start='2025-01-01', end='2026-02-28')

# Prefix match for institution names
df = getInstitutionalHoldings(institution_name='bridg:*', start='2025-01-01', end='2025-12-31')

Parameters

ParameterTypeRequiredDescription
tickerstrNoStock ticker symbol to filter (e.g., 'AAPL').
institution_namestrNoFund/manager name using PostgreSQL to_tsquery syntax. Supports & (AND), | (OR), ! (NOT), :* (prefix).
startstrYesStart date (YYYY-MM-DD).
endstrYesEnd date (YYYY-MM-DD).
date_columnstrNo'filed_at' (default) or 'ts_recv'.

Column Definitions

Institutional Holdings Schema

ColumnTypeDescription
ts_recvdatetimePoint-in-time timestamp: when Scalar Field ingested the record (New York time).
filed_atdatetimeWhen the 13F filing was submitted to EDGAR (New York time).
fund_namestringName of the institutional investment manager.
cikstringSEC Central Index Key — unique identifier for the filing entity.
tickerstringTicker symbol of the held security.
cusipstringCUSIP identifier (9-character) for the security.
name_of_issuerstringLegal name of the security’s issuer.
title_of_classstringClass of security (e.g., COM, CL A, SH BEN INT).
valuefloatFair market value of the position in thousands of USD (as reported on the 13F).
sharesfloatNumber of shares or principal amount held.
share_typestringType of shares: SH (shares) or PRN (principal).
put_callstringFor options: Put, Call, or null for equity positions.
investment_discretionstringSOLE, DEFINED, or SHARED — who has investment authority.
voting_soleintegerNumber of shares with sole voting authority.
voting_sharedintegerNumber of shares with shared voting authority.
voting_noneintegerNumber of shares with no voting authority.
period_of_reportdateQuarter-end date the filing covers.
form_typestringSEC form type (e.g., 13F-HR, 13F-HR/A for amendments).
accession_nostringSEC EDGAR accession number — unique filing identifier.