A computing system configured to access one or more electronic data sources in response to inputs received via an interactive user interface in order to automatically calculate metrics based on a complex mathematical graph and insert the metrics into a dynamically generated table of the interactive user interface, the computing system comprising:
- one or more computer processors;
- and
- a computer readable storage medium configured to:
- store a complex mathematical graph comprising nodes and edges, each of the nodes storing information associated with at least one of an account, an individual, a legal entity, or a financial asset, each of the edges storing a relationship between two of the nodes, wherein a plurality of attributes is associated with each of the nodes and each of the edges;
- and
- store program instructions configured for execution by the computer processors in order to cause the computing system to:
- generate user interface data for rendering an interactive user interface on a computing device, the interactive user interface including:
- a dynamically generated table including rows and columns, wherein each of the rows corresponds to a financial asset and its associated node or a group of financial assets and its associated nodes, wherein each of the columns corresponds to a metric calculable with respect to each of the financial assets or groups of financial assets;
- and
- a context selection element including a listing of a plurality of perspectives from which the dynamically generated table may be automatically updated, each of the plurality of perspectives associated with a node of the complex mathematical graph;
- receive, via the interactive user interface, a selection of one of one of the plurality of perspectives;
- determine a node of the complex mathematical graph associated with the selected perspective;
- automatically traverse the complex mathematical graph from the determined node so as to enumerate paths within the complex mathematical graph that are associated with the determined node;
- for each enumerated path, determine any rows of the dynamically generated table associated with the enumerated path based on nodes commonly associated with the enumerated path and a row of the dynamically generated table;
- generate a bucketing tree comprising a plurality of value nodes corresponding to the rows of the dynamically generated table and associated with the respective enumerated paths determined to be associated with the rows;
- for each metric of the dynamically generated table:
- access a calculation graph associated with the metric, the calculation graph including at least one distributed calculation node and zero or more non-distributed calculation nodes, wherein each calculation node identifies computations and/or operations that are part of computing the metric;
- for each value node associated with respective paths:
- perform computations and/or operations identified in the calculation graph using information associated with the value node's respective paths to obtain a metric value for the metric, wherein for a particular distributed calculation node of the calculation graph, the computing system:
- determines subsets of the value node's respective paths;
- provides, to each of a plurality of distributed computing systems, information describing a particular subset and the particular distributed calculation node;
- receives, from each of the plurality of distributed computing systems, computation results;
- and
- aggregates the received computation results to obtain a final computation result for the particular distributed calculation node;
- and
- automatically update the dynamically generated table with the calculated metric values, wherein each of the calculated metric values is inserted into a cell of the table corresponding to the row associated with the value.