Private Markets Best Practices V17 R2.36+
Overview
This document applies to Eagle Accounting V17 R2.36 and above. Additional version-dependent functionality is noted with the initial release(s) it became available.
There is a large and growing category of assets that are traded in Private Markets. This includes Limited Partnerships (LPs), Private Equity (PE), Real Estate (RE)/Land Assets, and Infrastructure, among other Alternatives (Alts). These are collectively referred to as Private Markets in this document. The same functionality can also be used to model Private Debt/Private Credit, but coupons must be managed using miscellaneous income transactions.
Eagle Accounting has full support for all Private Markets lifecycle events and reporting the key data points using capital-based fund investment (CBFI) functionality: total commitment, funded commitment, unfunded commitment, capital calls, and recallable capital. These are the relationships between the fields:
Funded Commitment = Capital Calls - Recallable Capital + Funded Commitment Adjustments
Unfunded Commitment = Total Commitment - Capital Calls + Recallable Capital - Funded Commitment Adjustments
This can also be simplified to Unfunded Commitment = Total Commitment - Funded Commitment
Funded Commitment Adjustments are available starting in V17 R2.40. See Private Markets Best Practices V17 R2.36+ for details.
Entity Setup
In V17 R2.39 and above, Private Equity Price Source (18452) dictates the source used for Private Market positions with Processing Security Type (3931) = EQCBFI (Capital Based Fund Investment). This is beneficial when the same Private Market is held in multiple portfolios, as separate sources can be set up for each portfolio without affecting the valuation of other holdings.
Long Price Source (1282) is used pre-V17 R2.39 and the best practice is to set up a separate SMF for each entity holding the investment
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 Private Markets 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
Price Date Switch (9981) | Value At Cost - No Price Found = No | Value At Cost - No Price Found = Yes |
|---|---|---|
Actual | Market Value = 0.00 | Market Value = Cost |
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 |
Reference Data
Market Data
Private Markets are priced based on market value. Each position is held as a single unit, allowing market values to be applied directly to holdings. If the same Private Market is held in multiple portfolios, a different market value is typically required for each portfolio. The portfolio-level Private Equity Price Source (18452) can be used to accommodate these scenarios in V17 R2.39+. Entity-level price overrides can be used in earlier versions; for more information, see Manage Entity Price Overrides.
Pricing data is often not available until each fund statement is received. These statements include market values for the period end date and may be received on a delay. In these cases, Eagle recommends using estimated values for dates between the end of each statement period to smooth the valuation and performance returns. They are typically calculated based on the most recent available statement market value and any subsequent transaction activity. Eagle introduced functionality to do this in V17 R2.51 as described in Private Markets Valuation Rollforward Processing Notes. Another approach clients have taken, albeit less common, is to calculate estimated market values in line with the return of a benchmark.
Security Data
Private Market security master files (SMFs) are configured much like equities. They can be set up using Issue Viewer or Reference Data Center (RDC). Processing Security Type (3931) must be set to EQCBFI (Capital Based Fund Investment). Security Type (82) and Sub Security Type (1464) can be used to help further identify these investments as private equity, real estate, or other classes.
Issue Name (961)
Primary Asset ID (14) & Type (1432)
Processing Security Type =
EQCBFI (Capital Based Fund Investment)Price Multiplier (18) =
1.00Quantity Scale (19) =
1.00Issue Country (1418)
Asset Currency (85)
Settlement Currency (63)
Income Currency (1186)
Primary Exchange (17): must be populated if security will be priced with Pricing Center
Available in V17 R2.51
Investment Period End Date (38): expected end date of the investment period
You will not be able to enter valuations after this date unless you apply a panel overlay
Available in V17 R2.38+
Private Equity Benchmark (18559): entity benchmark for Calculate Kaplan-Schoar Public Market Equivalent (KS-PME)
Available in RDC in V17 R2.44+
Available in Issue Viewer and CSV messages in V17 R2.53+
Available in EagleML messages in EAGLEML_2025_05_01+
Real Estate
There are a number of additional fields in the SECURITYDBO.REAL_ESTATE table that can be used for reference and reporting purposes. These fields are not included in the core panels, but the tags can simply be added using panel overlays because they already exist on the ADDSECMASTER event.
Trade Processing
Private Market transactions can be processed manually through Book Trade or using messages (refer to the Automation section for details). Enter the appropriate entity, security identifier, and trade (35)/settle (37) dates and click Submit to query for the Private Market.
The pending trades functionality supports Private Market transactions in V17 R2.37+. If you track pending trade activity, you can set up rules that determine how Eagle Accounting handles automated and manual trade cancellations within the workflow. For general information about pending trades, see Manage Pending Trades.
In V17 R2.38+, if Investment Period End Date is populated on the SMF and is prior to Trade Date, a warning will fire at trade time. This will not prevent the transaction from processing. The WARN can be changed to an ERR to make trades fail in this scenario.
Initial Commitment
The first step is to specify the total commitment amount. This applies to any Private Market position when it is brought onto Eagle, whether through the primary or secondary market. Right-click the Private Market and select Open > Initial Commitment (V17 R2.46+) or Initial Funding (pre-V17 R2.46). Critical fields are described below.
Entity ID (1163)
Effective Date (35)
Settlement Date (37)
Event Type (55) =
LPOPENShares (40) =
1.00Commitment Amount (41): enter the total local amount of the commitment (must be positive)
Transaction Notes (56)
V26 R1.3 & Above: defaults to
INITIAL COMMITMENTValues can be added and changed using the
PEOPENTYPECode Category
V17 R2.46 - V26 R1.2:
INITIAL COMMITMENTPre-V17 R2.46:
Initial Commitment
Secondary Purchase
For purchases on the secondary market and during conversions, a portion of the investment may already be funded. This can be accommodated by populating additional fields on the Initial Commitment. The same process can also
V17 R2.46+
Cash Amount Local (50): a cash disbursement is generated for this amount
In releases prior to V17 R2.53, Funded Capital Local (18386) is set equal to this amount after booking the transaction
Cost Local (128): locked and defaulted to same value as Cash Amount Local
Capital Calls Local (18450): set to the accumulated capital call balance
Defaults to same value as Cash Amount Local
Available in V17 R2.53 and above
Recallable Capital Local (18390): set to the accumulated recallable capital balance
In V17 R2.53 and above, Funded Capital Local is calculated as Capital Calls Local - Recallable Capital Local after booking the transaction
Pre-V17 R2.46
Cost Local (50): same usage as Cash Amount Local described above
Funded Capital Local (18386) is set equal to this amount after booking the transaction
Settlement Currency (63): the currency in which cash will settle
Settlement Net Amount (64): unlocked only if Settlement Currency differs from Asset Currency
Commitment Adjustment
The total commitment can be changed after the position has been established. Right-click the Private Market and select Other > Commitment Adjustment (V17 R2.46+) or Commitment Adjustment/Capital Call (V17 R2.37 - R2.45) or Additional Funding/Capital Call (pre-V17 R2.37). Critical fields are described below.
Entity ID (1163)
Effective Date (35)
Settlement Date (37)
Event Type (55) =
LPCOMMITTransaction Name (1728) =
Commitment Adjustment(V17 R2.37+) orAdditional Commitment(pre-V17 R2.37)Select Lot (962): populated automatically after the entity and security information are entered
Commitment Adjustment Amount (41): enter a positive number to increase the total commitment, or a negative number to decrease it
Field was named Additional Commitment Amount prior to V17 R2.37
V17 R2.37+
Cash Amount Local (50): the amount entered here will generate a cash disbursement, increase the Funded Capital (18386), and decrease the Unfunded Commitment (18388)
Cost Local (128): locked and defaulted to same value as Cash Amount Local
Pre-V17 R2.37
Cost Local (50): same usage as Cash Amount Local described above
Cost Local (50):
Settlement Currency (63): dictates the currency in which cash will settle
Settlement Net Amount (64): becomes unlocked if Settlement Currency differs from Asset Currency
Transaction Notes (56): defaults to
COMMITMENT ADJUSTMENTValues can be added and changed using the
PECALLTYPECode Category
Capital Call
Capital calls (funding of the commitment) can include both capital investments and expenses/fees that impact the funded and unfunded commitments. Right-click the Private Market and select Other > Capital Call (V17 R2.46+) Commitment Adjustment/Capital Call (V17 R2.37 - R2.45) or Additional Funding/Capital Call (pre-V17 R2.37). Capital calls increase the funded commitment and decrease the unfunded. Negative capital calls can be entered in V26 R1.3 and above to support returns of excess capital, which decrease the funded commitment and increase the unfunded. Critical fields are described below.
Entity ID (1163)
Effective Date (35)
Settlement Date (37)
Event Type (55) =
LPCALLTransaction Name (1728) =
CallSelect Lot (962): populated automatically after the entity and security information are entered
V17 R2.37+
Cash Amount Local (50): enter the local amount of the capital call (must be positive), "in commitment" fees, and/or expense
A cash disbursement is created for positive values, receipt for negative values
Negative values can be entered in V26 R1.3 and above
This increases the Funded Capital (18386) and decreases the Unfunded Commitment (18388)
Expense Amount Local (11078): this offsets the impact to cost for expenses that affect the unfunded commitment, but do not hit cost
Expense Account Number (1826): specifies the ledger account to which the expense is posted using the
PEEXPENSECode CategoryOnly shown if Expense Amount Local is greater than zero
Defaults to
5004000450(LP EXPENSE)
Cost Local (128): calculated as Cash Amount Local - Expense Amount Local
Pre-V17 R2.37
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
This increases the Funded Capital (18386) and decreases the Unfunded Commitment (18388)
Settlement Currency (63): dictates the currency for cash settlement
Settlement Net Amount (64): becomes unlocked if Settlement Currency differs from Asset Currency
Transaction Notes (56): values can be added and changed using the
PECALLTYPECode CategoryOriginal Trade Ticket Number (761)
Batch Identifier (701): defaults to Original Trade Ticket Number for the purpose of batch canceling trades
Cash Distribution
There are two types of cash distributions:
Recallable: cash is paid out to investors, but can be either fully or partially recalled at a later date
Decreases the funded commitment and increases the unfunded commitment
Non-Recallable: cash is paid out to investors permanently
Does not affect the funded commitment or unfunded commitment
These can post as gain, income, and/or relief of cost
This transaction is also used to process expenses/fees that do not impact the funded and unfunded commitments, such as withholding tax. Right-click the Private Market and select Other > Cash Distribution (V17 R2.46+) or Capitalization/Cash Entry/Final Close (pre-V17 R2.46). Critical fields are described below.
Entity ID (1163)
Effective Date (35)
Settlement Date (37)
Event Type (55) =
LPCASHTransaction Name (1728) =
CashSelect Lot (962): populated automatically after the entity and security information are entered
Cash Amount Local (50): enter the local amount of the distribution
A positive value will create a receipt, while a negative value will create a disbursement
A negative value should be used to book any expenses/fees that do not affect the funded commitment, such as "out commitment" fees
Settlement Currency (63): dictates the currency in which cash will settle
Settlement Net Amount (64): becomes unlocked if Settlement Currency differs from Asset Currency
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
Income Account Number (1825): specifies the ledger account to which the income is posted using the
PEINCOMECode CategoryOnly shown if Income Amount Local is greater than zero
Defaults to
4003000450(LP INCOME)
Expense Amount Local (11078): added to Cash Amount Local for gain/loss calculation
Expense Account Number (1826): specifies the ledger account to which the expense is posted using the
PEEXPENSECode CategoryOnly shown if Expense Amount Local is greater than zero
Defaults to
5004000450(LP EXPENSE)
Cost Local (128): added to Cash Amount Local for gain/loss calculation
Affects the cost of the Private Market, 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
In V17 R.50 and above, this defaults to the inverse of Recallable Capital Local
Recallable Capital Local (18390): enter the recallable amount of the cash distribution
This amount decreases the Funded Capital (18386) and increases the Unfunded Commitment (18388)
Leave as zero for non-recallable cash distributions