Private Equity (PE) Best Practices Pre-V17 R2.36
Overview
This document applies to Eagle Accounting releases prior to V17 R2.36. Additional version-dependent functionality is noted with the initial release(s) it became available.
Private Equity (PE) is an investment vehicle where limited partners (LPs) provide capital to a fund that is not available to the public markets, managed by one or more general partners (GPs). Funds often invest in both private and public markets. The GP will request capital from LPs, referred to as capital calls, and distribute cash or stock distributions over the life of the investment.
PE investments can be tracked as capital-based fund investments (CBFIs), share-based fund investments (SBFIs), or using the equity method of accounting. This document focuses specifically on the CBFI workflow. Eagle does not typically recommend using the SBFI workflow for Accounting as the CBFI model aligns better with most client requirements.
The CBFI workflow can also be used to model Limited Partnerships and Real Estate in some cases. You are able to set up a funding commitment and transactions can then be processed to invest this commitment, receive principal repayments, receive interest payments, and increase or decrease the funding commitment.
On this page
Related content
Entity Setup
There are no additional fields required when setting up an entity to trade CBFI securities. However, due to the sporadic nature of pricing, you may want to set the STAR 2 PACE entity flag Value At Cost - No Price Found (11454) = Yes
 if CBFI securities are the only type held in the fund. This ensures holdings will always be valued in Data Management, even if no market price is available. Please consider the implications carefully if there are other types of securities in the fund, as the flag affects all of an entity's holdings.
Note: when running the STAR to PACE process using Transfer Data - Batch or Transfer Data - Delta, Price Date Switch (9981) controls what happens in the case of a missing price, before falling back to Value At Cost - No Price Found
The table below shows what happens on dates when there is a missing price in the various combinations of these elections
 | Value At Cost - No Price Found = No | Value At Cost - No Price Found = Yes |
