Custom Provision Models
Provision models are available from built-in libraries. Syncing the Provision Library to the publisher (AI provider) makes these provision models available for data extraction mapping. However, if your contract's provisions do not conform to any of these pre-configured provision model types, you can name, build, populate, and train the AI on your own custom provision models.
Before You Begin
Custom provision models are a powerful approach to extracting data from contracts and supporting documents. Getting the most out of this feature requires familiarizing yourself with the underlying objects that Discovery AI can extract. All provision models must have a unique name and a defined data type. Available data types are: Date, Organization, Currency, Duration, Number, Percent, Picklist, Short Text, Multi Picklist, Text, Table, and Obligation. These describe CLM data fields to which Discovery AI must assign passages extracted from contracts and supporting documents. Your ability to define custom provision models depends on these data types being defined clearly in CLM.Adding a Custom Provision Model
- Administrator permissions
- At least two exemplary passages to give to the AI to train itself
When the user reviews clauses from an extracted document, the on-screen highlight may not match information gathered correctly by the AI-generated provision model. This issue affects only clauses, not fields. It is scheduled for repair.
Alert reviewers to this issue.
There is no manual training flow. If the AI does not produce the desired accuracy, provide special instructions as described in step 6 or add more examples to the provision model as described in step 7. Reviewers giving positive feedback (thumbs-up) during document review also help train the AI.
Special Instruction Prompts
These are some tried and tested additional prompts that have helped extract better values from the Special Instructions field.
Custom Provision | Data Type | Special Instructions |
---|---|---|
Renewal Term | Number | Extract the renewal term as a numerical value and do not pass any text around the numerical value. |
Other Party Signed By | Organization |
Pick the name that is closest to:
|
Other Party Signed Date | Date |
Pick the date that is closest to:
|
Date provisions in general | Date | Date appears in dd/mm/yyyy. Convert and return the date in mm/dd/yyyy format. |
Effective Date | Date | If the effective date is not mentioned in the document, capture the date from the last signature. |
Term Months | Duration | Take the value from the Term clause and convert the years to months. For example, if the clause says 5 years, the value returned should be 60. Return the number only. |
Discount | Short text | If a Percentage Discount clause is not mentioned, capture any other purchase discounts mentioned in the document. |
Agreement Title | Short text | Convert the agreement title to title case. |
Governing Law | Picklist | Make sure the option chosen refers to a governing-law clause text and don't pick from random places in text. Only extract the entity if it appears outside of a physical address block. If the entity is only found within an address block or is not present at all, return "N/A". |
Price Increases Escalation | Text | Do not extract any information from the pricing attachment or from Assumptions below that. |
Option to Renew | Text | Do not extract any clause that includes details on automatic renewal. |
Table Prompts
Use Case | Special Instruction | Limitations |
---|---|---|
Horizontal or vertical column names in a single table | Extract all data from the given table, regardless of the orientation of the column name. The column names may be written horizontally or vertically. | |
Split one column into two provisions. (For example: 2/1/2023 – 2/2/2024) | Split the Quarter column into two columns, Quarter Start Date and Quarter End Date, with Quarter Start Date having the first date in each cell and Quarter End Date having the second date. | You must mention the name of the column. |
Column Hierarchy | During extraction, be sure to use the column headers defined so the headers show the nested structure of the table. | |
Include cells that span the whole table in the above row | Split cells that span the whole table so that all of the text goes under Description, leaving a " " for each of the other columns. You may run into two consecutive cells that span the whole table. Deal with them separately. | Inconsistencies in each extraction |
Flattening Cells | Flatten the "Product" and "Effective Time Period for Inflation Limitation Percentage" columns so that each row has a value from each column. Make sure that each flattened cell has the same value as the cell that it originated from. |
If there are more than six rows in a cell, the LLM will under- or over-estimate the number of rows to be created. |
Adding a Custom Table Extraction Provision Model
You can use AI to extract tables from documents. This is especially useful when contracts present such tabular data as bills of materials or delivery schedules. Because table extraction requires generative AI, these extractions do not require training. Users can extract tables as soon as the table extraction is configured and mapped to a worksheet.
Each table must have a columnar structure, with each line reflecting the values named in the heading. Discovery AI extracts these values in much the same way it handles fields and clauses, presenting this data in a column-defined line-item format.
Table Extraction Tips
Things to keep in mind when configuring for table extraction.
The Table Extraction feature has features and limitations that you must consider when deploying custom table provision models.
Tables Spanning Multiple Pages
If you specify it, Discovery AI can combine the pages of a table that spans multiple pages. If you do not prompt or instruct Discovery AI, it decides on its own whether they are the same table. Tables that are broken only by page breaks or header and footer material will be merged if they have the same number of columns. If such a merge is not successful, you can add a prompt to do so in the Special Instructions field.
Date Ranges
You can ask the AI to extract both dates from a range as separate provisions instead of as a single range. When data is expressed as "7/1/2023 – 9/30/2023", you can extract "7/1/2023" and "9/30/2023" as discrete "from" and "to" values.
To do this, you must create two different provision models. These provision models must include the name of the column being split. For example, if the column heading is Quarter, a good set of provision models is "Quarter Start Date" and "Quarter End Date".
A good prompt for a date range spit request is: "Split the Quarter column into two columns, Quarter Start Date and Quarter End Date, with Quarter Start Date having the first date in each cell and Quarter End Date having the second date in the same cell."
Hierarchic Columns
Discovery AI can understand the hierarchies of column headers, especially nested ones. In the following example, the AI can identify that "Base Rebate Percentage" is the parent of the headers "10/1/2020 through 12/23/2020" and "1/1/2021 through 12/31/2021" and assign the data accordingly.
You must define provision models to capture the nested structure, with provision model names that include the name of the column you are splitting. To continue this example, the provision model names, "Base Rebate Percentage - 10/1/2020 through 12/31/2020" and "Base Rebate Percentage - 10/1/2021 through 12/31/2021" are valid. Prompting Discovery AI in the Special Instructions with During extraction, use the column headers defined to show the table's nested structure improves the likelihood of success.
Flattening
Flattening is the extrapolation of columns or rows to multiple instances to maintain the data's organization. For example, in the table below, the second column contains five different entries in the first row:
Flattening the data gives each of those five entries its own data point.
The provision models do not need to be defined in detail, but your prompt must indicate that flattening is required. In the Special Instructions section, you must tell the AI to flatten the cells and what to do with the flattened cells. To keep the flattened cells empty, ask to "keep the flattened cells empty". If you want the flattened cells to contain the same pieces of information, then enter an additional prompt such as:
Flatten the 'Product' and 'Effective Time Period for Inflation Limitation Percentage' columns so that each row has a value from each column. Make sure each flattened cell has the same value as the cell it originated from.
Merged Cells
Prompt the AI by telling it which columns have merged cells (in this example, the first column) and it can flatten them downwards.
Table Headings
Hierarchic Extraction
If hierarchy rows are not correctly indented or if the hierarchy row has split cells, as seen in the Product A-1 row below, the hierarchy extraction will not be accurate.
Horizontal and Vertical Tables
Discovery AI can extract provisions from both horizontal and vertical tables.
Setting the orientation flag to Horizontal forces the model to treat all tables in the document as horizontally-aligned (heading down the left column).Setting the orientation flag to Vertical forces the model to treat all the tables in the docs as vertically-aligned (heading across the top row).
Setting the orientation flag to Auto instructs the AI to find the table orientation on its own. This increases processing time and cost.
Editing Custom Provision Models
New and Editable Provision Model Fields
Fields Available for New Custom Provision Models
Data type | Name | Minimum Accuracy Threshold % | Acceptable Confidence Score | Language | Description | Maximum Extractions to Display for Review | Active | Picklist Option Data Type | Add values for picklist | Choose Table | Obligation Type |
---|---|---|---|---|---|---|---|---|---|---|---|
Date | X | X | X | X | X | X | X | - | - | - | - |
Organization | X | X | X | X | X | X | X | - | - | - | - |
Currency | X | X | X | X | X | X | X | - | - | - | - |
Duration | X | X | X | X | X | X | X | - | - | - | - |
Number | X | X | X | X | X | X | X | - | - | - | - |
Percent | X | X | X | X | X | X | X | - | - | - | - |
Picklist | X | X | X | X | X | X | X | X | X | - | - |
Short Text | X | X | X | X | X | X | X | - | - | - | - |
Text | X | X | X | X | X | X | X | - | - | - | - |
Table | X | - | - | X | X | - | X | - | - | X | - |
Obligation | X | - | - | X | X | - | X | - | - | - | X |
Custom Provision Model Fields Available for Editing
Data type | Name | Minimum Accuracy Threshold % | Acceptable Confidence Score | Language | Description | Maximum Extractions to Display for Review | Active | Picklist Option Data Type | Add values for picklist | Choose Table | Obligation Type |
---|---|---|---|---|---|---|---|---|---|---|---|
Date | X | X | X | - | X | X | X | - | - | - | - |
Organization | X | X | X | - | X | X | X | - | - | - | - |
Currency | X | X | X | - | X | X | X | - | - | - | - |
Duration | X | X | X | - | X | X | X | - | - | - | - |
Number | X | X | X | - | X | X | X | - | - | - | - |
Percent | X | X | X | - | X | X | X | - | - | - | - |
Picklist | X | X | X | - | X | X | X | - | X | - | - |
Short Text | X | X | X | - | X | X | X | - | - | - | - |
Text | X | X | X | - | X | X | X | - | - | - | - |
Table | X | - | - | - | X | - | X | - | - | - | - |
Obligation | X | - | - | - | X | - | X | - | - | - | - |