Skip to main content

Private markets playbook

Private markets — private equity, venture capital, private debt, real assets, and fund-of-funds — present unique reconciliation challenges. Trades are infrequent but high-value, capital calls and distributions are ad-hoc, NAV calculations involve complex waterfall logic, and LP/GP transfers require careful identity verification. Falcon Veritas Intelligence (FVI) provides a private markets playbook that adapts the same ledger of truth to these workflows.

Why private markets are different​

Private markets differ from public markets in several ways that affect reconciliation:

  1. Trade frequency — capital calls, distributions, and secondary trades are infrequent (weekly or monthly) but high-value. Each transaction can be $1M-$1B.
  2. NAV calculation — fund NAV is calculated quarterly based on manager valuations, with multi-tier waterfall distributions (return of capital, preferred return, GP catch-up, carried interest).
  3. Identity verification — LP transfers (assignments) require KYC/AML re-screening, qualified purchaser verification, and ERISA considerations.
  4. Capital call tracking — capital calls are issued in tranches (called amount, due date, purpose), with subscription line of credit interest accrual.
  5. Fair value — Level 1, 2, 3 valuation hierarchy with quarterly mark-to-model for Level 3 assets.

FVI's private markets playbook addresses each of these with purpose-built workflows.

FVI's private markets architecture​

Step-by-step: enabling private markets workflows​

  1. Connect fund admin. Wire your fund admin's data feed (Gen II, SS&C GlobeOp, Citi Fund Services, JPMorgan Fund Services, or in-house) to FVI's ingestion pipeline. FVI normalizes fund admin CSV and API outputs into the canonical transaction record.

  2. Configure capital call tracking. Set up the capital call template with fields for call number, called amount, due date, purpose, and subscription line interest rate. FVI tracks each LP's uncalled commitment, called amount, and remaining commitment.

  3. Configure distribution waterfall. Set up the distribution waterfall with the fund's preferred return, GP catch-up, carried interest, and claw-back provisions. FVI applies the waterfall to each distribution and produces a per-LP allocation.

  4. Enable NAV calculation. Configure the NAV calculation schedule (quarterly, monthly, or on-demand). FVI pulls GP valuations, fund admin reconciliations, and applies the waterfall to produce the fund NAV and per-LP NAV.

  5. Enable LP reporting. Activate the LP quarterly report template, which includes capital account statement, distribution notice, capital call notice, K-1 (US) or local equivalent, and tax summary.

  6. Monitor and audit. FVI's private markets dashboard shows commitment utilization, called capital, distributed capital, NAV trends, and per-LP exposure.

Capital call lifecycle​

FVI tracks the full capital call lifecycle:

FVI's NAV calculation applies the waterfall in this order:

  1. Return of capital — return LP capital contributions until fully returned
  2. Preferred return — distribute the preferred return (typically 6-8% IRR)
  3. GP catch-up — distribute to GP until they receive 20% of profits above preferred return
  4. Carried interest — split remaining 80/20 between LPs and GP
  5. Claw-back — if total distributions exceed the GP's carry entitlement, recover the excess

FVI supports American, European, and deal-by-deal waterfalls, with customizable hurdle rates and catch-up rates.

Use cases​

  • Private equity GPs — reconcile capital calls, distributions, and NAV quarterly.
  • Venture capital managers — track SAFEs, convertible notes, and priced rounds.
  • Private debt funds — reconcile loan originations, drawdowns, and repayments.
  • Fund-of-funds — aggregate LP/GP reconciliations across multiple underlying funds.
  • Secondary market — reconcile LP transfers and continuation vehicles.

Code samples​

TypeScript​

import { FVI } from '@falconveritas/sdk';

const fvi = new FVI({
baseUrl: 'https://api.falconveritas.com',
bearer: process.env.FVI_JWT!,
tenantId: process.env.FVI_TENANT_ID!,
});

// Get NAV for a fund
const nav = await fvi.industries.privateMarkets.nav({
fundId: 'fund-001',
asOf: '2026-06-30',
});

console.log(`Fund NAV: $${nav.total_nav.toLocaleString()}`);
console.log(`LP NAV: $${nav.lp_nav.toLocaleString()}`);
console.log(`GP carry: $${nav.gp_carry.toLocaleString()}`);

Python​

from falconveritas import FVI

client = FVI(
bearer=os.environ["FVI_JWT"],
tenant_id=os.environ["FVI_TENANT_ID"],
)

nav = client.industries.private_markets.nav(fund_id="fund-001", as_of="2026-06-30")
print(f"Fund NAV: ${nav.total_nav:,.0f}")
print(f"LP NAV: ${nav.lp_nav:,.0f}")
print(f"GP carry: ${nav.gp_carry:,.0f}")

Last updated: 2026-08-22 · Page owner: Documentation · Source: src/lib/industries/private-markets/.