# US 11,443,390 B1 · Systems and user interfaces for dynamic and interactive table generation and editing based on automatic traversal of complex data structures and incorporation of metadata mapped to the complex data structures

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,443,390 B1
- Document ID: US11443390B1
- Status: Granted
- Kind: B1
- Application number: 15/343,766
- Filed: 2016-11-04
- Granted: 2022-09-13
- Earliest claimed: 2015-11-06
- Assignees: Addepar, Inc.
- Applicants: Addepar, Inc.
- Inventors: Maurizio Caló Caligaris; Ian Gillis; Benjamin J. Cohen
- Web page: https://patentgrep.com/patent/US11443390B1

## CPC

- G06Q 40/125: {Finance or payroll}
- G06F 3/0481: based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F 16/00: Information retrieval; Database structures therefor; File system structures therefor
- G06F 16/2455: Query execution
- G06F 16/9024: {Graphs; Linked lists (G06F16/9027 takes precedence)}
- G06F 3/0484: for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Various systems and methods are provided for accessing and traversing one or more complex data structures and generating a functional user interface that can enable non-technical users to quickly and dynamically generate detailed reports (including tables, charts, and/or the like) of complex data. The user interfaces are interactive such that a user may make selections, provide inputs, and/or manipulate outputs. In response to various user inputs, the system automatically calculates applicable time intervals, accesses and traverses complex data structures (including, for example, a mathematical graph having nodes and edges), calculates complex data based on the traversals and the calculated time intervals, displays the calculated complex data to the user, and/or enters the calculated complex data into the tables, charts, and/or the like. The user interfaces may be automatically updated based on a context selected by the user.

## Claims

### Claim 1

A computing system comprising:
one or more computer readable storage mediums configured to store:
a complex mathematical graph comprising nodes and edges, each of the nodes storing information associated with at least one respective data object, each of the edges storing a relationship between two of the nodes; and
a database separate from the complex mathematical graph, the database including a plurality of sets of transaction tags, wherein transaction tags of the sets of transaction tags comprise user-defined tags, wherein the sets of transaction tags are indexed in the database based on unique edge identifiers, and wherein each edge of the complex mathematical graph is uniquely identified by a different unique edge identifier; and
one or more computer processors configured to execute program instructions 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 respective single transaction as determined from the complex mathematical graph, wherein the respective single transactions comprise individual financial transactions, and wherein at least one column comprises at least one of: a transaction date, an owner, a security, a type, a value, an account number, an account name, an asset class, a client, or a comment, of the individual financial transactions; and
a column selection element including a listing of types of columns, wherein the types of columns include a transaction tag column type;
receive, via the column selection element of the interactive user interface, a selection of the transaction tag column type; and
in response to receiving the selection of the transaction tag column type:
add a transaction tag column to the table; and
for each row of the plurality of rows of the table:
by reference to the complex mathematical graph, determine one or more edges of the complex mathematical graph associated with the row of the table based on the transaction corresponding to that row;
by reference to the complex mathematical graph, determine all unique edge identifiers associated with the determined one or more edges;
by reference to the database, determine all transaction tags in the database that are indexed to the determined unique edge identifiers, wherein the determined transactions tags together comprise a set of transaction tags; and
automatically update the table to insert the set of transaction tags into a cell of the row of the table corresponding to the transaction tag column.

### Claim 2 (depends on 1)

The computing system of claim 1, wherein the unique edge identifier is alphanumeric.

### Claim 3 (depends on 1)

The computing system of claim 1, wherein the unique edge identifier is procedurally generated based on a set of attributes.

### Claim 4 (depends on 1)

The computing system of claim 1, wherein the sets of transaction tags are stored in the database as key-value pairs.

### Claim 5 (depends on 1)

