Fund numbers lived apart from the documents that proved them, so every quarter end turned into a reconciliation exercise.
Make provenance a product requirement. A number cannot exist in the record without the document it came from.
Nothing left to reconcile at quarter end. Quarterly close dropped from weeks to days.
- Quarterly close
- Weeks → days
- Portfolio companies
- 100+
- Transactions
- 10,000+
Context
- Company
- VectorShift (YC S23), enterprise AI platform with 100,000+ users
- My role
- Built it as a software engineer, as part of the pivot into financial services
- Customers
- Private equity and financial-services funds, $15B+ AUM across clients
- Scale
- 100+ portfolio companies, 10,000+ transactions
The problem
A private equity fund reports on every company it holds and every transaction behind those holdings. Investors, auditors and the fund’s own partners rely on those numbers.
Before Portfolio Engine, a reported figure and the document behind it lived in different places: exported spreadsheets, board packs, emailed financials. The number travelled. The proof stayed behind.
So at quarter end, the work was not calculating the numbers. It was finding out where each one came from and whether it still matched its source.
- Quarterly close was taking weeks.
- The same question kept coming up in reviews: where did this number come from?
Constraints & non-goals
Constraints
- Scale. One record covering 100+ portfolio companies and 10,000+ transactions.
- Financial reporting has no tolerance for plausible. A number has to be provable, not just likely to be right.
- Source documents arrive in different formats from every portfolio company.
Out of scope
- Replacing each portfolio company’s own accounting system.
- Generating commentary on performance. Get the record right first.
- Scenario modeling. That became a separate layer that never writes to the record.
Options I weighed
- NOT CHOSEN
An audit trail as a separate feature
Provenance would sit one click away from the decision, and nobody clicks. It also lets numbers exist without a source.
- NOT CHOSEN
AI extraction with a confidence score
A score tells a reviewer to worry, not what to check. A fund needs the document, not a probability.
- CHOSEN
Provenance built into the record itself
Reconciliation becomes a property of the data model instead of a task someone does at quarter end.
The spec
Users
- Fund finance and operations teams who own quarterly close.
- Deal teams who present portfolio numbers.
- Investors and reviewers who question them.
Requirements
- Every reported number links to the source document it came from.
- Figures are stored at company and transaction level, then rolled up to the fund.
- A reviewer can open the source from the number in one step.
Acceptance criteria
- A figure with no source link cannot be saved to the record.
- Any fund-level number can be traced down to its transactions and their documents.
- Correcting a source updates every figure that depends on it, and keeps the history.
Guardrails
- No number enters the record without a traceable source.
- Close time must not get worse while teams move onto the system.
What shipped
Ingest
Documents from portfolio companies come in and are parsed.
Extract with a link
Each figure is stored together with a reference to the document it came from.
Roll up
Transactions and company figures aggregate into fund-level reporting.
Trace
Anyone looking at a number can follow it back to its source.
What changed
Quarterly close dropped from weeks to days, because there was nothing left to reconcile.
- The record now covers 100+ portfolio companies and 10,000+ transactions.
- It became the ground truth that conversational exit modeling runs on top of.
HONEST CAVEATClose time is the reported workflow outcome. Moving onto one record also removed manual consolidation, so I don’t credit provenance alone.
Reflection
This reframed what an AI product is for me. The valuable part was not generating numbers. It was making them verifiable.
If I did it again, I would lock the provenance data model before building the first ingestion pipeline. Adding source links to early records later costs more than building them in.
Last updated · Company tenure is VectorShift · Jul 2025–present, not a claim about individual project dates.