Type

Read/write

Author

Availability

Data provider

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 values a fund by calculating GAV, NAV and other pricing data.

NAV is GAV minus any accrued fees. You can retrieve fee accruals by joining this provider to the Lusid.Fund.ValuationPointData.Fee provider.

See also: Lusid.Fund, Lusid.Fund.ValuationPoint.Writer

Basic usage

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 example select ^ 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 use the EndDate parameter to value a fund at an arbitrary point in time. Note no data is persisted.

select * from Lusid.Fund.ValuationPointData
where FundScope = 'Growth'
and FundCode = 'Equities'
and EndDate = #2024-06-13 17:00:00#
;

Example 2: Publish an official fund valuation

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. See how to finalise and persist data in LUSID.

select * from Lusid.Fund.ValuationPointData
where FundScope = 'Growth'
and FundCode = 'Equities'
and DiaryEntryCode = '13June2024-5pm-asAt7pm'
;

Example 3: Retrieve fee accruals

You must specify the same EndDate or DiaryEntryCode for this provider and for Lusid.Fund.ValuationPointData.Fee in order to retrieve the correct fee accruals.

select
    d.*,
    f.Amount, f.Code
from
    Lusid.Fund.ValuationPointData d
    inner 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.EndDate = #2024-06-13 17:00:00#
    and f.EndDate = #2024-06-13 17:00:00#
;