% Owner: Agent 10 (Stage E writing). Every generated exhibit is \input exactly once in the prose at the anchor % where it is discussed; please do not add a second \input of the same float (duplicate labels). — 2026-11-05 % ============================================================================ \section{Descriptive Patterns}\label{sec:results} % ============================================================================ All tables, figures and inline numbers in this section are produced by \texttt{code/export\_stats.py} (read-only queries on the merged databases at revision \texttt{2324b58}, run on the master node) and \texttt{code/make\_tables.py} (exports and audit outputs to exhibits and macros); the generators contain no data literal, which \texttt{tests/test\_tables.py} checks, and the source and formula of every inline macro are listed in \texttt{results/inline\_numbers.json}. The numbers describe \emph{disclosed} initiatives as detected by the current pipeline and resolved by the current rule. They are not estimates of real-world project counts, they have not been corrected for the extraction and linkage errors whose measurement is described in \Cref{sec:validation}, and the project counts hold under the current key only (\Cref{sec:speccurve}). \subsection{From sections to projects} The extraction ledger contains \SPIDledgerTotal\ rows, of which \SPIDgatePassTotal\ passed the lexical gate and were submitted to the model (\Cref{sec:focus}). The model returned at least one project for \SPIDproductiveSections\ of them (\SPIDproductiveShareCalls\% of calls, \SPIDproductiveShareLedger\% of rows), yielding \SPIDledgerMentionsReturned\ mentions before identifier de-duplication and \SPIDmentions\ stored mentions---\SPIDmentionsPerCall\ per call and \SPIDmentionsPerProductiveSection\ per productive section. The density differs sharply by form and by item (\Cref{tab:items}): the MD\&A items of the 10-K and 10-Q produce \SPIDtenKmdnaMentions\ and \SPIDtenQmdnaMentions\ mentions respectively, Item~1 (Business) of the 10-K \SPIDtenKbusinessMentions, and the 10-Q financial-statement notes \SPIDtenQfinancialStatementsMentions, whereas risk-factor and market-risk items produce almost none despite their length---a pattern that \Cref{sec:focus} shows to be partly a property of the focus windows rather than of the text. The 8-K body yields \SPIDmentionsStoredEightK\ stored mentions (\SPIDmentionsLedgerEightK\ returned by the model) from \SPIDledgerSectionsEightK\ filings. Resolution reduces \SPIDmentions\ mentions to \SPIDprojectCountCurrentKey\ projects (\SPIDmentionsPerProject\ mentions per project); \SPIDsingleMentionShare\% of projects rest on a single mention, \SPIDtwoMentionShare\% on two, and \SPIDoverFiveMentionShare\% on more than five (\Cref{tab:status}). \input{tables/tab_items} \subsection{Composition by category, sector and status} \Cref{tab:types} and \Cref{fig:types} show the distribution over the \SPIDtaxonomyN\ categories. M\&A and post-merger integration dominate (\SPIDshareMaIntegration\% of projects), followed by capital-expenditure programs (\SPIDshareCapexProgram\%), strategic partnerships (\SPIDsharePartnership\%), geographic expansion (\SPIDshareGeographicExpansion\%) and plant or site construction (\SPIDsharePlantConstruction\%). These shares include the financing-instrument class: excluding projects whose representative name or description matches the financing pattern, \texttt{capex\_program} falls from \SPIDnCapexProgram\ to \SPIDcapexProjectsExcl\ projects (\SPIDshareCapexProgram\% to \SPIDcapexShareExcl\%), \texttt{cost\_reduction} from \SPIDnCostReduction\ to \SPIDcostProjectsExcl\ and \texttt{ma\_integration} from \SPIDnMaIntegration\ to \SPIDmaProjectsExcl\ (\texttt{results/fp\_classes/table5\_restated\_excl\_financing.csv}); \SPIDfinProjectsRep\ projects (\SPIDfinProjectsRepPct\%) match on their representative fields and \SPIDfinProjectsAny\ have at least one matching mention. The technology-related categories that motivated the first SPID release---data centers, AI initiatives, cloud migration, automation---are small in count (between \SPIDtechCategoriesCountRange\ projects each). Their disclosed amounts are reported in \Cref{tab:types} with the number of projects that carry one and a bootstrap interval for the median: the data-center median of \SPIDmedianAmountDataCenter~M USD rests on \SPIDwithAmountDataCenter\ projects with an amount and the AI median of \SPIDmedianAmountAiInitiative~M on \SPIDwithAmountAiInitiative, so the latter should not be quoted without its $N$. Two readings of the composition are possible and the data do not discriminate between them: either acquisitions are genuinely the most frequently disclosed discrete initiative in SEC filings, which is plausible given that every material acquisition triggers an 8-K and recurring 10-Q notes; or the extraction contract, which asks for ``concrete initiatives'', is more easily satisfied by acquisitions (named counterparty, date, price) than by internal programs. The 8-K item-code consistency check of \Cref{sec:validation} shows that the \texttt{ma\_integration} label co-occurs with the acquisition item at a rate far above its base rate, which supports the first reading for 8-Ks without settling the second. Disentangling the two is a question for the human-annotation study. % exhibit generated by code/make_tables.py (self-contained float) \input{tables/tab_types} \input{figures/fig_types} By sector (\Cref{tab:sectors}), health care (\SPIDsectorProjectsHealthCare\ projects, \SPIDsectorIssuersHealthCare\ issuers) and industrials (\SPIDsectorProjectsIndustrials) contribute the most projects; \SPIDsectorTopFourNames\ have the most projects per issuer (\SPIDsectorTopFourPerIssuerRange), and financials the fewest (\SPIDsectorFinancialsPerIssuer), consistent with the intuition that asset-heavy, regulated or resource-extracting firms narrate discrete physical programs while banks describe fewer discrete initiatives---and also consistent with a key that creates one project per site. The list of the most ``productive'' issuers (\Cref{tab:top_issuers} in the appendix)---uranium and gold miners, airlines, a bitcoin miner, an oilfield-services company---is consistent with issuers whose business \emph{consists} of projects (mines, routes, wells, data-center sites) enumerating them one by one; whether it also reflects over-splitting by the key has not been measured. \input{tables/tab_sectors} The latest status recorded for a project is \texttt{in\_progress} for \SPIDstatusShareInProgress\%, \texttt{completed} for \SPIDstatusShareCompleted\%, \texttt{planned} for \SPIDstatusSharePlanned\% and \texttt{mentioned} for \SPIDstatusShareMentioned\% (\Cref{tab:status}). Because status is taken from the most recent mention, it is a snapshot of the last thing the issuer said, not the terminal fate of the project: a project that was announced, mentioned once as in progress and then silently abandoned is recorded as in progress. The span between the earliest and latest year cited \emph{in the text} is unknown for \SPIDspanUnknownShareAll\% of projects (\SPIDspanUnknownN); among the \SPIDspanKnownN\ projects with cited years it is zero for \SPIDspanZeroShareKnown\% and exceeds five years for \SPIDspanOverFiveShareKnown\% (\SPIDspanZeroShareAll\% and \SPIDspanOverFiveShareAll\% of all projects). The specification's distinction between announcement, filing, expected start, observed start, expected and realized completion, and cancellation is not yet implemented as separate dated events (\Cref{sec:resolution}). \input{tables/tab_status} \subsection{Amounts, confidence and time}\label{sec:time} A USD amount is attached to \SPIDamountMentions\ mentions (\SPIDamountMentionsShare\%) and to \SPIDamountProjects\ projects (\SPIDamountProjectsShare\%). \Cref{tab:amounts} reports the distribution of the largest amount cited per project: median \SPIDamountMedianMusd~M USD, interquartile range \SPIDamountPTwoFiveMusd--\SPIDamountPSevenFiveMusd~M, and a long right tail (P99 of \SPIDamountPNineNineBusd~B USD; maximum $\SPIDamountMaxSci$~USD; \SPIDamountGeFiftyBProjects\ projects at or above 50~B USD; \Cref{sec:amounts} on the grounding of the tail). The sum of these maxima across projects is \SPIDamountSumTusd~trillion USD, a number we report only to make the point that it must \emph{not} be interpreted: it adds transaction values, capex budgets, contract values, financing amounts (\SPIDfinAmountSharePct\% of mention amounts match the financing pattern) and estimated costs across projects and years, it double counts initiatives that the resolver split, and it treats a stated budget as if it were spent. \Cref{sec:amounts} explains how amounts are stored and what an \texttt{amount\_type} field would need to add. % exhibit generated by code/make_tables.py (self-contained float) \input{tables/tab_amounts} The self-reported confidence of mentions is concentrated at the top of the scale (\Cref{fig:confidence}; \Cref{tab:confidence} in the appendix): \SPIDconfShareOne\% of mentions have confidence 1.0, \SPIDconfShareNine\% have 0.9, and only \SPIDconfShareLeSix\% fall at or below 0.6. Mentions below \SPIDconfThreshold\ are discarded at extraction time, and the 0.6 bin contains the \SPIDconfExactDefault\ mentions whose confidence the post-processing defaulted because the model returned none (\Cref{sec:contract}). The distribution says more about the model's reporting habits than about accuracy; the only accuracy-related quantity available so far moves the wrong way with confidence---the share of mentions whose structured fields are all found in the source text is \SPIDgroundAllTopBin\% in the 0.9--1.0 bin against \SPIDgroundAllLowerBinsRange\% in the lower bins (\Cref{sec:validation})---and whether a confidence of 0.7 corresponds to a lower precision than a confidence of 1.0 is precisely the calibration question that only labeled data can answer. \input{figures/fig_confidence} Over time (\Cref{fig:mentions_year}; \Cref{tab:coverage_year}), mentions rise from \SPIDmentionsFirstYear\ in 2010 to \SPIDmentionsLastFullYear\ in 2025, almost in proportion to the number of issuers observed (\SPIDissuersWithMentionsFirstYear\ to \SPIDissuersWithMentionsLastFullYear\ with at least one mention; \SPIDmentionsPerIssuerFirstYear\ to \SPIDmentionsPerIssuerLastFullYear\ mentions per such issuer), while the number of projects first observed in a year lies between \SPIDfirstSeenRangeInner\ over \SPIDfirstSeenYearMin--\SPIDfirstSeenYearMax. The first and last years are excluded from that range on purpose: 2010 is left-censored, since every initiative already under way when the corpus starts is ``first seen'' then (\SPIDfirstSeenFirstYear\ projects), and 2026 is partial (\SPIDfirstSeenLastYear\ projects to October~27). The rise in mentions is consistent with a coverage effect of the snapshot universe rather than with an increase in disclosed activity: holding the panel fixed at the \SPIDfixedCohortIssuers\ issuers that file in every year from 2010 to 2025, mentions per issuer move from \SPIDfixedCohortMentionsPerIssuerFirst\ to \SPIDfixedCohortMentionsPerIssuerLast\ and newly seen projects per issuer from \SPIDfixedCohortNewPerIssuerFirst\ to \SPIDfixedCohortNewPerIssuerLast\ (\SPIDfixedCohortFirstSeenFirst\ to \SPIDfixedCohortFirstSeenLast\ projects; \texttt{results/timeseries/first\_seen\_fixed\_cohort.csv}). The decline in new projects per issuer is, at least in part, mechanical: under a time-invariant key, later mentions of a serial acquirer or of a multi-phase site attach to an existing project rather than opening a new one. A windowed variant that opens a new episode when a key is silent for more than three (five) years counts \SPIDepisodesKthree\ (\SPIDepisodesKfive) episodes instead of \SPIDprojectCountCurrentKey\ projects, and its first-seen series is reported alongside the current one in \Cref{tab:coverage_year}. Both readings remain testable with the panel; neither has been tested against labels. \input{figures/fig_mentions_year} The two extraction runs add a confound of their own to any comparison between the S\&P~500 cohort and the rest of the universe. Issuers in both lists carry \SPIDcohortBothPerIssuerAll\ projects per issuer against \SPIDcohortRussellOnlyPerIssuer\ for Russell-only issuers, which the earlier version read as a difference in disclosure behaviour; counting only projects touched by an October-run mention, the same issuers carry \SPIDcohortBothPerIssuerOctober. In an issuer-level regression of the project count on an S\&P~500 indicator (\SPIDcohortOlsN\ issuers, HC1 standard errors), the coefficient is \SPIDcohortOlsAll\ (\SPIDcohortOlsAllSe) with all mentions, $\SPIDcohortOlsOctober$ (\SPIDcohortOlsOctoberSe) with October mentions only, and $\SPIDcohortOlsControlled$ (\SPIDcohortOlsControlledSe) once the logarithm of the issuer's ledgered sections is controlled for (\texttt{results/runs/table6\_cohort\_regression.json}). The cohort difference is a difference in run and volume, not evidence about behaviour, and \Cref{app:runs} gives the reconciliation by run and form (\Cref{tab:cohort}). \input{tables/tab_cohort} \subsection{A provenance example} \Cref{tab:provenance} follows one resolved project through its mentions: the Corpus Christi liquefaction trains of Cheniere Energy (ticker LNG), typed \texttt{plant\_construction}, with \SPIDprovenanceN\ mentions in \SPIDprovenanceForms\ filings between \SPIDprovenanceFirst\ and \SPIDprovenanceLast\ and a largest cited amount of \SPIDprovenanceMaxAmountBusd~B USD. Each row is traceable: the accession number identifies the document on EDGAR, the section identifier locates the passage in the parsed corpus, and the snippet is the model's one-sentence description, which the contract requires to be grounded in the passage but which is not itself checked (\Cref{sec:contract}). The example also exposes the resolver's coarseness. The project key for this issuer and type is the location string ``san patricio county, texas'', so the Stage~3 expansion and the earlier trains share one project identifier although Cheniere describes them as distinct phases; the representative name, ``Corpus Christi Liquefaction Stage~3 Project'', is that of the highest-confidence mention, filed in \SPIDprovenanceNameYear, and is applied retroactively to mentions from 2014 that describe the first trains; and that representative is one admissible choice among tied mentions (\Cref{sec:resolution_rule}). Under the strict key the same mentions form \SPIDchenierClusterStrict\ project each; under the issuer-and-type key they join \SPIDchenierClusterCikType\ mentions. A reviewer can see this because the mentions and their snippets are preserved; a user who consumes only the \texttt{projects} table cannot. \input{tables/tab_provenance} \subsection{Knowledge graph and research-ready exports} The resolved projects are projected into a graph of \SPIDkgNodes\ nodes (\SPIDkgNodesCompany\ companies, \SPIDkgNodesProject\ projects, \SPIDkgNodesLocation\ locations, \SPIDkgNodesTechnology\ technologies, \SPIDkgNodesPartner\ partners) and \SPIDkgEdges\ edges (\texttt{owns}, \texttt{located\_in}, \texttt{uses}; \Cref{tab:graph} in the appendix); partner nodes are currently created without edges, a known gap, and \texttt{uses} edges inherit the technology tags of which up to \SPIDtechRegexEqualPct\% may have been back-filled from the description (\Cref{sec:contract}). Each project also has a \SPIDembeddingDim-dimensional sentence embedding of its name, type, description and technologies, which supports semantic search through the companion web application. Alongside the project layer, the corpus layer publishes the firm-year and firm-quarter panels of thematic factor scores (\SPIDannualPanelRows\ and \SPIDquarterlyPanelRows\ rows for \SPIDannualPanelFirms\ issuers with filings) used in the sibling UQO working paper on AI disclosure \citep{kammoun2026ai}, now covering the full universe. A firm-year aggregation of the \emph{mentions}, by contrast, is not yet available as stated in the earlier version: \texttt{fiscal\_year} is empty for \SPIDfiscalYearNullMentions\ mentions (all \SPIDbackfilledMentions\ June mentions and \SPIDfiscalYearNullOctTenQ\ October 10-Q mentions among others) because the corresponding filings carry no fiscal year, and a derived fill from the filing date is exported with the audit outputs but not stored (\Cref{app:runs}).