What is Portfolio?
Get oriented. Understand what Portfolio does, what it doesn't, and where it fits in the broader platform — in plain English.
The Elevator Pitch
Imagine you manage a private equity fund. You've raised $100M from a dozen investors. Over the next 10 years, you'll call their capital in installments, invest it into companies, harvest returns, and send distributions back. At every step, each investor wants to know: how much have I put in, what is it worth now, and what have I gotten back?
That's what Portfolio does. It's an investor-facing portfolio monitoring and reporting platform. It tracks capital commitments, transactions, valuations, and calculates the performance metrics (IRR, TVPI, DPI) that investors care about.
Portfolio is the scoreboard, not the game engine. It records what happened (subscriptions, capital calls, distributions) and computes metrics from those records. It doesn't originate deals, process payments, or handle investor onboarding — those happen elsewhere in the Delio/Verivend ecosystem.
What Portfolio Does
Let's break down the module's capabilities into three layers:
- Investors — who has committed capital
- Assets — the funds and direct investments being managed
- Transactions — subscriptions, capital calls, distributions, transfers, fees
- Cash Flows — the individual financial records within transactions (what the calc service actually reads)
- Valuations — point-in-time asset NAVs (net asset values)
- Committed / Called / Uncalled Capital — where is the money?
- DPI (Distributions to Paid-In) — how much has come back?
- TVPI (Total Value to Paid-In) — what's the total return multiple?
- RVPI (Residual Value to Paid-In) — what's still unrealized?
- XIRR — annualized rate of return, accounting for timing of cash flows
- Allocation breakdowns — by geography, sector, vintage, strategy
- Dashboard widgets — capital overview, valuation bridge, allocation charts
- Tables — investors, investments, ledger, transactions (with Excel export)
- PDF generation — quarterly performance reports, capital call notices, distribution notices
- Multi-currency — display in any supported currency with exchange rate conversion
What Portfolio Does NOT Do
Portfolio is frequently compared to tools it was never designed to compete with. Here's the boundary:
| Capability | Portfolio? | Where It Lives Instead |
|---|---|---|
| Track investor commitments & transactions | Yes | - |
| Calculate IRR / TVPI / DPI | Yes | - |
| Generate quarterly performance reports | Yes | - |
| Double-entry accounting / general ledger | No | Fund admin systems (Allvue, Investran, eFront) |
| Waterfall / carried interest calculations | No | Fund admin systems |
| Process actual payments (ACH, wire) | No | Verivend payment infrastructure |
| Investor onboarding / KYC | No | Delio Core / Verivend |
| Deal origination and management | No | Delio Core |
| Chart of accounts | No | Not built anywhere yet |
| ILPA-compliant reporting templates | Partial | Gap area — covers metrics but not the standard template format |
| Master-feeder / parallel fund structures | Partial | Asset hierarchy exists, but not purpose-built for complex structures |
A PE-grade GL has double-entry journals, a chart of accounts, multi-basis reporting, and audit-grade controls. Portfolio has none of that. It is a portfolio tracker and reporting tool — a read-heavy system optimized for showing investors where their money is, not an accounting system of record.
The Three User Types
Portfolio serves different views to different users. Understanding who sees what is fundamental:
The GPs and their operations teams — the people managing funds and sharing portfolio data with investors. They have the most access:
- Create and manage assets (funds, direct investments)
- Create and manage investor records
- Record all transaction types (subscriptions, capital calls, distributions, etc.)
- Upload bulk data via XLSX import
- Run valuations and generate reports
- Configure platform settings, report branding, fee display
- See the full "Group View" — all investors across all assets
Permissions are granular: can-create-portfolio-asset, can-add-investor-transaction, can-delete-investor-transaction, can-use-import-tool, etc.
Limited Partners viewing their own portfolio. They see "My View" — scoped to their investments only:
- Dashboard with their committed capital, paid-in, distributions, and performance metrics
- Their investments and current valuations
- Their documents (capital call notices, distribution notices, quarterly reports)
- Their transaction history
- Can request redemptions or asset transfers (which enter an approval workflow)
Investors cannot see other investors' data, create transactions, or modify anything. They can only view and make requests.
Wealth advisors and relationship managers who oversee a subset of investors:
- See the portfolio overview and their assigned investors
- Read-only access — cannot create or modify data
- Useful for wealth management firms where advisors need to see their clients' positions
Where Portfolio Fits in the Ecosystem
Portfolio doesn't stand alone. It's one service in a larger platform:
Here's how data typically flows:
- Delio Core creates an investor and a fund — sends them to Portfolio via the Machine API
- An admin uploads transaction data (subscriptions, capital calls) via XLSX bulk import or enters them through the UI
- When someone views the dashboard, Portfolio asks the Go Calculation Service (via gRPC) to compute metrics from the raw data
- The calc service reads directly from the same PostgreSQL database, crunches the numbers, and returns results
- Portfolio caches the results in Redis and serves them through widgets, tables, and charts in the React frontend
Financial calculations (especially XIRR) are computationally expensive and benefit from Go's concurrency model. The Go service fires parallel goroutines for each calculation type, uses worker pools for large datasets, and handles all the decimal precision and currency conversion. Keeping this separate from the Laravel app means neither blocks the other.
Multi-Tenancy: One Codebase, Many Clients
Portfolio uses a schema-per-tenant architecture in PostgreSQL. Each client (organization) gets their own isolated database schema with the exact same table structure. There's also a "landlord" database that tracks which tenants exist.
This means:
- Client A's investors, assets, and transactions are completely invisible to Client B
- When you configure settings (reporting quarter, currency, report branding), it only affects that tenant
- Schema migrations run against every tenant — there's no "this client has different tables" situation
- The Go calc service receives the schema name with every gRPC request and queries against that specific schema
Key Terminology
You'll encounter these terms constantly. If you already know PE basics, skim this. If not, bookmark it.
| Term | What It Means in Portfolio |
|---|---|
| Asset | Any investment vehicle — a PE fund, a direct equity position, a real estate holding. The broadest container. |
| PE Fund (Private Equity Fund) | A pooled vehicle where LPs commit capital that gets drawn down over time. Has capital calls, distributions, and NAV tracking. This is the more complex asset structure. |
| Direct Investment | A direct stake in a specific company or project. Simpler model: invest, hold (track value), exit. No capital call cycle. |
| Sub-Position | A child asset within a fund — share classes, underlying investments. Creates a hierarchy. |
| NAV | Net Asset Value — the current valuation of an asset or fund. |
| VPU | Value Per Unit — NAV divided by total units outstanding. |
| Term | What It Means in Portfolio |
|---|---|
| Subscription | An LP joining a fund — committing capital. Three flavors: Drawdown (pay later), Units Assigned (get units now), Fully Paid Up (pay everything upfront). |
| Capital Call | The fund asks LPs to wire a portion of their committed capital. Usually a percentage of commitment. |
| Distribution | Money flowing back to LPs — dividends, redemptions, or other income. |
| Redemption | An LP getting capital back by surrendering units. The value gets split into return-of-capital vs. capital gain. |
| Asset Transfer | Moving ownership from one investor to another (secondary market activity). |
| Metric | What It Tells You | Formula |
|---|---|---|
| DPI | How much cash has come back relative to what went in | Distributions / Paid-In |
| TVPI | Total return multiple (realized + unrealized) | (NAV + Distributions) / Paid-In |
| RVPI | How much unrealized value remains | NAV / Paid-In |
| XIRR | Annualized return rate, accounting for cash flow timing | Numerical solver (Newton/Secant method) |
| Capital Gains | Value created beyond what was invested | NAV + Distributions - Paid-In |
Knowledge Check
A client asks: "Can Portfolio calculate our carried interest waterfall?" What's the right answer?
Where do the DPI, TVPI, and XIRR numbers actually get calculated?
portfolio-calculations. The Laravel app handles data storage and business logic, then calls the Go service when metrics are needed. The Go service reads from the same PostgreSQL database and returns computed results.portfolio-calculations) communicating over gRPC. We'll cover this architecture in detail in Module 2.An investor logs into Portfolio. What can they see?
What's Next
Now that you know what Portfolio is (and isn't), the next module dives into how it's built. You'll map the architecture — the Laravel app, the Go calculation service, the multi-tenant PostgreSQL setup, and the three API surfaces that feed data in and out.