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

 

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 commitment

    • This 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 or TEMP 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

Method

Summary

Pros

Cons

Full History

Load the investment's full lifecycle using Eagle Accounting transactions

  • Enables analysis and reporting for the full history of the investment using all Eagle tools

  • Allows IRR performance calculations

  • Requires extensive historical data

  • Requires mapping historical activity to Eagle Accounting transactions

  • Must perform thorough reconciliation

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

  • Easy to execute

  • Requires minimal reconciliation

  • Does not allow historical accounting analysis and reporting

  • Requires historical performance returns to be loaded (if historical performance analysis is required)

  • Requires extensive security-level historical return data to generate IRR performance calculations

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:

  1. Market value loaded for current date

  2. Most recent market value available

  3. 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

  1. Open Web Panel Designer

  2. Navigate to eagle > star > trade > Capital Based Fund Investments and open Initial Funding

  3. Ensure you are in Overlay edit mode

  4. Scroll down to Transaction Notes

    1. Set Read-only column = Yes

    2. Scroll right and set Default value = Initial Commitment

  5. 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

  1. Open Web Panel Designer

  2. Navigate to eagle > star > trade > Capital Based Fund Investments and open Additional Funding/Capital Call

  3. Ensure you are in Overlay edit mode

  4. Scroll down to Additional Commitment Amount

    1. Scroll right and set Negative values allowed = 1

  5. Scroll down to Transaction Notes

    1. Set Read-only column = Yes

  6. Click the ...LISTBOX tab

    1. 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
    2. 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
  7. 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

  1. Open Add Code Category

    1. Set Code Category Name (1165) = PECASHTYPE

    2. Set Code Category Description (1166) = Private Equity Cash Type

  2. Click Submit

  3. Open Add Code Value

    1. Set Code Category Name (1165) = PECASHTYPE

    2. Right-click the row in the lower section of the screen and select Add Row(s)

    3. 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
  4. Click Submit

  5. Open Web Panel Designer

  6. Navigate to eagle > star > trade > Capital Based Fund Investments and open Capitalization/Cash Entry/Final Close

  7. Ensure you are in Overlay edit mode

  8. Click the ...LISTBOX tab

    1. Scroll down to/search for the Link ID of 35i

      1. Right-click the line shown below and select Comment Row

        35i E1 :>:30:;Effective date can not be greater than post date
    2. 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
  9. 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.

  1. Open Add Code Value

    1. Set Code Category Name (1165) = STAR_PERF_FLOW

    2. Set Code Value (1176) = LPCOMMIT

    3. Set Code Name (1177) = Positive

    4. Set System Control (1148) = 0

      1. You may need to show hidden fields depending on what tool you are using

  2. Click Submit

  3. Open Engine Manager

  4. Navigate to All Engines > Refresh Engines Cache

  5. 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

Field

Type

Details

Accounting Date

Direct

effective date (36)

Issue Name

Direct

issue name (961)

Transaction

Direct

reason (56), named Transaction Notes in the transaction screens

Total Commitment

Direct

original face (41)

Capital Call Local

Derived

IF Transaction = CAPITAL CALL THEN settle amt s * -1

Recallable Capital Local

Derived

IF Transaction = RECALLABLE CAPITAL OR Transaction = TEMP RETURN OF CAP THEN settle amt s

Unfunded Commitment

Derived

ws unfunded commitment + Recallable Capital Local

ws unfunded commitment

Derived

This field is work variable strictly used to derive Unfunded Commitment.

IF Entity ID !=NULL THEN Total Commitment + Capital Call Local

Net Cash Local

Derived

IF Transaction = CAPITAL CALL THEN settle amt s * -1

IF Transaction != CAPITAL CALL THEN settle amt s

Net Cash Base

Derived

IF Transaction = CAPITAL CALL THEN settle amt base * -1

IF Transaction != CAPITAL CALL THEN settle amt base

Return of Capital Local

Derived

IF Transaction = RECALLABLE CAPITAL OR Transaction = CASH DISTRIBUTION OR Transaction = TEMP RETURN OF CAP THEN cost delta l

Return of Capital Base

Derived

IF Transaction = RECALLABLE CAPITAL OR Transaction = CASH DISTRIBUTION OR Transaction = TEMP RETURN OF CAP THEN cost delta b

Income Local

Direct

lp income local (11076)

Income Base

Direct

lp income base (11077)

Expense Local

Direct

lp expense local (11078)

Expense Base

Direct

lp expense base (11079)

Gain/Loss Local

Direct

gain loss sec id l (171)

Gain/Loss Base

Direct

gain loss sec id b (175)

Â