---|---|---|
Price Date Switch = Actual | Market Value = 0.00 | Market Value = Cost |
Price Date Switch = Recent | Market Value =Â Stale if a price exists for any prior date, else 0.00 | Market Value =Â Stale if a price exists for any prior date, else Cost |
There may be situations where the same PE investment is held across multiple entities. The best practice is to setup a separate CBFI security for each entity due to pricing considerations.
Reference Data
Market Data
Pricing data is not typically available until each PE fund statement is received. These statements include pricing for the period end date and are often received on a delay. In such cases, Eagle recommends using estimated prices for dates between statement period ends to smooth the valuation and performance returns. The exact method for deriving these prices is up to you. They are typically calculated based on the most recent available statement price and any subsequent transaction activity. Another approach clients have taken, albeit less common, is to calculate estimated prices in line with the return of a benchmark.
Security Data
The CBFI security master can be configured much like an equity security. CBFIs can be set up using Issue Viewer, Security Reference Manager (SRM), or Reference Data Center (RDC). Processing Security Type (3931) must be set to EQCBFI
. Security Type and Sub Security Type can be used to help further identify these investments, such as Private Equity or Real Estate. The following list captures the minimum security data required.
Issue Name (961)
Primary Asset ID (14) & Type (1432)
Processing Security Type =Â
EQCBFI (Capital Based Fund Investment)
Price Multiplier (18) =
1.00
Quantity Scale (19) =
1.00
Issue Country (1418)
Asset Currency (85)
Settlement Currency (63)
Income Currency (1186)
Trade Processing
Trades against CBFI securities should be processed through Book Trade. Depending on your version you may see other screens designed for CBFI processing, but these have been deprecated and should not be used. This includes the following screens, typically found under the Reorg menu:Â Initial Purchase, Contribution, Partial Withdrawal, Final Sale (Full Withdrawal).
Transaction Notes (56) is a critical field as it is used to drive reporting.
Initial Commitment
You can set up and track an unfunded commitment to a PE fund using Book Trade > Open > Initial Funding. Critical fields are described below.
Entity ID (1163)
Effective Date (35)
Settlement Date (37)
Event Type (55)Â =
LPOPEN
Shares (40)Â =
1.00
Commitment Amount (41): enter the entire local amount of the commitment (must be positive)
Cost Local (50): set to
0.00
, unless cash is involved with the initial commitmentThis is most common with positions acquired in the secondary market
Transaction Notes (56): set to
Initial Commitment
Commitment Amount will be stored in the Original Par field for this holding. The Initial Funding event does not affect the current shares of the security nor does it affect the cash in the portfolio.
Commitment Adjustment
You can change an unfunded commitment to a PE fund using Book Trade > Other > Additional Funding/Capital Call. Critical fields are described below.
Entity ID (1163)
Effective Date (35)
Settlement Date (37)
Event Type (55) =
LPCOMMIT
Transaction Name (1728) =
Additional Commitment
Select Lot (962): populated automatically after the entity and security information are entered with the holding created by Initial Funding
Additional Commitment Amount (41): enter a positive number to increase the commitment, or a negative number to decrease it
Note: out of the box, this field only allows positive values; you can allow negative values by updating the panel as described in the Recommended Configuration Changes section
Transaction Notes (56): set to
Commitment Adjustment
Capital Call
You can process a capital call (funding of the commitment), which can include both capital investments and "in commitment" fees, using Book Trade > Other > Additional Funding/Capital Call. Both of these reduce the unfunded commitment to a PE fund. Critical fields are described below.
Entity ID (1163)
Effective Date (35)
Settlement Date (37)
Event Type (55) =
LPCALL
Transaction Name (1728) =
Call
Select Lot (962): populated automatically after the entity and security information are entered with the holding created by Initial Funding
Cost Local (50): enter the local amount of the capital call (must be positive) and/or "in commitment" fees
A cash disbursement is created for this amount
Transaction Notes (56):Â set to
Capital Call
The capital call transaction will affect the cost of the CBFI, increasing it to include the new capital that has been invested in the PE fund. Additionally, the cash balance of the portfolio will be reduced to reflect the cash movement.
Cash Distribution
There are two types of cash distributions:
Recallable: cash is paid out to LPs, but can be either fully or partially recalled by the GP at a later date
This increases the unfunded commitment
To accurately track the unfunded commitment, partially recallable cash distributions must be entered as two separate transactions: one for the recallable amount and one for the non-recallable amount
Non-Recallable: cash is paid out to LPs permanently
This does not affect the unfunded commitment
You can process a cash distribution from a PE fund using Book Trade > Other > Capitalization/Cash Entry/Final Close. The distribution can be broken out between income, expense, and cost. Critical fields are described below.
Entity ID (1163)
Effective Date (35)
Settlement Date (37)
Event Type (55) =
LPCASH
Transaction Name (1728) =
Cash
Select Lot (962): populated automatically after the entity and security information are entered with the holding created by Initial Funding
Cash Amount Local (64): enter the local amount of the distribution; a positive value will create a receipt, while a negative value will create a disbursement
Income Amount Local (11076): subtracted from Cash Amount Local for gain/loss calculation
Expense Amount Local (11078): added to Cash Amount Local for gain/loss calculation
Cost Local (50): added to Cash Amount Local for gain/loss calculation
Affects the cost of the CBFI position, with a positive value increasing the cost and a negative value decreasing the cost
To keep cost in sync with your cash, set this as the inverse of Cash Amount Local (if Cash Amount Local = 2 million, Cost Local = -2 million)
This is the inverse of what happens in a capital call, where a cash disbursement causes your cost to go up
Gain/Loss Amount Local (171)Â = Cash Amount Local - Income Amount Local + Expense Amount Local + Cost Local
Posts as the transaction's realized gain/loss
Transaction Notes (56): set to
RECALLABLE CAPITAL
 orTEMP RETURN OF CAP
 to adjust the unfunded commitment, or any other value to leave it unchanged
