# US 10,482,554 B1 · Digital negotiation platform

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

- Number: US 10,482,554 B1
- Document ID: US10482554B1
- Status: Granted
- Kind: B1
- Application number: 16/153,682
- Filed: 2018-10-05
- Granted: 2019-11-19
- Earliest claimed: 2018-10-05
- Assignees: Capital One Services, LLC
- Applicants: Capital One Services, LLC
- Inventors: Adam Vukich; Kaitlin Newman; Colin Hart; Jason Ji
- Web page: https://patentgrep.com/patent/US10482554B1

## CPC

- G06Q 50/188: {Electronic negotiation}
- G06N 3/063: using electronic means
- G06N 20/00: Machine learning
- G06Q 20/3829: {involving key management}
- G06Q 20/40: Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q 20/405: {Establishing or using transaction specific rules}
- G06Q 2220/00: Business processing using cryptography
- G06Q 2230/00: Voting or election arrangements
- 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
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

Various embodiments are generally directed to providing a digital negotiation platform. An agent executing on a processor may programmatically negotiate parameters for an agreement based on rules and/or computing models. The agent may generate a smart contract comprising a transcript of communications and executable code operable to enforce the parameters. The smart contract may be stored in a blockchain.

## Claims

### Claim 1

A method, comprising:
determining, by an agent executing on a processor, a set of parameters for an agreement based in part on a computing model, wherein the agent comprises one of: (i) a chatbot, and (ii) a voice-enabled agent;
transmitting, by the agent, the set of parameters for the agreement via a network;
receiving, by the agent via the network, a modified value for a first parameter in the set of parameters;
determining, by the agent based on the computing model and a plurality of rules, that each parameter in the set of parameters, including the modified value for the first parameter, satisfies the associated rule of the plurality of rules;
transmitting, by the agent via the network, an indication of acceptance of the set of parameters including the modified value for the first parameter based on each parameter satisfying the rules;
receiving, by the agent via the network, acceptance of the set of parameters including the modified value for the first parameter;
generating, by the agent, a transcript comprising statements generated by the agent and received by the agent, the statements collectively specifying the set of parameters including the modified value for the first parameter;
generating, by the agent based on a language processing algorithm applied to the statements of the transcript, executable code operable to enforce the set of parameters;
generating, by the agent, a smart contract for the agreement, the smart contract comprising the transcript and the executable code operable to enforce the set of parameters;
storing the smart contract comprising the transcript and the executable code for enforcing the set of parameters in a block of a blockchain, the block of the blockchain replicated to a plurality of distributed copies of the blockchain;
receiving, by the executable code, a vote from each party to the agreement, each vote indicating whether an action of the first parameter has occurred on or before a time of the first parameter has elapsed;
determining, by the executable code, that a sum of the votes received from each party to the agreement does not indicate whether the action of the first parameter has occurred on or before the time of the first parameter has elapsed;
receiving, by the executable code, a vote from a neutral party indicating whether the action of the first parameter has occurred on or before the time of the first parameter has elapsed;
applying, by the executable code, a respective weight to each received vote to determine whether the action of the first parameter has occurred on or before the time of the first parameter has elapsed, the respective weights comprising at least two different weight values; and
determining, by the executable code based on a sum of the weighted votes, that the action of the first parameter has been completed on or before the time of the first parameter has elapsed.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
determining, by the executable code in the block of the blockchain, that the time associated with the first parameter has elapsed.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
determining, by the executable code, that a sum of the weighted votes indicating the action of the first parameter has occurred is greater than a sum of the weighted votes indicating the first parameter has not occurred; and
determining, by the executable code based on the determination that the sum of the weighted votes indicating the action of the first parameter has occurred is greater than the sum of the weighted votes indicating the action of the first parameter has not occurred, that the action of the first parameter has been completed.

### Claim 4 (depends on 3)

The method of claim 3, wherein the executable code applies a first weight value of the at least two weight values to the votes received from each party to the agreement, wherein the executable code applies a second weight value of the at least two weight values to the vote received from the neutral party, wherein the first and second weight values comprise different weight values, wherein the agent is a first agent, wherein the statements received by the agent are received from a second agent, wherein a plurality of computing systems host a respective copy of the distributed copies of the blockchain.

### Claim 5 (depends on 4)

The method of claim 4, wherein the determination that the sum of the votes received from each party does not indicate whether the action of the first parameter has occurred on or before the time of the first parameter has elapsed is based on a determination that a sum of the votes received from each party indicating the first parameter has occurred equals a sum of the votes received from each party indicating the first parameter not has occurred, the method further comprising:
training the agent based on an artificial intelligence algorithm and a plurality of transcripts describing prior agreements;
generating, based on the training, the computing model comprising a plurality of feature weights; and
negotiating, by the agent based on the feature weights of the computing model, the set of parameters for the agreement, the feature weights to incentivize the agent to complete negotiations for the agreement using a fewer number of statements generated by the agent relative to a number of statements made by the agent to complete negotiations for the agreement without the agent using the feature weights.

