US 12,393,632 B2
Dynamic determination of data
Kevin N. Jansz, Melbourne (AU)
Assigned to Coupa Software Incorporated, Foster City, CA (US)
Filed by COUPA SOFTWARE INCORPORATED, San Mateo, CA (US)
Filed on Jan. 19, 2022, as Appl. No. 17/579,379.
Claims priority of provisional application 63/295,556, filed on Dec. 31, 2021.
Prior Publication US 2023/0214424 A1, Jul. 6, 2023
Int. Cl. G06F 16/901 (2019.01); G06F 40/106 (2020.01); G06F 40/169 (2020.01); G06F 40/186 (2020.01)
CPC G06F 16/9024 (2019.01) [G06F 40/106 (2020.01); G06F 40/169 (2020.01); G06F 40/186 (2020.01)] 20 Claims
OG exemplary drawing
 
1. A computer-implemented method of automatically updating an object-based digitally stored contract model of an electronic contract in response to changes in data values upon which the contract model is based and connected to other electronic contracts via a series of rules, the method comprising:
using a server computer system, during a document editing session receiving an update to an attribute of the digitally stored contract model, the contract model having been created based on a digitally stored template that includes a drafting platform with a set of drafting rules and object-oriented programming, wherein the contract model is a data semantic representation of terms of the electronic contract including parties, term, termination provisions, payment and performance provisions, and risk allocation provisions, wherein the contract model includes contract metadata and represents the contract as data via a single contract object related to one or more contract documents, wherein a contract document includes identifier properties, text content, tables, schedules or appendices and the template has a document identifier, a number of documents section identifiers, a structured data identifier and or one or more logic identifiers and or one or more candidate edit identifiers, one or more editable input fields capable of being rendered in a graphical user interface and one or more automatically calculated fields, the template representing at least a portion of the electronic contract;
obtaining, from a digital data storage, model description data and a plurality of answer values, the model description data describing the contract model;
based on the model description data and the plurality of answer values, creating and storing in computer memory a graph including a graph data representation of the plurality of answer values and variables that are required in a body of the contract document, wherein nodes of the graph represent the plurality of answer values and the variables, and edges of the graph represent derivations, calculations, or dependencies;
based on the update to the attribute of the contract model, identifying and removing, from the graph data representation, one or more edges that are directed from derived or calculated first variables to second variables that the first variables had been declared as using;
based on the update to the attribute of the contract model, identifying and removing, from the graph data representation, one or more nodes corresponding respectively to one or more variables that are not directly referenceable by the contract document after the update to automatically update the digitally stored contract model of the electronic contract, wherein the contract metadata is updated corresponding to the removing of the one or more edges and the one or more nodes, wherein the updated contract metadata is copied into a JavaScript Object Notation (JSON) model;
performing a check-in process that verifies one or more pre-conditions associated with the electronic contract;
providing a summary of the update of the digitally stored contract model from the document editing session;
updating a status of the electronic contract throughout a lifecycle of the electronic contract, wherein one or more prevailing contract terms of the electronic contract are tracked and displayed during the lifecycle.