Capitalization
You can recognize income and/or expenses by processing a capitalization event, which also adjusts the cost of the CBFI position, using Book Trade > Other > Capitalization/Cash Entry/Final Close. These transactions hit the LP INCOME
and LP EXPENSE
accounts, but they do not generate cash, affect the unfunded commitment, or create realized gain/loss. Critical fields are described below.
Entity ID (1163)
Effective Date (35)
Settlement Date (37)
Event Type (55) =
LPCAP
Transaction Name (1728) =
Capitalization
Select Lot (962): populated automatically after the entity and security information are entered with the holding created by Initial Funding
Cash Amount Local (64): locked and defaulted to
0.00
Income Amount Local (11076)
Expense Amount Local (11078)
Cost Local (50): locked and defaulted to Income Amount Local - Expense Amount Local
Affects the cost of the CBFI position, with a positive value increasing the cost and a negative value decreasing the cost
Gain/Loss Amount Local (171):Â locked and defaulted to
0.00
Transaction Notes (56): set to
Income/Expense
 for reporting purposes
Close
You can close out a position in a PE fund using Book Trade > Other > Capitalization/Cash Entry/Final Close. Any cash associated with the close can be broken out between income, expense, and cost. Critical fields are described below.
Entity ID (1163)
Effective Date (35)
Settlement Date (37)
Event Type (55) =
LPCLOSE
Transaction Name (1728) =
Close
Select Lot (962): populated automatically after the entity and security information are entered with the holding created by Initial Funding
Income Amount Local (11076): subtracted from Cash Amount Local for gain/loss calculation
Expense Amount Local (11078): added to Cash Amount Local for gain/loss calculation
Cost Local (50): added to Cash Amount Local for gain/loss calculation
Locked and defaulted to the inverse of the current outstanding cost (or amortized cost, if available)
Gain/Loss Amount Local (171) = Cash Amount Local - Income Amount Local + Expense Amount Local + Cost Local
Posts as the transaction's realized gain/loss
Transaction Notes (56): set to
Close
 for reporting purposes
