Using Arch to streamline oversight of our alternative investments
As an evergreen investment firm, we invest in many illiquid funds that take a capital commitment, call capital, make investments, and make distributions to LPs. For such funds, we rely almost entirely on the fund managers to provide us with the information we need to evaluate the investments over time. Each manager provides data in different ways, making it difficult to wrangle and aggregate them such that it’s easy for anyone on our team to find insights.
In this blog post, we’ll walk through how we integrated Arch to cut our manual processing time for illiquid fund data by 87.5%.
The trouble with illiquid fund data
Fund manager updates — capital-call requests, distribution notices, account statements, audited financial statements, quarterly reports, newsletters, and other updates — arrive on unpredictable schedules, and in every format imaginable.
Each fund manager shares data differently:
Most use investor portals
Some send emails
Others work through private banks
And the formats are varied:
PDFs and other non-machine-readable files
Prose, numbers, charts, tables, footnotes
A first attempt to wrangle illiquid fund data
Our initial process looked like this:
Fund manager sends a document to a designated inbox
A Jira ticket and Slack notification are created
TB team member reads the message and:
Logs into portal, downloads document
Files it in Google Drive
Determines whether it’s actionable (e.g. capital call)
Manually updates an inventory of funds (we used a tool called Airtable for that), attempting to write down enough information so we can construct the necessary journal entries for our financial statements
For non-actionable updates (e.g., webinars, newsletters): no further action.
Below is a diagram showing a small subset of the process.
We rotated investment-ops coverage. Each of us found the new process extremely manual and full of “soul-destroying clicking.” Distracting Slack notifications meant frequent context-switching.
There was the lingering unease that we might inadvertently miss a capital call. In addition, unrealised gains and losses and valuation adjustments needed to be recorded in our general ledger, LedgerPigeon.
We needed to find a better way.
A better way to wrangle data from alternative investments
We try to keep toil to a minimum, a principle that Peter discusses in his post on portfolio accounting and investment reporting.
With this in mind, we set out to standardise and structure our fund-investment information flows to cover:
Document tracking
Have we received expected updates from our fund managers, such as audited financial statements, quarterly reports, and account statements?
Breakdown of capital calls and distributions
Actual capital invested into underlying holdings
Distributions sourced from income
Return of capital distributions (and whether they are recallable or non-recallable)
Management fees
Passthrough expenses
Other items, such as withholding taxes and subsequent close interest
Performance metrics
What are unrealised gains or losses based on GP valuations?
What’s our DPI and TVPI?
Forecasting
Based on historical data and guidance from our fund managers, how do we expect the cash flows to evolve?
Alerts
Notify us when a new capital call arrives
Our goal was to get the data while minimising the amount of human effort required to wrangle documents, crunch numbers, and stay on top of capital calls.
Enter Arch
This problem isn’t new. To avoid reinventing the wheel, we looked for a vendor to help us.
After evaluating several vendors, we chose Arch Labs.
Arch ticked all our boxes because it:
Cost-effectively solves our use cases listed above
Supports SSO, which is how we protect our data
Links directly to our fund portals as “interested 3rd parties”, eliminating the need for humans to corral documents
Triages incoming documents and centralises it in one location
Automatically updates contribution and distribution amounts for each fund
Provides a well-documented API, which
Lets us create an automated ingest into LedgerPigeon (our general ledger)
Prevents creating a data silo within Arch
Best of all, the Arch team actively seeks feedback and rapidly improves their product.
By ingesting data from capital-call requests, distribution notices, and account statements, Arch helps us understand how a fund is performing at any one time.
Building the pipeline
After onboarding with Arch, we created a pipeline to:
Pull data from the Arch API
Ingest it into our data lake
Process it into journal entries for financial statement purposes
Here is a very high-level picture of how we pulled data from the Arch API and turned it into journal entries.
The same underlying tables can then be used for our portfolio analytics, enabling P&L attribution with zero human effort to prepare the data.
The diagram below shows how a complex, mixed capital call and distribution maps to a journal entry.
On a regular basis (up to daily), we can recognise the difference between the current valuation and the sum of all cashflows as unrealised gains and losses, completing the P&L picture.
Our dataset now automatically updates on an ongoing basis, and we only intervene when our current logic struggles to handle novel situations.
How has the Arch integration helped us?
Beyond helping us answer key portfolio questions, our Arch integration has also helped us in the following ways:
Key results:
Time savings. Monthly processing time plummeted from ~8 hours to <1 hour.
Confidence. We’re now confident we’ve received all the expected documents.
Peace of mind that we aren’t missing any capital calls.
No more soul-destroying clicking!
What’s next?
Now that the core system is in place, we’re exploring:
Tracking even more granular breakdowns across funds in our financial statements
Structuring data embedded in prose (maybe with LLMs)
Using the data for cash-flow forecasting
The less toil our team has to endure, the more bandwidth we can free up for deeper analysis and better decision-making.
Shoutout to Arch for sparing us from toil in overseeing our private market investments, and for graciously accommodating our Singapore–New York time zone calls. We’re excited to keep building from here.