### Claim 6 (depends on 1)

The method of claim 1, wherein generating the executable code comprises:
identifying, by the language processing algorithm, each of the plurality of parameters in the transcript;
identifying, by the language processing algorithm for each parameter, an associated action and an associated time;
generating, by the language processing algorithm a logic structure for each parameter, the logic structure associated with the action and the time associated with each parameter; and
generating, by the language processing algorithm based on the logic structures, the executable code operable to enforce the set of parameters.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
identifying a prior agreement;
analyzing a plurality of parameters of the prior agreement;
determining, based on the analysis, to re-negotiate the prior agreement; and
transmitting, by the agent via the network, an indication to re-negotiate the prior agreement.

### Claim 8

A system, comprising:
a processor; and
a memory storing instructions executable by the processor to:
determine, by an agent executing on the processor, a set of parameters for an agreement based in part on a computing model, wherein the agent comprises one of: (i) a chatbot, and (ii) a voice-enabled agent;
transmit, by the agent, the set of parameters for the agreement via a network;
receive, via the network, a modified value for a first parameter in the set of parameters;
determine, by the agent based on the computing model and a plurality of rules, that each parameter in the set of parameters, including the modified value for the first parameter, satisfies the associated rule of the plurality of rules;
receive, by the agent via the network, acceptance of the set of parameters including the modified value for the first parameter;
generate, by the agent, a transcript comprising statements generated by the agent and received by the agent, the statements collectively specifying the set of parameters including the modified value for the first parameter;
generate, by the agent based on a language processing algorithm applied to the statements of the transcript, executable code operable to enforce the set of parameters;
generate, by the agent, a smart contract for the agreement, the smart contract comprising the transcript and the executable code operable to enforce the set of parameters;
store the smart contract comprising the transcript and the executable code operable to enforce the set of parameters in a block of a blockchain, the block of the blockchain replicated to a plurality of distributed copies of the blockchain;
receive, by the executable code, a vote from each party to the agreement, each vote indicating whether an action of the first parameter has occurred on or before a time of the first parameter has elapsed;
determine, by the executable code, that a sum of the votes received from each party to the agreement does not indicate whether the action of the first parameter has occurred on or before the time of the first parameter has elapsed;
receive, by the executable code, a vote from a neutral party indicating whether the action of the first parameter has occurred on or before the time of the first parameter has elapsed;
apply, by the executable code, a respective weight to each received vote to determine whether the action of the first parameter has occurred on or before the time of the first parameter has elapsed, the respective weights comprising at least two different weight values; and
determine, by the executable code based on a sum of the weighted votes, that the action of the first parameter has been completed on or before the time of the first parameter has elapsed.

### Claim 9 (depends on 8)

The system of claim 8, the memory storing instructions executable by the processor to:
determine, by the executable code in the block of the blockchain, that the time associated with the first parameter has elapsed.

### Claim 10 (depends on 9)

The system of claim 9, the memory storing instructions executable by the processor to:
determine, by the executable code that a sum of the weighted votes indicating the action of the first parameter has occurred is greater than a sum of the weighted votes indicating the first parameter has not occurred; and
determine, by the executable code based on the determination that the sum of the weighted votes indicating the action of the first parameter has occurred is greater than the sum of the weighted votes indicating the action of the first parameter has not occurred, that the action associated with the first parameter has been completed.

### Claim 11 (depends on 10)

The system of claim 10, wherein the executable code applies a first weight value of the at least two weight values to the votes received from each party to the agreement, wherein the executable code applies a second weight value of the at least two weight values to the vote received from the neutral party, wherein the first and second weight values comprise different weight values, wherein the agent is a first agent, wherein the statements received by the agent are received from a second agent, wherein a plurality of computing systems host a respective copy of the distributed copies of the blockchain the memory storing instructions executable by the processor to:
train the agent based on an artificial intelligence algorithm and a plurality of transcripts describing prior agreements;
generate, based on the training, the computing model comprising a plurality of feature weights; and
negotiate, by the agent based on the feature weights of the computing model, the set of parameters for the agreement, the feature weights to incentivize the agent to complete negotiations for the agreement using a fewer number of statements generated by the agent relative to a number of statements made by the agent to complete negotiations for the agreement without the agent using the feature weights.

### Claim 12 (depends on 11)

The system of claim 11, wherein the determination that the sum of the votes received from each party does not indicate whether the action of the first parameter has occurred on or before the time of the first parameter has elapsed is based on a determination that a sum of the votes received from each party indicating the first parameter has occurred equals a sum of the votes received from each party indicating the first parameter not has occurred, wherein generating the executable code comprises:
identifying, by the language processing algorithm, each of the plurality of parameters in the transcript;
identifying, by the language processing algorithm for each parameter, an associated action and an associated time;
generating, by the language processing algorithm a logic structure for each parameter, the logic structure associated with the action and the time associated with each parameter; and
generating, by the language processing algorithm based on the logic structures, the executable code operable to enforce the set of parameters.

### Claim 13 (depends on 12)

