Get up and running with Nagare in minutes. This guide covers everything you need to manage your portfolio, run forecasts, and create scenarios.
Deep-dive guides for each major feature with examples and best practices.
Complete REST API reference for programmatic integration.
Visit nagare.com and choose a plan. We'll set up your organization within 24 hours and send you login credentials.
When you log in for the first time, you'll see an empty dashboard. Don't worry—we'll walk you through setting up your first fund.
Before adding funds, configure your portfolio settings:
A fund is any investment vehicle you track: PE funds, VC funds, real estate funds, credit funds, or even public market portfolios. Each fund has parameters (commitment, vintage year, expected return, etc.) that drive projections.
Actuals: Real historical data from GP statements (capital calls, distributions, NAV). Always takes priority.
Forecasts: Projections for future quarters based on fund parameters and deployment curves.
A scenario is a "what-if" version of your portfolio. You can adjust assumptions (e.g., "assume 20% growth instead of 15%") and instantly see new projections without changing your baseline.
A snapshot captures the state of a calculation at a specific point in time. Use snapshots to compare "what we thought in Q3 2023" vs. "what we think now" for variance analysis.
Click "Add Fund" and fill in the details:
If you don't have fund-specific parameters yet, use our industry templates (VC, Buyout, Real Estate, etc.) for reasonable defaults. You can always refine them later.
Once you have funds, add actual historical data from GP statements. There are three ways to do this:
Click on a fund → "Add Transaction" → Enter capital calls, distributions, and NAV updates.
Best for: Small portfolios (<10 funds) or one-time data entry.
Export your existing spreadsheet as CSV → "Import Data" → Map columns → Upload.
Best for: Migrating from Excel or batch updates.
Drag and drop GP statements (PDFs) → Our AI extracts capital calls, distributions, and NAV → Review and approve.
Best for: Regular quarterly updates (saves 95% of manual entry time).
Once you upload actual data for a quarter, Nagare uses that instead of forecasts. This ensures your projections always start from real numbers.
Scenarios let you answer "what if?" questions without changing your baseline forecast.
While scenarios test specific assumptions, Monte Carlo simulations test thousands of possible futures to give you a probability distribution of outcomes.
You'll see:
Variance analysis answers: "Why are we off track?"
Investment committees don't just want to know "we're behind plan"—they want to know why. Variance attribution gives you the narrative: "We're behind plan because deployment was slower, but returns are 20% higher, so we're actually in good shape."
Our AI can read GP capital statements and extract data automatically—no more copy-paste from PDFs.
AI document processing transforms quarterly data updates from a 40-hour manual project into 2 hours of review. More importantly, it ensures data accuracy and completeness for strategic decision-making across 30+ funds.
Nagare is API-first. Every feature in the UI is available via REST API for integration with your existing systems.
Generate a secret key in Settings → API Keys. Keys start with sk_...
export API_URL="https://api.nagare.com/api/v1"
export API_KEY="sk_live_your_key_here"curl -s -X POST "$API_URL/funds" -H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" -d '{
"fundId": "FND-VC-2022-001",
"name": "Sequoia Capital Fund XVIII",
"parameters": {
"fundType": "VENTURE_CAPITAL",
"firmName": "Sequoia Capital",
"fundName": "Fund XVIII",
"currency": "USD",
"vintageYear": 2022,
"totalCommitment": 50000000,
"durationYears": 12,
"extensionYears": 2,
"startDate": "2022-01-01",
"expectedEndDate": "2036-12-31",
"managementFeeCalledCapital": 0.015,
"managementFeeHoldback": 0.02,
"investmentLines": 15,
"commitmentPeriodYears": 5,
"distributionPeriodYears": 7,
"targetGrossTVPI": 2.5,
"hurdleRate": 0.08,
"carriedInterest": 0.2,
"deploymentCurve": {"year1":0.25,"year2":0.25,"year3":0.20,"year4":0.20,"year5":0.10},
"exitCurve": {"shape":2.5,"scale":24,"exitVolatility":0.20}
}
}'SCENARIO_ID=$(curl -s -X POST "$API_URL/scenarios" -H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" -d '{
"name": "Baseline",
"scenarioType": "CUSTOM",
"isMainScenario": true,
"fundIds": ["FND-VC-2022-001"]
}' | jq -r '.scenarioId')
curl -s -X POST "$API_URL/scenarios/$SCENARIO_ID/calculate" -H "Authorization: Bearer $API_KEY"curl -s "$API_URL/scenarios/$SCENARIO_ID/cashflow?period=quarter" -H "Authorization: Bearer $API_KEY" | jq '.[:8]'
curl -s -X POST "$API_URL/analysis/funds/FND-VC-2022-001" -H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" -d '{"includeDocuments": true}'
curl -s "$API_URL/analysis/funds/FND-VC-2022-001/reports/latest" -H "Authorization: Bearer $API_KEY" | jq '{overallGrade, overallScore, analysisDate}'const API_URL = process.env.NEXT_PUBLIC_API_URL ?? 'https://api.nagare.com/api/v1';
const API_KEY = process.env.NAGARE_API_KEY!; // set in .env.local
async function request(path: string, init: RequestInit = {}) {
const res = await fetch(
`${API_URL}${path}`,
{
...init,
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json',
...(init.headers || {}),
},
cache: 'no-store',
}
);
if (!res.ok) throw new Error(await res.text());
return res.json();
}
// 1) List funds
request('/funds').then(console.log);
// 2) Create a fund
request('/funds', {
method: 'POST',
body: JSON.stringify({
fundId: 'FND-VC-2022-001',
name: 'Sequoia Capital Fund XVIII',
parameters: {
fundType: 'VENTURE_CAPITAL',
firmName: 'Sequoia Capital',
fundName: 'Fund XVIII',
currency: 'USD',
vintageYear: 2022,
totalCommitment: 50000000,
durationYears: 12,
extensionYears: 2,
startDate: '2022-01-01',
expectedEndDate: '2036-12-31',
managementFeeCalledCapital: 0.015,
managementFeeHoldback: 0.02,
investmentLines: 15,
commitmentPeriodYears: 5,
distributionPeriodYears: 7,
targetGrossTVPI: 2.5,
hurdleRate: 0.08,
carriedInterest: 0.2,
deploymentCurve: {year1:0.25,year2:0.25,year3:0.20,year4:0.20,year5:0.10},
exitCurve: {shape:2.5,scale:24,exitVolatility:0.20}
}
})
});
// 3) Create scenario then calculate
async function createAndCalculate() {
const scenario = await request('/scenarios', {
method: 'POST',
body: JSON.stringify({ name: 'Baseline', scenarioType: 'CUSTOM', isMainScenario: true, fundIds: ['FND-VC-2022-001'] })
});
await request(`/scenarios/${scenario.scenarioId}/calculate`, { method: 'POST' });
const cashflow = await request(`/scenarios/${scenario.scenarioId}/cashflow?period=quarter`);
console.log(cashflow.slice(0, 8));
}
createAndCalculate();
Don't try to model every edge case on day one. Start with basic fund parameters, get comfortable with the platform, then refine assumptions as you learn what matters most for your portfolio.
Before your next IC meeting, create 3 scenarios: Base Case, Bull Case, Bear Case. When someone asks "what if...?", you can answer in seconds instead of saying "I'll get back to you."
At the start of each quarter, take a snapshot of your baseline forecast. This lets you track forecast drift and answer "how accurate were our Q1 predictions?" in Q4.
Our AI document extraction is 99%+ accurate, but always review extracted data before approving. It only takes 30 seconds per fund and catches the occasional edge case (like a GP using non-standard formatting).
If you have significant FX exposure, create scenarios with ±10% currency movements. This helps you quantify FX risk and decide whether to hedge.