IP Library › Granted Patent US 12,572,596
Granted Patent B1
US 12,572,596 · App. 18/925,596 · Granted Mar 10, 2026

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

Inventors: Maurizio Caló Caligaris (New York, NY); Ian Gillis (New York, NY); Benjamin J. Cohen (New York, NY)
Assignee: Addepar, Inc.
G06F16/9024G06F16/00G06F16/2455G06F3/0484G06Q40/125
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,572,596
App. No.
18/925,596
Filed
Oct 24, 2024
Granted
Mar 10, 2026
Kind
B1
Examiner
WOO, ISAAC M
Art Unit
2163
USPC
705/35
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 (80)

1 . A computing system comprising:

one or more computer readable storage mediums configured to store program instructions; and

one or more computer processors configured to execute the program instructions to cause the computing system to:

generate user interface data usable for rendering an interactive user interface on a computing device, the interactive user interface including:

a dynamically generated table including rows and columns, wherein the rows correspond to respective individual 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 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 dynamically generated table; and

for each row of the rows of the dynamically generated table:

by reference to a database including a plurality of transaction tags, determine all transaction tags in the database that are indexed to or associated with the transaction corresponding to the row of the dynamically generated table, wherein the determined transactions tags together comprise a set of transaction tags; and

automatically update the dynamically generated table to insert the set of transaction tags into a cell of the row of the dynamically generated table corresponding to the transaction tag column.

2 . The computing system of claim 1 , wherein the one or more computer readable storage mediums configured to store are further configured to store:

the database including the plurality of transaction tags, wherein transaction tags of the plurality of transaction tags comprise user-defined tags, wherein the plurality of transaction tags are indexed in the database based on unique edge identifiers associated with a mathematical graph comprising nodes and edges, and wherein each edge of the mathematical graph is uniquely identified by a different unique edge identifier.

3 . The computing system of claim 2 , wherein the unique edge identifiers are alphanumeric.

4 . The computing system of claim 2 , wherein the unique edge identifiers are procedurally generated based on a set of attributes.

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

6 . The computing system of claim 1 , wherein one or more computer processors are configured to execute the 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 dynamically generated 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 dynamically generated table based on the edited first transaction tag.

7 . A computing system comprising:

one or more computer readable storage mediums configured to store program instructions; and

one or more computer processors configured to execute the program instructions to cause the computing system to:

generate user interface data usable for rendering an interactive user interface on a computing device, the interactive user interface including:

a dynamically generated table including rows and columns, wherein the rows correspond to respective individual 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 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:

access a database including a plurality of transaction tags to compare each transaction tag in the plurality of transaction tags to the selected transaction tag filter to identify any matching transaction tags;

determine a set of transactions associated with the matching transaction tags; and

automatically update and filter the dynamically generated table to the determined set of transactions, wherein each transaction corresponds to a row of the dynamically generated table.

8 . The computing system of claim 7 , wherein the one or more computer readable storage mediums configured to store are further configured to store:

the database including the plurality of transaction tags, wherein transaction tags of the plurality of transaction tags comprise user-defined tags, wherein the plurality of transaction tags are indexed in the database based on unique edge identifiers associated with a mathematical graph comprising nodes and edges, and wherein each edge of the mathematical graph is uniquely identified by a different unique edge identifier.

9 . The computing system of claim 8 , wherein determining the set of transactions associated with the matching transaction tags comprises:

determining one or more unique edge identifiers the matching transaction tags are indexed to in the database.

10 . The computing system of claim 8 , wherein the unique edge identifiers are alphanumeric.

11 . The computing system of claim 8 , wherein the unique edge identifiers are procedurally generated based on a set of attributes.

12 . The computing system of claim 7 , wherein the plurality of transaction tags is stored in the database as key-value pairs.

13 . The computing system of claim 7 , wherein one or more computer processors are configured to execute the 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 dynamically generated 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 dynamically generated table based on the edited first transaction tag.

14 . A computer-implemented method comprising:

by one or more computer processors configured to execute program instructions:

generating user interface data usable for rendering an interactive user interface on a computing device, the interactive user interface including:

a dynamically generated table including rows and columns, wherein the rows correspond to respective individual 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 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 dynamically generated table; and

for each row of the rows of the dynamically generated table:

by reference to a database including a plurality of transaction tags, determining all transaction tags in the database that are indexed to or associated with the transaction corresponding to the row of the dynamically generated table, wherein the determined transactions tags together comprise a set of transaction tags; and

automatically updating the dynamically generated table to insert the set of transaction tags into a cell of the row of the dynamically generated table corresponding to the transaction tag column.

15 . The computer-implemented method of claim 14 , wherein the plurality of transaction tags is stored in the database as key-value pairs.

16 . The computer-implemented method of claim 14 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 dynamically generated 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 dynamically generated table based on the edited first transaction tag.

17 . A computer-implemented method comprising:

by one or more computer processors configured to execute program instructions:

generating user interface data usable for rendering an interactive user interface on a computing device, the interactive user interface including:

