Virtual Feeds
Introduction
Data can be loaded from an external source directly into system memory in cases where storing the data would lead to duplication. This is distinct from data feeds which load data into the Quintessence database.
How to create a virtual feed
Example 1 – Create a basket of entities from an external system
To create a virtual feed, click on the ‘Virtual Feeds’ button:
The virtual feeds tab opens and lists any existing virtual feeds:
To create a new virtual feed, click on the ‘New’ button:
Provide a name and description for the virtual feed:
If there are multiple virtual feeds that should be run in a specific order, then add a priority in descending order (0 runs first, then 1 etc.). The Custom Source is the source to query when retrieving the virtual feed information from within data functions. In this example, the source parameter value to query is ‘Entity Source’:
Example of a data function call:
Click on Import Template, select a file reader type, and browse to the external data that is to be loaded (note this data can be in a text file, Excel file, CSV file or in a SQL database). Click ‘Next’ and configure the file information, which in this example is an Excel file:
Click ‘Next’ for a Preview of the data:
Click ‘Next’ and ‘Finish’ to close the Wizard. Go to the ‘Transforms’ tab, right click on ‘Columns’ and add an Entity icon:
Click on the Entity icon, select the ‘Transform’ tab below, and add an ‘Entity’:
Configure the Entity as follows: Change ‘AllowCreation’ to ‘True’, Name = ‘Equities’ and click next to ‘CodeHierarchy’ (where the three dots are):
Select ‘Equities’ for Code, ‘JSE Code’ for Code Type and check ‘Lookup’ and ‘Create’:
Add another Entity. Change ‘AllowCreation’ to ‘True’, Name = ‘Basket’ and click next to ‘CodeHierarchy’ (where the three dots are):
Set Code to a static value ‘Equity Universe’, select ‘Basket Code’ for Code Type and check ‘Create’:
Add a Relationship:
Set the Name of the Relationship to ‘Constituents’, the EffectiveDate to a static date in the past (the relationship is perpetual), RelationshipType to ‘Constituent’ and SecondaryEntity to ‘Equities’.
Click on ‘Preview Configuration’ and browse to the input data file that was selected in the Import Wizard. Click ‘Preview and then go to the ‘Preview’ sub tab on the ‘Transforms’ tab. The data is listed:
When Quintessence starts, the virtual feed will run and load data into memory. To run the feed immediately, create a task and schedule.
To test the results, enter an equation in Excel as follows:

Example 2 – Map code types from an external system
If a company uses its own entity codes that are different to the code type stored in Quintessence, these codes can be mapped to their Quintessence equivalent at run time, without needing to import and store that information in Quintessence. Users can then request TimeSeries and other data using their own codes that they are familiar with.
Create a new Virtual Feed called ‘Map Company Codes’:
Import a file containing the data to map:
Configure the Entity Transform and click next to ‘CodeHierarchy’ (where the three dots are …):
It is in the CodeHierarchy that the mapping is configured. Add two codes from the source file. The first is the stock exchange code (in this example JSE) and can be looked up in Quintessence. The mapping code is the company code, which can be created on the fly:
When a user requests TimeSeries or other data that is stored in Quintessence against the stock exchange code, but specifies their company code, the mapping ensures that the correct data is returned, although the company code is not in the Quintessence database.
For example, in Excel, a function can request TimeSeries data for either ‘AGL’ (the stock exchange code stored in Quintessence) or ‘AGL001’ (the Company’s own code):