lp_data · plan + progress · 2026-07-24
Yesterday I said LP data would be hard because Preqin and Cambridge Associates operate on voluntary, confidential GP data-sharing under NDA. That's a closed system we cannot reproduce. What I underweighted is how much of that closed data leaks into public disclosures. Enough that a 30–40%-coverage MARS product is real. Here's the plan and where we are as of end-of-day today.
Schema draft in /home/kee/code/lp_data/SCHEMA.md · applied to mars postgres today.
| Table | What it stores | Source | Status |
|---|---|---|---|
| funds_v2 | Canonical fund vehicles — Francisco Partners VIII, KKR NA V, Sequoia Growth IX, etc. One row per real fund, feeders and share classes absorbed. | Adrian's Form D substrate (170K distinct entity names) via normalizer + dedup | 157,472 rows |
| pension_funds_v2 | Canonical LP entities — CalPERS, CalSTRS, NYSCRF, Norway GPFG, IFC, Ford Foundation, etc. | Hand-curated seed of top 15 US public pensions; expand in batches via SOURCES.md | 15 LPs · $2.29T |
| fund_performance_v2 | IRR / TVPI / DPI / RVPI per (fund, LP, as-of date). One CalPERS-reported IRR for KKR NA V can differ from CalSTRS's — that's real signal, not noise. | Public pension CAFRs (Grok DEEP extraction from PDFs), sovereign wealth reports, DFI annual reports | Empty · Phase 2 |
| fund_commitments_v2 | LP → fund commitment records — the killer table. "Boston Retirement committed $50M to Francisco VIII on 2026-Q1." | Same source as performance — public pension CAFRs + consultant board packets | Empty · Phase 2 |
The company from yesterday's PitchBook Daily Pitch article. Their 53 raw Form D filings (VIII / VIII-A / VIII-B / VIII-C plus Agility IV / IV-A / IV-B / IV-C plus iCapital + AlphaKeys feeders plus older vintages) now roll up to 13 canonical funds spanning 2008–2026:
| Fund | Vintage | Vehicles absorbed |
|---|---|---|
| Francisco Partners VIII | 2026 | 8 |
| Francisco Partners Agility IV | 2026 | 5 |
| Francisco Partners VII | 2022 | 5 |
| Francisco Partners Agility III | 2022 | 4 |
| Francisco Partners VI | 2020 | 5 |
| Francisco Partners Agility II | 2020 | 4 |
| Francisco Partners V | 2017 | 3 |
| Francisco Partners IV | 2014 | 2 |
| Francisco Partners III (+ Parallel III) | 2011 | 2 |
| ... + Agility I & older | 15 total | |
The unrelated SAN FRANCISCO PARTNERS LP hedge fund is correctly NOT linked to the Francisco Partners GP. That's the discipline signal — the normalizer isn't over-collapsing.
Total: ~$0. Substrate came from adrian's existing Form D ingest; hand-curated pension seed; Python-only dedup. This is what a strong platform pays for.
~$500/month at Grok DEEP for CAFR PDF extraction across 15 top pensions over ~2 months. Backfill of ~15-year archives per pension is ~$50–100 each. First results usable within 2 weeks.
Three product hooks that fall out of the substrate once Phase 2 lands:
| Risk | What it looks like | Mitigation |
|---|---|---|
| CAFR PDF extraction fails | Grok DEEP mis-parses IRR tables; wrong numbers written to substrate. | integrity_tier discipline. Every extracted number carries source_document + source_page. Cross-check against Preqin's free public benchmarks where they overlap. |
| Fund-to-Form D linkage wrong | CalPERS commits to "Francisco Partners VIII" but our fund_id doesn't match adrian's Form D issuer. | Fund name-canonicalization + gp_investor_id gets fuzzy trigram sweep in Phase 2. Then Qwen-verify borderline cases. |
| Sparse coverage undermines pitch | Analyst asks "did BlackRock's private funds get any pension commitments?" and we return empty. | Frank about coverage limits in the MCP response envelope (coverage_note like argos did on has_named_backers). "Preqin is complete; MARS is traceable" is the pitch, not "MARS is complete." |
| lp_data eats bandwidth we don't have | P2 CAFR extraction turns into a per-pension slog; we ship 3 pensions and stall. | Ship CalPERS first, in full. It's ~15% of US public pension AUM. If CalPERS alone doesn't produce a compelling demo, kill it. If it does, batch the next 5. |
Yes, LP data is hard. Preqin's closed data-sharing model is genuinely unreproducible.
But 30–40% coverage from primary sources is real, that coverage skews to exactly the LP class our target buyers (top-tier pensions, Callan-class advisors, hedge funds) care about most, and the traceability positioning is a differentiator, not a compromise.
Phase 1 substrate is live today. Phase 2 kicks off with CalPERS as the ship-first-then-scale demo. If CalPERS lands cleanly in 2 weeks, we run the full top-15 batch. If it doesn't, we know quickly and cheaply.
Not managing it as a separate project — it's a mars sub-vertical writing to mars.*_v2 tables. Same platform contracts, same design system, same MCP-first delivery pattern as the other verticals we own.