Data API Overview¶
The Graphene Data Management API exposes a gRPC interface to enable defining, storing, and maintaining financial structures over time. Along with ledger input, the Data API provides the other half of the initial input that Graphene requires to perform analytics.
The data model also provides an abstraction over the internal Graphene financial model, making it convenient to connect together user-defined structures and later reference these structures in requests for financial analysis to be performed.
Features¶
schema-free semi-structured storage
version tracking over time
support for user-defined financial modelling components (see Templates and Schemas)
The data model used by Graphene’s API is decoupled from Analyze Re’s Financial Model engine as its uses go beyond the capabilities of the Financial Model. It is flexible enough to enable users to capture the most accurate representation of their business model. On a fundamental level, the model is implemented as a graph of interconnected entities and this representation will be transformed into the Analyze Re internal model when financial modelling is initiated.
Data Model¶
The user-facing data model consists of only three different types of objects. Each of these objects supports a “User Data” field which is provided as a generic schema-free JSON-format data field. Any useful data can be captured here, including information that may be unnecessary for financial modelling, but that may be useful for synchronizing with other systems, or helping users to recognize objects they have stored.
Nodes¶
Nodes are abstract entities that may be connected to each other through Links. No restriction is made on the number of Nodes that may be connected to each other. Since Links have an implied direction, a Node may have many incoming Links and many outgoing Links. Users may not construct collections of Nodes and Links with circular dependencies.
Links¶
Links connect exactly two nodes. Each link designates a source and destination. Links are otherwise identical to Nodes in the support they have for general data and version tracking.
Networks¶
Networks are an optionally used component to help with organization. It is possible to use Graphene without explicitly defining a network, although to perform financial modelling, a more complex dynamically specified query must be provided.
A Network is conceptually a collection of Links and Nodes. It may include any subset of Nodes and Links. This provides a convenient means of referencing a specific, unchanging financial structure (which itself may be part of a larger financial structure). Detailed use cases are described in supplementary documentation.
Networks without any Links or Nodes are valid.
Example¶
In the below structure, there are two sources of ground up loss, two financial structures (Catastrophe Excess of Loss) and they are connected to one Portfolio. This makes five total Nodes and four total links (directed from top to bottom in the below diagram).
Loss Data Loss Data
| |
CatXL CatXL
\ /
Portfolio
Each of the Nodes and Links likely contains additional information about the business model being represented. For example, one of the loss nodes might look like this:
{
"_schema": "LossSet_1.0",
"cedant": "Company Y",
"region": "Eastern US",
"internal_reference": "ABC123",
}
Likewise, one of the CatXL nodes might look like this:
{
"_schema": "CatXL_1.0",
"internal_reference": "XYZ456",
"financial_terms": {
"attachment": "10M",
"limit": "2M",
"reinstatements": "1",
"reinstatement_premium": "50K",
}
}
There is no Network constructed here, but one might construct a network that references only the first ground up loss and CatXL layer and request that Graphene perform various analyses on that. Or analysis on the entire portfolio may be requested. Details of the analysis API interactions are provided in supplementary documentation.