Type | Read/write | Author | Availability |
|---|---|---|---|
Read | FINBOURNE | Provided with LUSID |
Providing you have sufficient access control permissions, the Lusid.Fund.ValuationPointData provider enables you to write a Luminesce SQL query that retrieves a fund valuation at a point in time.
This provider retrieves a fund-level summary of GAV and NAV only. You can join this provider to others to retrieve more information:
Join to Lusid.Fund.ValuationPointData.Breakdown to retrieve a fund-level breakdown of dealing, P&L and backout activity.
Join to Lusid.Fund.ValuationPointData.Fee to retrieve fund-level fee accruals. See an example.
Join to Lusid.Fund.ValuationPointData.ShareClass to retrieve a share class-level summary.
Join to Lusid.Fund.ValuationPointData.ShareClass.Breakdown to retrieve a share class-level breakdown of dealing, P&L and backout activity.
Join to
Lusid.Fund.ValuationPointData.ShareClass.Fee(coming soon) to retrieve share class-level fee accruals.
Basic usage
You must specify an end date that is either:
An arbitrary datetime using the
EndDateparameter.A pre-defined valuation point using the
DiaryEntryCodeparameter.
select * from Lusid.Fund.ValuationPointData
where FundScope = <scope>
and FundCode = <code>
and <date-or-diary-entry>
;Query parameters
Lusid.Fund.ValuationPointData has parameters that enable you to filter or refine a query.
To list available parameters, their data types, default values, and an explanation for each, run the following query using a suitable tool:
select FieldName, DataType, ParamDefaultValue, Description from Sys.Field where TableName = 'Lusid.Fund.ValuationPointData' and FieldType = 'Parameter';Data fields
By default, Lusid.Fund.ValuationPointData returns a table of data populated with particular fields (columns). You can return a subset of these fields.
To list fields available to return, their data types, whether fields are considered 'main', and an explanation for each, run the following query using a suitable tool:
select FieldName, DataType, IsMain, IsPrimaryKey, SampleValues, Description from Sys.Field where TableName = 'Lusid.Fund.ValuationPointData' and FieldType = 'Column';Note: Fields marked 'main' are returned by queries that select a
^character, for exampleselect ^ from Lusid.Fund.ValuationPointData.
Examples
Note: For more example Luminesce SQL queries, visit our Github repo.
Example 1: Generate an ad-hoc fund valuation
You can value a fund at an arbitrary point in time using the EndDate parameter. Note no data is persisted using this method.
select * from Lusid.Fund.ValuationPointData
where FundScope = 'Growth'
and FundCode = 'Equities'
and EndDate = #2024-06-13 17:00:00#
;Example 2: Publish and persist an official fund valuation at a point in time
This operation is part of a workflow with checks and balances, not all of which is possible using Luminesce.
You must first create an accounting diary entry of type ValuationPoint using the Lusid.Fund.ValuationPoint.Writer provider. You then use the DiaryEntryCode parameter to generate an estimate for the fund value at that point in time.
select * from Lusid.Fund.ValuationPointData
where FundScope = 'Growth'
and FundCode = 'Equities'
and DiaryEntryCode = '13June2024-5pm-asAt7pm'
;Note the remainder of this operation to finalise and persist data must be performed using LUSID.
Example 3: Additionally retrieve fund-level fee accruals
You can join this provider to Lusid.Fund.ValuationPointData.Fee in order to additionally retrieve fund-level fee accruals. Note you must specify the same EndDate or DiaryEntryCode for both providers.
select
d.*,
f.Amount, f.Code
from
Lusid.Fund.ValuationPointData d
left join Lusid.Fund.ValuationPointData.Fee f
on d.FundScope = f.FundScope
and d.FundCode = f.FundCode
where
d.FundScope = 'Growth'
and d.FundCode = 'Equities'
and d.DiaryEntryCode = '13June2024-5pm-asAt7pm'
and f.DiaryEntryCode = '13June2024-5pm-asAt7pm'
;