A RAG pipeline that answers questions about institutional-investor holdings grounded in the actual filings, not the model's memory. Every claim is traceable to a specific accession number, share count, and filing date.
Recent 13F filings land after a model's training cutoff, so off-the-shelf LLMs either refuse or hallucinate plausible-looking share counts. For financial research, a fabricated CUSIP is worse than no answer at all. 13F-INSIGHT indexes real quarterly filings, retrieves the relevant rows, and forces the generator to answer only from them — then audits every response against the source corpus. The result says “I don't have that” when it should, and cites exact figures when it can.
“The 2025 calendar year has not yet concluded, and therefore four quarters of 2025 data do not exist. […] As of today, the most recent completed filing period is Q3 2024.”
Confidently wrong. It reasons from a stale world model — the filings exist, they're just past its training cutoff — so it invents “2024 trends” to fill the gap.
“BNY Mellon Investment Management reported NVIDIA CORP (CUSIP 67066G104): period ending 2025-03-31 (Accession 0001390777-25-000071) … 75,774,092 shares; period ending 2025-06-30 (Accession 0001390777-25-000119) … a marked decrease. No data was available for Q4 2025.”
Real share counts and real accession numbers from the actual filings — and where data is genuinely missing (Q4 2025), it says so instead of inventing it.
Abridged from demo_log.txt, which carries the full side-by-side with dual-judge scores and per-chunk retrieval provenance.
<informationTable> parsingTen diverse queries — fact lookup, numerical extraction, comparative synthesis, CUSIP lookup, hallucination traps, out-of-scope periods — scored 1–5 by two independent LLM judges from different vendors.
Q06 & Q07 are the traps — a non-existent entity and an out-of-scope period. There a good system should refuse, and the enhanced pipeline does, scoring full marks for it. The flat Q09 and the Q04 grounding false-positive are dissected honestly in the design notes.
| Stage | Notebook | Purpose |
|---|---|---|
| 1 | stage1_acquisition | Download up to 4 quarterly 13F-HR filings per fund for 100 CIKs from SEC EDGAR, rate-limit compliant. |
| 2 | stage2_parsing | Extract <informationTable> XML → DataFrames → ≤300-word Markdown table chunks with metadata headers. |
| 3 | stage3_vectordb | Build ChromaDB (all-MiniLM-L6-v2) + BM25 index; wire the hybrid retriever with Reciprocal Rank Fusion. |
| 4 | stage4_rag_analysis | Full RAG pipeline: entity/temporal/diversity filters, reranking, Stuff/Map-Reduce chains, audit-trail logging. |
| 5 | stage5_evaluation | 10 diverse queries, baseline vs enhanced, dual-judge scoring and grounding checks. |
| 6 | stage6_demo | 3 thematic demo queries with side-by-side output; generates the demo log. |