The system of claim 12, the memory storing instructions executable by the processor to:
identify a prior agreement;
analyze a plurality of parameters of the prior agreement;
determine, based on the analysis, to re-negotiate the prior agreement; and
transmit, by the agent via the network, an indication to re-negotiate the prior agreement.

### Claim 14

A non-transitory computer-readable storage medium storing computer-readable program code executable by a processor to:
receive, by an agent executing on the processor, a set of parameters for an agreement via a network connection, wherein the agent comprises one of: (i) a chatbot, and (ii) a voice-enabled agent;
determine, by the agent, that a first parameter in the set of parameters has a value that does not meet a first rule, of a plurality of rules;
determine, by the agent based on a computing model and the first rule, a modified value for the first parameter;
determine, by the agent, that each parameter in the set of parameters, including the modified value for the first parameter, satisfies the associated rule of the plurality of rules;
transmit, by the agent via the network, the modified value for the first parameter;
receive, by the agent via the network, acceptance of the set of parameters including the modified value for the first parameter;
transmit, by the agent via the network, an indication of acceptance of the set of parameters based on each parameter satisfying the rules;
generate, by the agent, a transcript comprising statements generated by the agent and received by the agent, the statements collectively specifying the set of parameters including the modified value for the first parameter;
generate, by the agent based on a language processing algorithm applied to the statements of the transcript, executable code operable to enforce the set of parameters;
generate, by the agent, a smart contract for the agreement, the smart contract comprising the transcript and the executable code operable to enforce the set of parameters;
store the smart contract comprising the transcript and the executable code operable to enforce the set of parameters in a block of a blockchain, the block of the blockchain replicated to a plurality of distributed copies of the blockchain;
receive, by the executable code, a vote from each party to the agreement, each vote indicating whether an action of the first parameter has occurred on or before a time of the first parameter has elapsed;
determine, by the executable code, that a sum of the votes received from each party to the agreement does not indicate whether the action of the first parameter has occurred on or before the time of the first parameter has elapsed;
receive, by the executable code, a vote from a neutral party indicating whether the action of the first parameter has occurred on or before the time of the first parameter has elapsed;
apply, by the executable code, a respective weight to each received vote to determine whether the action of the first parameter has occurred on or before the time of the first parameter has elapsed, the respective weights comprising at least two different weight values; and
determine, by the executable code based on a sum of the weighted votes, that the action of the first parameter has been completed on or before the time of the first parameter has elapsed.

### Claim 15 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, further comprising computer-readable program code executable to:
determine, by the executable code in the block of the blockchain, that the time for the first parameter has elapsed; and
transmit an indication of completion of the action via the network.

### Claim 16 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, further comprising computer-readable program code executable to:
determine, by the executable code that a sum of the weighted votes indicating the action of the first parameter has occurred is greater than a sum of the weighted votes indicating the first parameter has not occurred; and
determine, by the executable code based on the determination that the sum of the weighted votes indicating the action of the first parameter has occurred is greater than the sum of the weighted votes indicating the action of the first parameter has not occurred, that the action of the first parameter has been completed.

### Claim 17 (depends on 16)

The non-transitory computer-readable storage medium of claim 16, wherein the agent is a first agent, wherein the statements received by the agent are received from a second agent, wherein the executable code applies a first weight value of the at least two weight values to the votes received from each party to the agreement, wherein the executable code applies a second weight value of the at least two weight values to the vote received from the neutral party, wherein the first and second weight values comprise different weight values, wherein a plurality of computing systems host a respective copy of the distributed copies of the blockchain.

### Claim 18 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein the determination that the sum of the votes received from each party does not indicate whether the action of the first parameter has occurred on or before the time of the first parameter has elapsed is based on a determination that a sum of the votes received from each party indicating the first parameter has occurred equals a sum of the votes received from each party indicating the first parameter not has occurred, further comprising computer-readable program code executable to:
train the agent based on an artificial intelligence algorithm and a plurality of transcripts describing prior agreements;
generate, based on the training, the computing model comprising a plurality of feature weights; and
negotiate, by the agent based on the feature weights of the computing model, the set of parameters for the agreement, the feature weights to incentivize the agent to complete negotiations for the agreement using a fewer number of statements generated by the agent relative to a number of statements made by the agent to complete negotiations for the agreement without the agent using the feature weights.

### Claim 19 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, wherein generating the executable code comprises:
identifying, by the language processing algorithm, each of the parameters in the transcript;
identifying, by the language processing algorithm for each parameter, an associated action and an associated time;
generating, by the language processing algorithm a logic structure for each parameter, the logic structure associated with the action and the time associated with each parameter; and
generating, by the language processing algorithm based on the logic structures, the executable code operable to enforce the set of parameters.

### Claim 20 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, further comprising computer-readable program code executable to:
identify a prior agreement;
analyze a plurality of parameters of the prior agreement;
determine, based on the analysis, to re-negotiate the prior agreement; and
transmit, by the agent via the network, an indication to re-negotiate the prior agreement.