Note: the close event should only be used when there is no cost remaining, as current functionality will close the entire position to gain/loss without respect to the cost.
Conversion
There are two options for converting PE positions. The optimal method depends on your requirements and the historical data you have available.
Method | Summary | Pros | Cons |
---|---|---|---|
Full History | Load the investment's full lifecycle using Eagle Accounting transactions |
|
|
Point in Time | Load the initial commitment, followed by net transactions that aggregate all capital calls and other activity up to the point in time, resulting in the appropriate cost |
|
|
When historical performance analysis is required for the Point in Time method, it is important to consider your entity setup. If each CBFI security is held in its own entity, you can load historical fund-level returns and they will represent the security-level returns. You can also load historical security-level returns, but if there are multiple CBFI securities in a single entity or they are comingled with other securities, you must load the full history of security-level returns for all of the entity's holdings to ensure accurate fund-level returns.
If historical performance analysis is not required, you can always calculate returns (non-IRR) from conversion date forward without loading historical return data.
Cancel & Rebook
If a faulty transaction is entered it must first be cancelled using one of the following screens, depending on your version:
V17 & Above
Cancel Capital Based Purchase or Final Sale
Cancel Capital Based Contribution or Withdrawal
Note: these menu options can be used interchangeably as they are linked to the same screen
Prior to V17:Â Cancel Capital Based Fund Investments
If you need to cancel the Initial Commitment, you must first cancel all subsequent activity. If you are in a testing environment, it may be preferable to use Delete a Position, but we generally do not recommend this in production settings.
Accounting
Once a CBFI security has been opened, it will follow standard Accounting functionality. The following fields will be populated as described below:
Units (40): will always be
1.00
Original Face (41): commitment amount for the CBFI
Cost fields: sum of all capital calls, cash distributions, and income/expense transactions
In versions prior to V15 R2.32 and V17 R2.11, FX gain/loss is not automatically broken out for cash distributions. Workarounds are available in lower versions, but require technical implementation. Please discuss with your implementation team or contact Instrument Engineering for details.
Valuation
While CBFI securities use the standard valuation methodology in Accounting and Data Management, they are typically represented by a single unit and priced based on market value. If the CBFI market value is available it can be loaded directly as a price due to the single-unit position. In some cases market values may only be available on a delayed basis. When this happens, valuations can be restated historically, or the late price can be entered with a current date.
If Value At Cost - No Price Found = Yes
on your entity and you run the STAR to PACE process using Transfer Data - Batch or Transfer Data - Delta with Price Date Switch = Recent
, this is the hierarchy that will be used for valuation:
Market value loaded for current date
Most recent market value available
Position cost
Reporting
STAR to PACE (S2P)
The STAR to PACE process will generate position detail records in Data Management for each CBFI. Market value will be computed based upon available prices or at cost. Cash activity records will be generated for all transactions that have a cash flow.
Accounting Reports
CBFIs can be viewed on both the modern and legacy Trade Activity reports. However, they show a limited amount of data and the latter may require modification to meet your requirements as Eagle does not natively track unfunded commitments and committed capital. A Report Profile can be added to the legacy Trade Activity report track them by categorizing each transaction and bucketing it appropriately, but the values are calculated on the fly at report run time; they are not available on the sub-ledger for reporting. Details about the Report Profile and calculations are available below in the PE Reporting section.
Performance
The Eagle Performance Toolkit can be utilized for IRRÂ calculations for CBFI securities. Beginning in V15 R2.18, Eagle supports the Private Market Equivalent - IRR (PME-IRR) calculations. Performance analysis fields need to be created to support PME-IRR.
In the case of a conversion, Eagle recommends loading historical market values and cash flows to the performance tables to enable IRR calculations prior to conversion
Note: the cash flow impacts of CBFI transactions occur at different times depending on the type of transaction. For example, LPCALL
is a start-of-day flow, while LPCASH
is an end-of-day flow. Please review your performance reports closely during testing as these nuances impact the returns.
Recommended Configuration Changes
These changes are recommended to expand the existing CBFI functionality and make it more user friendly. As with any environment configuration changes, these should be deployed in a test environment before being moved to production.
Screen Changes
Note: you may receive one or two of the following errors when saving your changes. These can be ignored.
Value of Tag 55 "" and value of SubMessage "LPCAP" are different
Value of Tag 55 "" and value of SubMessage "LPCALL" are different.
Property "executeplugins" is obsolete.
Initial Funding (pan-initialfunding.htm)
Lock and default Transaction Notes to
Initial Commitment
Implementation
Open Web Panel Designer
Navigate to eagle > star > trade > Capital Based Fund Investments and open Initial Funding
Ensure you are in Overlay edit mode
Scroll down to Transaction Notes
Set Read-only column =
Yes
Scroll right and set Default value =
Initial Commitment
Click Save
Additional Funding/Capital Call (pan-capitalcall.htm)
Allow negative values in Additional Commitment Amount to support commitment decreases
Lock and default Transaction Notes to
Commitment Adjustment
when Transaction Name =Additional Commitment
Lock and default Transaction Notes to
Capital Call
when Transaction Name =Call
Implementation
Open Web Panel Designer
Navigate to eagle > star > trade > Capital Based Fund Investments and open Additional Funding/Capital Call
Ensure you are in Overlay edit mode
Scroll down to Additional Commitment Amount
Scroll right and set Negative values allowed = 1
Scroll down to Transaction Notes
Set Read-only column =
Yes
Click the ...LISTBOX tab
Comment out this section:
41i script 41i defentry :41: 41i text IF :1728: = "ADD" AND :41: = 0 THEN ERR("Additional commitment amount must be greater than zero."); 41i end
Add this code to the end:
56i --- - - - - - - - - - - - - - 56i script 56i defentry :56: 56i text IF :1728: = "ADD" THEN FORCE(@:56:,"Commitment Adjustment"); 56i text IF :1728: = "CALL" THEN FORCE(@:56:,"Capital Call"); 56i end
Click Save
Capitalization/Cash Entry/Final Close (pan-capitalization.htm)
Remove error that prevents Effective Date from being greater than Post Date (30)
Conditionally require Transaction Notes when Transaction Name =
Cash
Add Code Value lookup to Transaction Notes against theÂ
PECASHTYPE
Code Category
Implementation
Open Add Code Category
Set Code Category Name (1165) =
PECASHTYPE
Set Code Category Description (1166) =
Private Equity Cash Type
Click Submit
Open Add Code Value
Set Code Category Name (1165) =
PECASHTYPE
Right-click the row in the lower section of the screen and select Add Row(s)
Populate Code Value (1176) and Code Name (1177) using the Short Description and Long Description (respectively) as shown below
Short Description Long Description BLOCKER EXPENSE Blocker Expense (Fee) CASH DISTRIBUTION Cash Distribution LATE INTEREST Late Interest (Fee) LEGAL Legal (Fee) OTHER FEES Other Fees (Fee) RECALLABLE CAPITAL Recallable Capital TAX Tax (Fee) TEMP RETURN OF CAP Temporary Return of Capital
Click Submit
Open Web Panel Designer
Navigate to eagle > star > trade > Capital Based Fund Investments and open Capitalization/Cash Entry/Final Close
Ensure you are in Overlay edit mode
Click the ...LISTBOX tab
Scroll down to/search for the Link ID of 35i
Right-click the line shown below and select Comment Row
35i E1 :>:30:;Effective date can not be greater than post date
Add this code to the end:
56i --- - - - - - - - - - - - - - 56i P list 56i D dynamic 56i T Transaction Notes Lookup 56i Lookup 56i Defentry :56: 56i Type usual 56i Condition CHANGED(@:56:) AND ALTERED(@:56:) 56i Flags disabledirectmap 56i Panel pan-lcodeval.htm 56i SourceMapIDs 1176=56:1165='PECASHTYPE': 56i MapIDs 56=1176: 56i PanelFlags ReuseResults 56i Helpids 1177 56i End 56i script 56i defentry :56: 56i text IF :1728: = "CASH" THEN SET(R56) ELSE SET(O56); 56i end
Click Save
STAR to PACE
The Event Type (55) LPCOMMIT
must be added to the list of STAR Performance Flow
descriptors used by Data Management and Performance. These are maintained using Code Values.
Open Add Code Value
Set Code Category Name (1165) =
STAR_PERF_FLOW
Set Code Value (1176) =
LPCOMMIT
Set Code Name (1177) =
Positive
Set System Control (1148) =
0
You may need to show hidden fields depending on what tool you are using
Click Submit
Open Engine Manager
Navigate to All Engines > Refresh Engines Cache
Under Command Name, right-clickÂ
CCF_CLEAR_CODE_MAP_CACHE
and select Run
PE Reporting
A generic PE Report Profile is available as a baseline for implementations: . The profile should be uploaded to this directory via System Management Center: /apps/[EnvironmentID]/estar/tpe/dynamic/profiledat/result_public/eagle/star/reports
. Adjustments may be required to maintain correct bucketing if additional values are used for Transaction Notes beyond those specified above.
The Report Profile is built against the legacy Trade Activity report because some key fields are not currently pushed to Data Management (this is tracked as SDP-39412). It can be found in Web Panel Designer under the path eagle > star > reports > Legacy Reports - To Be Reviewed >Â pan-tradeactivity.htm. The following table provides details about each field.
Field | Type | Details |
---|---|---|
Accounting Date | Direct |
|
Issue Name | Direct |
|
Transaction | Direct |
|
Total Commitment | Direct |
|
Capital Call Local | Derived |
|
Recallable Capital Local | Derived |
|
Unfunded Commitment | Derived |
|
ws unfunded commitment | Derived | This field is work variable strictly used to derive Unfunded Commitment.
|
Net Cash Local | Derived |
|
Net Cash Base | Derived |
|
Return of Capital Local | Derived |
|
Return of Capital Base | Derived |
|
Income Local | Direct |
|
Income Base | Direct |
|
Expense Local | Direct |
|
Expense Base | Direct |
|
Gain/Loss Local | Direct |
|
Gain/Loss Base | Direct |
|
Â