a dynamically generated table including rows and columns, wherein the rows correspond to respective individual 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 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:

accessing a database including a plurality of transaction tags to compare each transaction tag in the plurality of transaction tags to the selected transaction tag filter to identify any matching transaction tags;

determining a set of transactions associated with the matching transaction tags; and

automatically updating and filter the dynamically generated table to the determined set of transactions, wherein each transaction corresponds to a row of the dynamically generated table.

18 . The computer-implemented method of claim 17 , wherein the plurality of transaction tags is stored in the database as key-value pairs.

19 . The computer-implemented method of claim 17 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 dynamically generated 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 dynamically generated table based on the edited first transaction tag.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2024
From: CALIGARIS, MAURIZIO CALÓ; GILLIS, IAN; COHEN, BENJAMIN J.
To: ADDEPAR, INC.
Reel/Frame 069029/0516 →
Continuity (4)
Continuation 17813421 · Jul 19, 2022
Continuation 15343766 · Nov 4, 2016
Provisional Application 62271966 · Dec 28, 2015
Provisional Application 62252335 · Nov 6, 2015
References Cited (115)
US 5704371A · Shepard · 1998 [cited by applicant]
US 6865567B1 · Oommen et al. · 2005 [cited by applicant]
US 7046248B1 · Perttunen · 2006 [cited by applicant]
US 7299223B2 · Namait et al. · 2007 [cited by applicant]
US 7395270B2 · Lim et al. · 2008 [cited by applicant]
US 7533057B2 · Whipple et al. · 2009 [cited by applicant]
US 7533118B2 · Chaudri · 2009 [cited by applicant]
US 7644088B2 · Fawcett et al. · 2010 [cited by applicant]
US 7769682B2 · Moudgal · 2010 [cited by applicant]
US 7827082B1 · Shanmugan · 2010 [cited by applicant]
US 7836394B2 · Linder · 2010 [cited by applicant]
US 7873557B2 · Guidotti et al. · 2011 [cited by applicant]
US 7949937B2 · Wu · 2011 [cited by applicant]
US 7966234B1 · Merves et al. · 2011 [cited by applicant]
US 7996290B2 · Dweck et al. · 2011 [cited by applicant]
US 8117187B2 · Mostl · 2012 [cited by applicant]
US 8249962B1 · Stephens et al. · 2012 [cited by applicant]
US 8271519B2 · Young · 2012 [cited by applicant]
US 8306891B1 · Findlay, III et al. · 2012 [cited by applicant]
US 8458764B2 · Karjoth et al. · 2013 [cited by applicant]
US 8819763B1 · Cheung et al. · 2014 [cited by applicant]
US 9015073B2 · Mirra et al. · 2015 [cited by applicant]
US 9087361B2 · Mirra et al. · 2015 [cited by applicant]
US 9105062B2 · Posch et al. · 2015 [cited by applicant]
US 9105064B2 · Posch et al. · 2015 [cited by applicant]
US 9218502B1 · Doermann et al. · 2015 [cited by applicant]
US 9244899B1 · Greenbaum · 2016 [cited by applicant]
US 9424333B1 · Bisignani et al. · 2016 [cited by applicant]
US 9485259B1 · Doermann et al. · 2016 [cited by applicant]
US 9760544B2 · Mirra et al. · 2017 [cited by applicant]
US 9916297B1 · Greenbaum · 2018 [cited by applicant]
US 9935983B1 · Doermann et al. · 2018 [cited by applicant]
US 10013717B2 · Posch et al. · 2018 [cited by applicant]
US 10331778B1 · Greenbaum · 2019 [cited by applicant]
US 10372807B1 · Greenbaul et al. · 2019 [cited by applicant]
US 10430498B2 · Mirra et al. · 2019 [cited by applicant]
US 10565298B1 · Bisignani et al. · 2020 [cited by applicant]
US 10686840B1 · Doermann et al. · 2020 [cited by applicant]
US 10732810B1 · Cohen et al. · 2020 [cited by applicant]
US 10956665B1 · Greenbaum et al. · 2021 [cited by applicant]
US 11055478B1 · Bisignani et al. · 2021 [cited by applicant]
US 11120502B2 · Posch et al. · 2021 [cited by applicant]
US 11163945B1 · Greenbaum · 2021 [cited by applicant]
US 11501374B1 · Cohen et al. · 2022 [cited by applicant]
US 11776058B2 · Posch et al. · 2023 [cited by applicant]
US 12153629B1 · Caligaris · 2024 [cited by applicant]
US 20020042764A1 · Gardner et al. · 2002 [cited by applicant]
US 20020165724A1 · Blankesteijn · 2002 [cited by examiner]
US 20030174165A1 · Barney · 2003 [cited by applicant]
US 20040236655A1 · Scumniotales et al. · 2004 [cited by applicant]
US 20050187852A1 · Hwang · 2005 [cited by applicant]
US 20050222929A1 · Steier et al. · 2005 [cited by applicant]
US 20050262047A1 · Wu · 2005 [cited by applicant]
US 20060041539A1 · Matchett · 2006 [cited by applicant]
US 20060146719A1 · Sobek et al. · 2006 [cited by applicant]
US 20060212452A1 · Cornacchia · 2006 [cited by applicant]
US 20070010071A1 · Cuscovitch et al. · 2007 [cited by applicant]
US 20080133577A1 · Noonan et al. · 2008 [cited by applicant]
US 20080139191A1 · Melnyk et al. · 2008 [cited by applicant]
US 20080270316A1 · Guidotti et al. · 2008 [cited by applicant]
US 20090048897A1 · Parikshya et al. · 2009 [cited by applicant]
US 20090164387A1 · Armstrong et al. · 2009 [cited by applicant]
US 20090164943A1 · Ryan et al. · 2009 [cited by applicant]
US 20090249359A1 · Caunter et al. · 2009 [cited by applicant]
US 20100083358A1 · Govindarajan et al. · 2010 [cited by applicant]
US 20100100802A1 · Delaporte · 2010 [cited by applicant]
US 20110264467A1 · Green · 2011 [cited by applicant]
US 20110283242A1 · Chew et al. · 2011 [cited by applicant]
US 20110302221A1 · Tobin et al. · 2011 [cited by applicant]
US 20120005242A1 · Feng et al. · 2012 [cited by applicant]
US 20120089432A1 · Podgurny · 2012 [cited by applicant]
US 20120136804A1 · Lucia et al. · 2012 [cited by applicant]
US 20120182882A1 · Chrapko et al. · 2012 [cited by applicant]
US 20130073939A1 · Honsowetz · 2013 [cited by applicant]
US 20130073940A1 · Honsowetz · 2013 [cited by applicant]
US 20130212505A1 · Herold · 2013 [cited by applicant]
US 20130332387A1 · Mirra et al. · 2013 [cited by applicant]
US 20130332862A1 · Mirra et al. · 2013 [cited by applicant]
US 20140172745A1 · Posch et al. · 2014 [cited by applicant]
US 20140172749A1 · Posch et al. · 2014 [cited by applicant]
US 20140172810A1 · Paradies et al. · 2014 [cited by applicant]
US 20140250375A1 · Malik · 2014 [cited by applicant]
US 20150026075A1 · Mondri et al. · 2015 [cited by applicant]
US 20150112998A1 · Shankar et al. · 2015 [cited by applicant]
US 20150186338A1 · Mirra et al. · 2015 [cited by applicant]
US 20150262309A1 · Arora et al. · 2015 [cited by applicant]
US 20150269211A1 · da Silva et al. · 2015 [cited by applicant]
US 20150302058A1 · Li et al. · 2015 [cited by applicant]
US 20160117349A1 · Segaran · 2016 [cited by applicant]
US 20180024970A1 · Mirra et al. · 2018 [cited by applicant]
US 20180276758A1 · Posch et al. · 2018 [cited by applicant]
US 20210407011A1 · Posch et al. · 2021 [cited by applicant]
CA 2817652 · 2013 [cited by applicant]
CA 2817660 · 2013 [cited by applicant]
CA 2834265 · 2014 [cited by applicant]
EP 1862955 · 2007 [cited by applicant]
EP 2439691 · 2012 [cited by applicant]
EP 2672446 · 2013 [cited by applicant]
EP 2672447 · 2013 [cited by applicant]
EP 2743881 · 2014 [cited by applicant]
HK 1193898 · 2014 [cited by applicant]
JP 2002197277 · 2002 [cited by applicant]
SG 195517 · 2013 [cited by applicant]
SG 195518 · 2015 [cited by applicant]
WO WO2005036364 · 2005 [cited by applicant]
U.S. Pat. No. 11,443,390, 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 … [cited by applicant]
U.S. Pat. No. 12,153,629, 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 … [cited by applicant]
Chakrabarti, D., & Faloustsos, C. (2006). Graph mining. ACM Computing Surveys, 38(1), 2. doi:http://doi.acm.org.10.1145/1132952.1132954 retrieved on Feb. 6, 2015. [cited by applicant]
Wagner et al., Assessing the Vulnerability of Supply Chain Using Graph Theory, 2010, International Journal of Production Economics 126, pp. 121-129. [cited by applicant]
Yang et al., Incremental Mining of Across-Stream Sequential Patterns in Multiple Data Streams, Mar. 2011, Journal of Computers, vol. 6, No. 3, pp. 449-457. [cited by applicant]
European Patent Office, “Extended Search Report” in application No. 13170954.5, dated Jan. 21, 2014, 6 pages. [cited by applicant]
European Patent Office, “Search Report” in application No. 13170952.9, dated Jan. 21, 2014, 6 pages. [cited by applicant]
European Patent Office, “Search Report” in application No. 13197286.1, dated Mar. 14, 2014, 5 pages. [cited by applicant]
Singapore, “Search and Examination Report” in application No. 201304379-9, dated Jan. 23, 2014. [cited by applicant]
Singapore, “Search and Examination Report” In application No. 201304378-1, dated Jul. 3, 2014. [cited by applicant]