The computing system of claim 1, wherein one or more computer processors are configured to execute program instructions to further cause the computing system to:
receive a first one or more user inputs to the interactive user interface selecting to edit at least a first transaction included in the table;
in response to the first one or more user inputs, update the interactive user interface to include a user interface portion listing one or more properties associated with the first transaction including at least a first transaction tag associated with the first transaction;
receive a second one or more user inputs to the interactive user interface editing the first transaction tag; and
in response to the second one or more user inputs, update the table based on the edited first transaction tag.

### Claim 6

A computing system comprising:
one or more computer readable storage mediums configured to store:
a complex mathematical graph comprising nodes and edges, each of the nodes storing information associated with at least one respective data object, each of the edges storing a relationship between two of the nodes; and
a database separate from the complex mathematical graph, the database including a plurality of sets of transaction tags, wherein transaction tags of the sets of transaction tags comprise user-defined tags, wherein the sets of transaction tags are indexed in the database based on unique edge identifiers, and wherein each edge of the complex mathematical graph is uniquely identified by a different unique edge identifier; and
one or more computer processors configured to execute program instructions 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 respective single transaction as determined from the complex mathematical graph, wherein the respective single transactions comprise individual financial transactions, and wherein at least one column comprises at least one of: a transaction date, an owner, a security, a type, a value, an account number, an account name, an asset class, a client, or a comment, of the individual financial transactions; and
a filter selection element including a listing of types of filters, wherein the types of filters include a transaction tag filter type;
receive, via the filter selection element of the interactive user interface, a selection of a transaction tag filter; and
in response to receiving the selection of the transaction tag filter:
by reference to the database, access the database to compare each transaction tag in the plurality of sets of transaction tags in the database to the selected transaction tag filter to identify any matching transaction tags;
by reference to the database, determine one or more unique edge identifiers the matching transaction tags are indexed to in the database;
by reference to the complex mathematical graph, determine a set of edges of the complex mathematical graph based on the one or more unique edge identifiers;
by reference to the complex mathematical graph and the determined set of edges, determine a set of transactions; and
automatically update and filter the table to the determined set of transactions, wherein each transaction corresponds to a row of the table.

### Claim 7 (depends on 6)

The computing system of claim 6, wherein each of the one or more unique edge identifiers is alphanumeric.

### Claim 8 (depends on 6)

The computing system of claim 6, wherein each of the one or more unique edge identifiers is procedurally generated based on a set of attributes.

### Claim 9 (depends on 6)

The computing system of claim 6, wherein the sets of transaction tags are stored in the database as key-value pairs.

### Claim 10 (depends on 6)

The computing system of claim 6, wherein one or more computer processors are configured to execute program instructions to further cause the computing system to:
receive a first one or more user inputs to the interactive user interface selecting to edit at least a first transaction included in the table;
in response to the first one or more user inputs, update the interactive user interface to include a user interface portion listing one or more properties associated with the first transaction including at least a first transaction tag associated with the first transaction;
receive a second one or more user inputs to the interactive user interface editing the first transaction tag; and
in response to the second one or more user inputs, update the table based on the edited first transaction tag.

### Claim 11

A computer-implemented method comprising:
communicating with one or more computer readable storage mediums configured to store:
a complex mathematical graph comprising nodes and edges, each of the nodes storing information associated with at least one respective data object, each of the edges storing a relationship between two of the nodes; and
a database separate from the complex mathematical graph, the database including a plurality of sets of transaction tags, wherein transaction tags of the sets of transaction tags comprise user-defined tags, wherein the sets of transaction tags are indexed in the database based on unique edge identifiers, and wherein each edge of the complex mathematical graph is uniquely identified by a different unique edge identifier; and
by one or more computer processors configured to execute program instructions:
generating 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 respective single transaction as determined from the complex mathematical graph, wherein the respective single transactions comprise individual financial transactions, and wherein at least one column comprises at least one of: a transaction date, an owner, a security, a type, a value, an account number, an account name, an asset class, a client, or a comment, of the individual financial transactions; and
a column selection element including a listing of types of columns, wherein the types of columns include a transaction tag column type;
receiving, via the column selection element of the interactive user interface, a selection of the transaction tag column type; and
in response to receiving the selection of the transaction tag column type:
adding a transaction tag column to the table; and
for each row of the plurality of rows of the table:
by reference to the complex mathematical graph, determining one or more edges of the complex mathematical graph associated with the row of the table based on the transaction corresponding to that row;
by reference to the complex mathematical graph, determining all unique edge identifiers associated with the determined one or more edges;
by reference to the database, determining all transaction tags in the database that are indexed to the determined unique edge identifiers, wherein the determined transactions tags together comprise a set of transaction tags; and
automatically updating the table to insert the set of transaction tags into a cell of the row of the table corresponding to the transaction tag column.

