Capital Call Status (Claude Skill)
Last updated: July 6, 2026
This Claude Skill teaches Claude to report the status of each vehicle's latest capital call: who has funded, who hasn't, open amounts vs. prior arrears, and firm-level totals, pulled live (read-only) from your Hanover Park account.
How to set it up (one time)
Download the attached file just above.
In Claude, go to Settings > Capabilities > Skills and upload the file.
Done. There is nothing to configure.
How to use it
Just ask Claude, for example:
"Did everyone pay the [fund] call?"
"Who still owes on capital calls?"
"Capital call status as an Excel tracker"
What's inside the skill (reference only)
You don't need to read anything below to use the skill. It's the full instruction set packaged in the attached file, shown here for reference.
Capital Call Status Report
Show, for each vehicle at a firm, the status of its most recent capital call that still has unpaid amounts — who has funded, who hasn't, and how much is outstanding — building up to a firm-level total. The audience is fund CFOs and finance teams deciding whom to chase and how much cash is still inbound, so the two numbers that matter most are outstanding dollars and who owes them. Never estimate: every figure comes from a tool response.
How payment status is derived (read this first)
The platform does not expose per-wire settlement per LP. Status is derived from two facts that do exist:
Each capital call's per-LP called amounts (
get_capital_activity, actions view).Each LP's fund-scoped lifetime totalCalled vs totalContributed (
list_investorsscoped to the vehicle). The difference is that LP's unpaid balance in the vehicle.
An LP with unpaid balance 0 has fully funded everything including the latest call. Unpaid balance equal to their latest-call amount means the latest call is unfunded; less means partially funded; more means they also carry arrears from earlier calls — flag this explicitly, it's exactly what a CFO needs to notice. Present figures as "unpaid balance" rather than claiming wire-level settlement status.
Workflow
1. Firm and scope
Call get_user_context once. Clients have access to a single firm — use it without asking. If the user named a vehicle (e.g. "did everyone pay the Fund V call?"), scope the whole workflow to that vehicle and skip the aggregate table.
2. Find each vehicle's latest call
get_capital_activity (actions view, groupBy: 'vehicle') with a 12-month lookback (startDate), paginating if needed. For each vehicle, keep the most recent action with direction: 'call' — note its due date, total calledAmount, and investorPositionCount. Include every vehicle type that issues calls (funds, GP entities, ManCos, SPVs), labeled by type from get_user_context. If a vehicle has no call in 12 months, extend the lookback once (e.g. 24 months) before reporting "no recent calls".
3. Determine outstanding per vehicle
For each vehicle with a call found: list_investors (directory view, scoped to the vehicle, limit: 500, paginate until nextCursor is exhausted so sums cover every investor). Per investor, unpaid = totalCalled − totalContributed.
Vehicle total unpaid = sum of positive unpaid balances across its investors.
If total unpaid is zero (ignore sub-dollar rounding), the latest call is fully settled → the vehicle has no outstanding call; list it in a one-line "fully collected" note, not the main table. Skip the per-investor call pull for these vehicles — it saves a round trip and they need no detail.
Otherwise pull that call's per-investor amounts (get_capital_activity, actions view, groupBy: 'investor', scoped to the vehicle and call date) and split each owing investor's unpaid balance into two buckets, so the user is never confused by "outstanding" exceeding the call: open on this call = min(unpaid, their called amount on the action); prior arrears = the remainder. Received = called − open on this call; % collected = received ÷ called. Classify each owing investor: unfunded, partial, or arrears.
Include all partner types (the GP commitment gets called too); label anyone who isn't an LP.
4. Present the report
Lead with the aggregate; hold the per-LP rosters back. A firm-wide report can cover a dozen-plus vehicles with 60-150 positions each — dumping every owing investor makes the answer unreadable and slow. The aggregate table plus the largest unpaid balances answers "where do we stand"; the full name-by-name chase list is a follow-up (or the Excel). Only a single-vehicle request gets its full owing-investor roster inline.
Currency to whole dollars; "–" for zeros.
## Capital Call Status — [Firm]
As of [today's date]
| Vehicle | Type | Call Due | Called | Received | Open This Call | Prior Arrears | Total Unpaid | % Collected | Investors Owing |
|---|---|---|---|---|---|---|---|---|---|
| Fund V LP | Fund | Aug 1, 2026 (in 26 days) | $10,000,000 | $9,000,000 | $800,000 | $200,000 | $1,000,000 | 90.0% | 3 of 40 |
| Fund II LP | Fund | Feb 2, 2026 — overdue 154 days | $5,000,000 | $4,500,000 | $500,000 | – | $500,000 | 90.0% | 2 of 80 |
| ... |
| **Total** | | | **$15,000,000** | **$13,500,000** | **$1,300,000** | **$200,000** | **$1,500,000** | **90.0%** | **5** |
**Largest unpaid balances:** Investor A — $800,000 (Fund V); Investor B — $400,000 (Fund II); Investor C — $300,000 (Fund V, incl. $100,000 arrears); ...up to ~10.
Fully collected, nothing outstanding: Fund III LP (call due May 5, settled), Fund I LP.
"Open This Call" and "Prior Arrears" are kept separate precisely so Total Unpaid exceeding the call amount never confuses anyone; % Collected is received ÷ called for the latest call only.
The aggregate % Collected is total received ÷ total called — computed from the total dollars, never an average of the per-vehicle percentages.
Calls not yet due are normal — say "due in N days" rather than implying delinquency; a call past due with unpaid balances is the thing to highlight (mark it "overdue").
After the table, 2-3 sentences max: biggest outstanding balance, anything overdue, any arrears patterns (e.g. the same investor behind in several vehicles).
Then offer the detail: "Want the full owing-investor list for any vehicle, or the whole thing as an Excel tracker?" For a single-vehicle request, skip the offer and show the roster now, using this per-vehicle format:
### Fund V LP — due Aug 1, 2026
| Investor | Called | Unpaid | Status |
|---|---|---|---|
| Investor A | $800,000 | $800,000 | Unfunded |
| Investor B | $500,000 | $100,000 | Partial |
| Investor C | $60,000 | $75,000 | Arrears — includes $15,000 from earlier calls |
The Excel workbook (build with the xlsx skill, style with the excel-formatting skill — tracker recipe): one aggregate tab, one tab per vehicle with all owing investors. Name it <Firm> - Capital Call Status - <YYYY-MM-DD>.xlsx.
Accuracy rules
Use summary figures from the actions view for call totals rather than summing paginated rows; sum directory rows only after fetching every page.
Report tool figures verbatim (rounding for display only). If data is missing, say so — never approximate or invent a settlement status.
If asked when a specific LP paid or for wire-level detail, explain the platform data shows unpaid balances, not individual wire dates, and point them to the app's cash activity for the vehicle.
Never show internal IDs, slugs, tool names, or field names.