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
EndDate
parameter.A pre-defined valuation point using the
DiaryEntryCode
parameter.
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'
;