SPB Git
12.2 KB · 246 lines latex
1% ============================================================================2% SPID — SEC Project Intelligence Database : Potential & Pilot Results3% Compile:  latexmk -pdf spid_potential.tex   (or: tectonic spid_potential.tex)4% ============================================================================5\documentclass[11pt,letterpaper]{article}67\usepackage[utf8]{inputenc}8\usepackage[T1]{fontenc}9\usepackage[english]{babel}10\usepackage[top=1in,bottom=1in,left=1in,right=1in]{geometry}11\usepackage{mathptmx}12\usepackage{microtype}13\usepackage{amsmath,amssymb}14\usepackage{booktabs,tabularx,multirow}15\usepackage{graphicx}16\usepackage{subcaption}17\usepackage{float}18\usepackage[dvipsnames]{xcolor}19\usepackage[colorlinks=true,linkcolor=NavyBlue,citecolor=NavyBlue,urlcolor=NavyBlue,breaklinks=true]{hyperref}20\usepackage[font=small,labelfont=bf,labelsep=period,justification=justified,singlelinecheck=false]{caption}21\usepackage{fancyhdr}22\usepackage{titlesec}23\usepackage{enumitem}24\usepackage{tcolorbox}2526\graphicspath{{figures/}}27\input{tables/stats.tex}2829\pagestyle{fancy}\fancyhf{}30\renewcommand{\headrulewidth}{0.4pt}31\fancyhead[L]{\footnotesize SPID — SEC Project Intelligence Database}32\fancyhead[R]{\footnotesize Pilot \& Potential}33\fancyfoot[C]{\thepage}3435\titleformat{\section}{\large\bfseries\color{NavyBlue}}{\thesection.}{0.5em}{}36\titleformat{\subsection}{\normalsize\bfseries}{\thesubsection.}{0.5em}{}3738\definecolor{boxgray}{HTML}{F4F6FA}39\newtcolorbox{keybox}{colback=boxgray,colframe=NavyBlue,boxrule=0.6pt,arc=2pt,left=6pt,right=6pt,top=4pt,bottom=4pt}4041\title{\vspace{-1.2cm}\textbf{\Large SPID — A SEC Project Intelligence Database}\\[4pt]42\large Reconstructing the strategic project portfolio of public companies\\ directly from raw SEC filings}43\author{UQO EDGAR Research DB \\ \small Proof-of-concept report}44\date{\today}4546\begin{document}47\maketitle48\thispagestyle{fancy}49\vspace{-0.7cm}5051\begin{abstract}\noindent52SEC filings are routinely mined for \emph{financial} signals. SPID treats them instead as a53massive, untapped source of \emph{project intelligence}: every 10-K, 10-Q and 8-K is parsed for54the concrete initiatives a company is pursuing --- acquisitions, plant and data-center builds,55R\&D and drug pipelines, AI deployments, ERP and cloud migrations, capex programs, partnerships,56energy-transition projects, and more. Extracted records are de-duplicated across filings into57\emph{projects with lifecycles}, linked into a \emph{knowledge graph}, embedded for semantic58search, and exposed through analytics. The result is a home-grown analogue of a59Capital~IQ / PitchBook / Gartner platform, but \emph{project-centric}. This report documents a60pilot run on \Ncompanies{} large-cap issuers that produced \textbf{\Nprojects{} resolved61projects} from \Nmentions{} extractions using \texttt{gpt-4o-mini}, for roughly \$2.50 of62compute --- and quantifies the path to the full corpus.63\end{abstract}6465% ---------------------------------------------------------------------------66\section{The idea: filings as project intelligence}67A 10-K is usually read for revenue, margins and risk factors. But buried in the Business68section, the MD\&A and 8-K event filings is a continuous, dated, legally-vetted narrative of69\emph{what every public company is actually building}. No commercial database reconstructs this70at the level of individual projects across the whole market. SPID does exactly that, in four71moves: (i)~\textbf{extract} project records from filing text; (ii)~\textbf{resolve} the same72project mentioned across many filings into one entity with a timeline; (iii)~\textbf{link}73projects to companies, technologies, locations and partners in a knowledge graph; and74(iv)~\textbf{serve} the result through structured, semantic and graph queries.7576\begin{keybox}77\textbf{Pilot at a glance.}\quad \Nprojects{} resolved projects $\;\cdot\;$ \Nmentions{} raw78extractions $\;\cdot\;$ \Ncompanies{} companies $\;\cdot\;$ \Ntypes{} project types $\;\cdot\;$79\$\Ncapex{}\,bn of associated capital identified $\;\cdot\;$ \Ntimeline{} dated timeline points80$\;\cdot\;$ knowledge graph of \Nkgnodes{} nodes / \Nkgedges{} edges.81\end{keybox}8283% ---------------------------------------------------------------------------84\section{Data foundation and pipeline}85SPID is built on top of the existing UQO EDGAR corpus: 134{,}124 filings and 127{,}80086pre-segmented sections for 500 companies (88~GB of raw filings on disk). Because the upstream87parse only sectioned 10-Q and 8-K filings, SPID additionally \emph{ingests the raw 10-K HTML},88cleaning and segmenting the project-dense Items (1~Business, 1A~Risk Factors, 2~Properties,897~MD\&A). All section text flows through a single pipeline:9091\begin{center}92\small93\textsf{raw 10-K HTML / parsed 10-Q,8-K} $\;\rightarrow\;$ \textsf{extract (gpt-4o-mini \emph{or}94rules)} $\;\rightarrow\;$ \textsf{resolve} $\;\rightarrow\;$ \textsf{graph $\cdot$ embeddings $\cdot$95analytics}96\end{center}9798\noindent99Extraction is \textbf{backend-pluggable}. A deterministic rule engine gives a free, high-precision100first pass; the default \texttt{gpt-4o-mini} backend (OpenAI-compatible, so it also targets a local101cluster gateway) returns named projects with amounts, status, objective, technologies, partners and102a confidence score in strict JSON. Per-call cost is bounded by sending only project-relevant103\emph{windows} of each section to the model.104105% ---------------------------------------------------------------------------106\section{What the pilot found}107Across \Ncompanies{} issuers, SPID resolved \Nprojects{} distinct projects spanning all108\Ntypes{} categories (Figure~\ref{fig:bytype}). M\&A integrations, plant construction, R\&D109programs and product launches dominate by count, while capex programs and M\&A dominate by110capital. The detection rate and associated capital are stable across fifteen years of filings111(Figure~\ref{fig:capex}), and projects distribute sensibly across sectors and technologies112(Figure~\ref{fig:sectortech}).113114\begin{figure}[H]\centering115\includegraphics[width=\textwidth]{by_type.pdf}116\caption{Resolved projects by type, by count (left) and by associated announced capital117(right). A single controlled vocabulary of \Ntypes{} types is applied to every filing.}118\label{fig:bytype}119\end{figure}120121\begin{figure}[H]\centering122\includegraphics[width=0.93\textwidth]{capex_year.pdf}123\caption{New projects detected per year (first mention) and the announced capital attached to124them. Coverage is consistent across the 2010--2026 filing window.}125\label{fig:capex}126\end{figure}127128\begin{figure}[H]\centering129\includegraphics[width=\textwidth]{sector_tech.pdf}130\caption{Projects by GICS sector (left) and by technology tag (right). Technology tags such as131AI/ML, semiconductors, EV and battery storage are extracted from project descriptions.}132\label{fig:sectortech}133\end{figure}134135\begin{table}[H]\centering\small136\caption{Largest detected M\&A / integration projects (by stated transaction value).}137\input{tables/top_ma.tex}138\label{tab:ma}139\end{table}140141\noindent Table~\ref{tab:ma} shows the platform recovers real, correctly-valued transactions142(e.g.\ Microsoft--Nokia, Exxon--Pioneer, Nvidia--Mellanox), and Table~\ref{tab:cos} ranks the143most project-active issuers in the pilot.144145\begin{table}[H]\centering\small146\caption{Most project-active companies in the pilot.}147\input{tables/top_companies.tex}148\label{tab:cos}149\end{table}150151% ---------------------------------------------------------------------------152\section{The differentiator: project lifecycles}153The hard part is not finding a project once --- it is recognising the \emph{same} project across154quarters and years and stitching it into a timeline. SPID resolves mentions by company, type and155anchor (location or salient name token) and reconstructs a dated lifecycle for each156(Figure~\ref{fig:gantt}).157158\begin{figure}[H]\centering159\includegraphics[width=\textwidth]{gantt.pdf}160\caption{Reconstructed lifecycles for the most-tracked projects in the pilot. Each bar spans the161first and last filing in which the project appears; the label reports the number of distinct162filings reconciled.}163\label{fig:gantt}164\end{figure}165166\noindent A concrete example: Tesla's energy-storage program is reconciled across eighteen167filings (2021--2026); parsing the deployment figures embedded in each filing reproduces the168program's quarter-by-quarter ramp \emph{automatically} (Figure~\ref{fig:tesla}). This is the kind169of operating KPI a research analyst would normally assemble by hand.170171\begin{figure}[H]\centering172\includegraphics[width=0.9\textwidth]{tesla_timeline.pdf}173\caption{Case study --- Tesla energy-storage deployments (GWh, as reported) extracted from the174project's reconciled timeline. SPID tracks not just that a project exists, but how its disclosed175metrics evolve.}176\label{fig:tesla}177\end{figure}178179% ---------------------------------------------------------------------------180\section{Knowledge graph and retrieval}181Resolved projects are linked into a knowledge graph (\Nkgnodes{} nodes, \Nkgedges{} edges) with182typed relations \textsf{Company}\,$\to$\,\textsf{owns}\,$\to$\,\textsf{Project}, and183\textsf{Project}\,$\to$\,\textsf{uses}\,$\to$\,\textsf{Technology} /184\textsf{located\_in}\,$\to$\,\textsf{Location} / \textsf{partners\_with}\,$\to$\,\textsf{Partner};185it exports to Parquet and Neo4j Cypher. Figure~\ref{fig:kg} shows one company's slice.186187\begin{figure}[H]\centering188\includegraphics[width=0.86\textwidth]{kg_nvda.pdf}189\caption{Knowledge-graph slice for NVIDIA: top projects and the technologies and locations they190connect to. The full graph spans every company and project in the database.}191\label{fig:kg}192\end{figure}193194\noindent Every project is also embedded (384-dim, local model) so the database answers natural195queries directly. For instance:196\begin{itemize}[leftmargin=1.4em,itemsep=1pt]197\item \emph{``generative AI and machine learning investment''} $\rightarrow$ Salesforce, Meta and198Alphabet generative-AI programs (cosine 0.78--0.64);199\item \emph{``semiconductor fabrication plant capacity expansion''} $\rightarrow$ Micron wafer-fab,200Intel and TXN 300\,mm capacity projects;201\item structured filters compose with these (e.g.\ \texttt{type=ma\_integration},202\texttt{min\_amount=\$5bn}, \texttt{sector=Financials}, \texttt{year\_from=2024}).203\end{itemize}204205% ---------------------------------------------------------------------------206\section{Scaling potential}207The pilot deliberately covered \Ncompanies{} companies. The same pipeline runs unchanged on the208full corpus; it is incremental and resumable (stable mention IDs, \texttt{INSERT OR REPLACE}).209210\begin{table}[H]\centering\small211\caption{From pilot to full corpus.}212\begin{tabular}{lrr}213\toprule214 & \textbf{This pilot} & \textbf{Full corpus (projected)} \\215\midrule216Companies              & \Ncompanies{}      & 500 \\217Filings covered        & $\sim$3{,}500 sec. & 134{,}124 filings \\218Sections processed     & 3{,}528            & $\sim$130{,}000 \\219Resolved projects      & \Nprojects{}       & $\sim$10{,}000--15{,}000 \\220\texttt{gpt-4o-mini} cost & $\approx$\$2.50 & $\approx$\$100--130 \\221\bottomrule222\end{tabular}223\end{table}224225\noindent\textbf{Extensibility already wired in.} (i)~Additional forms --- S-1, DEF~14A, 20-F,2266-K, earnings transcripts and press releases --- plug into the same ingester; everything227downstream is form-agnostic, enabling month-by-month project tracking. (ii)~Embeddings can be228moved to pgvector / Qdrant / Weaviate by swapping one column. (iii)~The graph loads into Neo4j229from the generated Cypher. (iv)~A read-only FastAPI service exposes search, semantic search and230analytics over HTTP.231232% ---------------------------------------------------------------------------233\section{Conclusion}234On a modest pilot and for a few dollars of compute, SPID reconstructs hundreds of real corporate235projects --- correctly named, valued, located, classified and tracked through time --- and makes236them searchable, analysable and linkable. Scaling to the full 500-company corpus is a237\$100-scale, single-day job; extending to the entire universe of \(\sim\)30{,}000 SEC filers is a238question of throughput, not of method. The proof of concept is complete and the platform is built.239240\vfill241{\footnotesize\noindent\textit{Generated from the live SPID DuckDB242(\texttt{project-db/data/db/spid.duckdb}). All figures and statistics in this document are243produced directly from extracted data by \texttt{docs/make\_figures.py}.}}244245\end{document}246
Files · main
Menu

Theme