### Claim 12 (depends on 11)

The computer-implemented method of claim 11, wherein the unique edge identifier is alphanumeric.

### Claim 13 (depends on 11)

The computer-implemented method of claim 11, wherein the unique edge identifier is procedurally generated based on a set of attributes.

### Claim 14 (depends on 11)

The computer-implemented method of claim 11, wherein the sets of transaction tags are stored in the database as key-value pairs.

### Claim 15 (depends on 11)

The computer-implemented method of claim 11 further comprising:
by the one or more computer processors configured to execute program instructions:
receiving a first one or more user inputs to the interactive user interface selecting to edit at least a first transaction included in the table;
in response to the first one or more user inputs, updating the interactive user interface to include a user interface portion listing one or more properties associated with the first transaction including at least a first transaction tag associated with the first transaction;
receiving a second one or more user inputs to the interactive user interface editing the first transaction tag; and
in response to the second one or more user inputs, updating the table based on the edited first transaction tag.

### Claim 16

A computer-implemented method comprising:
communicating with one or more computer readable storage mediums configured to store:
a complex mathematical graph comprising nodes and edges, each of the nodes storing information associated with at least one respective data object, each of the edges storing a relationship between two of the nodes; and
a database separate from the complex mathematical graph, the database including a plurality of sets of transaction tags, wherein transaction tags of the sets of transaction tags comprise user-defined tags, wherein the sets of transaction tags are indexed in the database based on unique edge identifiers, and wherein each edge of the complex mathematical graph is uniquely identified by a different unique edge identifier; and
by one or more computer processors configured to execute program instructions:
generating 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 respective single transaction as determined from the complex mathematical graph, wherein the respective single transactions comprise individual financial transactions, and wherein at least one column comprises at least one of: a transaction date, an owner, a security, a type, a value, an account number, an account name, an asset class, a client, or a comment, of the individual financial transactions; and
a filter selection element including a listing of types of filters, wherein the types of filters include a transaction tag filter type;
receiving, via the filter selection element of the interactive user interface, a selection of a transaction tag filter; and
in response to receiving the selection of the transaction tag filter:
by reference to the database, accessing the database to compare each transaction tag in the plurality of sets of transaction tags in the database to the selected transaction tag filter to identify any matching transaction tags;
by reference to the database, determining one or more unique edge identifiers the matching transaction tags are indexed to in the database;
by reference to the complex mathematical graph, determining a set of edges of the complex mathematical graph based on the one or more unique edge identifiers;
by reference to the complex mathematical graph and the determined set of edges, determining a set of transactions; and
automatically updating and filtering the table to the determined set of transactions, wherein each transaction corresponds to a row of the table.

### Claim 17 (depends on 16)

The computer-implemented method of claim 16, wherein each of the one or more unique edge identifiers is alphanumeric.

### Claim 18 (depends on 16)

The computer-implemented method of claim 16, wherein each of the one or more unique edge identifiers is procedurally generated based on a set of attributes.

### Claim 19 (depends on 16)

The computer-implemented method of claim 16, wherein the sets of transaction tags are stored in the database as key-value pairs.
