Skip to main content
For AI agents: a documentation index is available at https://docs.coverbase.com/llms.txt. This page is also available in markdown by appending .md to the URL.
This guide is part of the User Guides collection. It pairs with the Contract Guardian guide, which covers clause sets and clause reviews. Insights are the field-level half of contract intelligence; clause review is the language-level half.
A document insight is a field you want pulled out of every document of a given type. You define it once (a name, a description, a type, and a mode), and from then on Coverbase populates it automatically whenever a matching document is processed, with a page citation and a verbatim source quote attached to the value. Insights are not limited to contracts. Any document type can carry them: an insurance certificate’s coverage limit, a SOC 2’s audit period, a DPA’s subprocessor notification window. Contracts are where most teams start, because the same fifteen questions get asked of every agreement.
The most common setup mistake is writing insights as if the AI can see your intent. It cannot. It sees the insight name, your description, the type, and the mode. Everything in this guide comes back to making those four things carry the meaning.

What you get for each insight

Every extracted value arrives with:

The value

Stored in its declared type: text, a parsed number, an ISO date, or a boolean. Dates normalize to YYYY-MM-DD; numbers strip currency symbols and separators.

A verbatim source quote

The exact span from the document that supports the value. Coverbase checks that the quote appears in the document. An answer whose quote cannot be located is kept, marked Supporting evidence not verified at low confidence, and waits for a reviewer to Accept answer.

A page citation

The 1-indexed page where the quote lives. If the model cites the printed page label instead of the physical page, Coverbase corrects it to the page the quote was found on.

A confidence and a rationale

High when the document states it explicitly, medium when it had to be inferred, low when the model was unsure. Plus short notes on any ambiguity or assumption.
When a document does not contain the answer, the insight comes back empty rather than guessed. An empty insight is a finding rather than a failure, and it usually means the clause is missing from the vendor’s paper.

Where insights show up

On the document itself

Open any document and switch to the Insights tab. This is the full view: every insight configured for that document type, with values, confidence, source quotes, and page links. From here you can accept an unverified answer, re-extract, export the whole set to CSV, or Add insight: define one, preview what it extracts from this document, and save it for every document of this type.
The Extracted insights card on a contract’s Documents tab rolls up insights across every linked document, grouped by field. Insights with no extracted value are hidden here to cut noise. Open the individual document to see the blanks.
Extracted insights are fed to the model that writes the contract summary and populates the contract risk profile. Better insights produce a better summary, so the two improve together.
Export CSV on the document Insights tab produces one row per insight with the value, all four typed columns, confidence, source quote, page number, reasoning, and whether the value was AI-extracted or entered manually.

When extraction runs

  1. Automatically, on upload. When a new document finishes processing, Coverbase extracts every enabled insight whose document types match that document.
  2. On demand, per document. Open a document’s Insights tab and choose Refresh all. Use this after you add or reword an insight, since existing documents were processed against the old definition.
  3. On demand, per insight. Re-extract a single insight from the row’s actions after you tighten its description.
  4. In bulk, across history. A new insight starts empty on every document you already hold. Configuration → Document Insights → Document types shows exactly how many, and a backfill re-extracts them. See Backfilling history.
Adding a new insight does not fill your existing documents on its own. Until you run a backfill, the field only populates on documents processed after the change.

Creating an insight

Go to Configuration → Document Insights. You need the org-settings update permission to reach this page.
1

Create a group first (optional but recommended)

A group is a folder that shares document-type scope with everything inside it. Set Data protection to apply to DPAs and MSAs once, and every insight you drag into it inherits that scope. Without groups you set document types on every insight by hand and they drift apart.
2

Add the insight and name it for a human

Name is what reviewers see in the UI and in exports. Use the term your team uses: Liability cap, Governing law, Termination notice period. The name is also the first thing the AI reads, so a vague name costs you accuracy.
3

Write the description

This is the instruction. See Writing descriptions that work below. It matters more than every other setting.
4

Pick the type

Text, Number, Date, or Yes/No. The type controls how the value is stored, validated, sorted, and displayed. Choosing Number for a monetary field also unlocks the Currency (USD) display format.
5

Pick the mode

Extract or Synthesize. Synthesize is only available for a Text insight; choosing any other type switches the mode back to Extract. The next section covers this choice.
6

Scope it to document types

Choose the document types this insight applies to, or inherit them from the group. Leaving the list empty applies the insight to every document type, which is rarely what you want: it means Coverbase will hunt for a liability cap inside a SOC 2 report.
7

Try it on a real document before you roll it out

Open a representative document, go to its Insights tab and choose Add insight. Define the insight there and run the preview: it extracts from that one document and shows the value, the quote, the page and the confidence before anything is saved. Iterate on the description until it holds up, then save it, which scopes it to that document’s type.That is cheaper than discovering an ambiguous description after backfilling three thousand documents.

Extract vs Synthesize

This is the setting people get wrong most often.

Extract: a single, typed answer

The model returns one concise answer in the insight’s type: a name, a date, a number, or Yes/No. It prefers the document’s own wording, and interprets or normalizes only as far as the type needs, so a Yes/No insight reads the clause and answers Yes or No. It must cite a verbatim quote from the document, and Coverbase checks that quote. If the document does not answer, the insight comes back empty.

Synthesize: a written summary

The model writes a short answer in its own words that combines or explains what the document says: rolling up several clauses, or turning legalese into a plain verdict. It still has to cite a verbatim quote from the document. Because the answer is prose, Synthesize is only available for Text insights. If the document cannot answer, the value comes back empty.
Both modes are grounded. What changes between them is the shape of the answer: a single value you can sort and filter on, or a sentence a reviewer reads.

The decision table

Yes/No insights

A Yes/No insight is always Extract, because Synthesize only takes Text. That works: Extract answers Yes or No even though neither word appears in the contract, and quotes the clause it relied on. Insights created earlier as Yes/No with Synthesize now run as Extract, so they need no change.
Write a Yes/No description as the question, and say what counts as Yes. “Do we have audit rights?” reads Section 8.3, answers Yes, and cites the clause. Where the answer turns on nuance (notice periods, conditions), the quote carries the nuance and the value stays filterable.

The same question, both ways

Take one requirement (do we have the right to run a penetration test?) and see how the mode changes what you get.
Name: Pen test rights granted Type: Yes/No · Mode: ExtractDescription: Does the customer have a contractual right to perform penetration testing or security testing against the vendor’s production environment? Answer Yes only if testing is affirmatively permitted, including where it requires notice or scheduling. Answer No if testing is prohibited, or if the contract only offers third-party test summaries in place of customer testing.Result: Yes, quoting “Customer may, no more than once per twelve (12) month period and upon thirty (30) days’ prior written notice, conduct penetration testing of the Services.” on page 14, confidence high.Good when you want to sort your portfolio by which vendors you can test. The nuance about notice periods lives in the quote; the filterable answer lives in the value.
Many teams run both: a Yes/No Extract field for the dashboard and a companion Synthesize field summarizing the terms. They cost one extra pass each and answer two different jobs.

Quick rules

  • If you want one value you could sort or filter on (a date, a number, a name, Yes or No), use Extract.
  • If you would have to read a paragraph and then say a sentence back, use Synthesize on a Text insight.
  • Every Yes/No, Number and Date insight is Extract. Synthesize takes Text only.
  • A Number or Date you would have to work out is still Extract; put the working in the description.
  • When you cannot decide on a Text insight, start with Synthesize. You get an answer with a quote attached, and you can tighten to Extract later once you have seen how the language reads.
Mixing modes across your insight set is normal and costs nothing. Coverbase groups insights by mode and runs each group as its own pass over the document.

Writing descriptions that work

The description is the prompt. Treat it like an instruction to a sharp new analyst who has never seen your contracts and will not ask follow-up questions. A description that performs well usually has four parts:
1

Define the thing precisely

“The maximum aggregate liability cap that applies to the vendor” beats “liability”.
2

Name the aliases

List the headings the clause hides under: Limitation of Liability, Liability Cap, Maximum Liability, Limitations on Liability.
3

Say what to do about edge cases

“If the cap is expressed as a multiple of fees, return the multiple and the lookback period. If liability is uncapped, return ‘Uncapped’.”
4

Say what not to return

“Do not return the indemnification carve-out amounts. Do not return the customer-side cap.” Exclusions prevent the most common wrong answers.
Name: Liability Description: (empty) Type: Text · Mode: ExtractReturns something from the liability section, but which sentence varies by document. On a contract with asymmetric caps you cannot tell whose cap you got.
When an insight misfires, read the reasoning on the extracted value before you change anything else. It usually says which sentence the model picked, and the fix is one exclusion sentence in the description.

A starter library

There is no packaged template for insights the way there is for clause sets. Insight definitions are yours to write, because they encode what your program tracks. Use this as the copy-and-adapt starting point. Group them, scope them to your contract document types, and delete anything you will not use.

Group: Contract basics

Scope to MSA, order form, SOW, terms of service, software license agreement.

Group: Renewal and exit

Scope to MSA, order form, terms of service.

Group: Risk and liability

Scope to MSA, DPA, security addendum.

Group: Data protection and security

Scope to DPA, MSA, security addendum, SCC.

Group: Service levels and AI

Scope to SLA, MSA, AI addendum.
In this library, Extract appears wherever the answer is a single value (dates, jurisdictions, figures, named frameworks, Yes/No), and Synthesize where the answer is a written judgment. Every Synthesize row is a Text insight, because that is the only type Synthesize takes.

Auditing coverage

Writing an insight is the easy half. Knowing whether it worked across your whole corpus decides whether anyone trusts the field. Configuration → Document Insights answers that. Three tabs over the same data:

Insights: is each definition healthy?

Your library, with coverage on every row: how many eligible documents carry a value, how many of those had verified evidence, and how many are waiting for a human to accept an unverified answer. Select several rows to enable, disable, rescope, regroup, archive, or backfill them in one action.
A matrix: document types down the side, insights across the top, a fill rate in every cell. This view answers “what do we extract from an MSA, and how well?”An em-dash means the insight is not scoped to that document type. A percentage means it is.
Every extraction in the org, filterable by insight, confidence, whether the quote was grounded, review state, and whether the value came from AI or was set manually.Filter to Needs review, or to low confidence and Not grounded, and you have a review queue. Click any row to open that document with the Insights tab already scrolled to the value in question, so you never leave the list to check a value.

Two kinds of blank

A missing value means one of two opposite things:
A brand-new insight shows 100% stale and 0% filled. That means the definition has not run yet. Backfill first, then judge the fill rate.

Backfilling history

A backfill re-extracts documents you already hold, so a new or reworded insight applies to your whole corpus instead of only to what arrives next.
1

Scope it

Pick the insights, and optionally narrow by document type or vendor. Starting from a stale badge in the coverage matrix pre-fills the scope for you.
2

Choose what to re-run

Only never attempted (the default) only touches documents the insight has never run against. Missing values also re-runs documents that were attempted and came back empty; use this after rewording a description. Every eligible document re-runs everything, replacing existing AI values.
3

Read the estimate

Before you confirm, Coverbase tells you how many documents it will process and roughly how many model calls that costs. Extraction batches every matching insight into one pass per document, so adding insights to a backfill is close to free. Adding documents is what costs.
4

Watch it run

A progress bar tracks dispatch. Large backfills run for a while; you can leave the page, and you can cancel, which stops further documents being queued.
A backfill never overwrites a value someone set by hand, in any mode. A value someone cleared by hand is left alone too, unless you tick Re-extract these too, replacing what was cleared when the dialog offers it.
Backfills are capped per run and per day. If a scope is too large, narrow it by document type or vendor and run it in batches. The cap exists so a single click cannot spend an unbounded amount on model calls.

Retiring an insight

Three actions, easy to confuse:
Delete is not the safe default. It is only available on an already-archived insight, it tells you exactly how many extracted values it will destroy, and it makes you type the insight’s name to confirm. Archive is almost always what you want.

Promoting an insight to a custom field

An insight lives on a document. Your team works from vendor, contract, and assessment records. Promotion carries the value across.
1

Open the insight and choose Promote to custom field

Link an existing field of a compatible type, or Create a new field from the insight’s name and type.Text fills Text, Number fills Number, Date fills Date, Yes/No fills True/False. Select and multi-select are not supported yet.
2

Set the gates

Require a grounded quote (on by default) skips answers whose quote could not be located in the source. Minimum confidence skips anything below the bar. Together these decide how conservative the promotion is.
3

Choose what happens when the field already has a value

Never overwrite only ever fills an empty field. Fill if empty also refreshes a value this same insight wrote before. Latest document wins additionally replaces values written from older documents, which is the right choice for a vendor-level field fed by many documents.
4

Backfill the field

Leave Backfill existing values checked and Coverbase populates the field across every document you already hold.
A promoted value keeps a link to the document, page, and verbatim quote it came from, so a field on a contract record can show a reviewer why it holds that value.
Promotion never overwrites a value a person typed: not on backfill, not on a later upload, not under any conflict policy.

Sharing a library between orgs

Insight definitions can be exported as a JSON file (names, descriptions, types, modes, and document-type scope, with no values and no ids) and imported into another org. This runs through the Coverbase API rather than a button in the dashboard. An import matches on the insight’s stable key. Existing definitions are skipped unless the import explicitly opts into overwriting them, so reimporting a shared library never silently reverts local prompt tuning. The Export on a single insight’s page is different: it downloads that insight’s extractions as a workbook (document, vendor, value, confidence, grounding, page and quote).

Reviewing and correcting values

The AI drafts; a reviewer checks the evidence before anyone relies on it.

Check the quote before you trust the value

Expand any insight on the document’s Insights tab to see the source quote, page number, confidence, and the model’s reasoning. Scan low-confidence values first; they are flagged because the model was not sure.
When the quote could not be located in the document, the insight reads Supporting evidence not verified. Check the answer against the document, then choose Accept answer to record that a reviewer accepted it; the evidence stays marked as unverified. The dashboard does not edit a value in place, so to change a wrong one, tighten the description and re-extract. A value set through the API is recorded as manual, is never overwritten by re-extraction or a backfill, and shows as manual in the CSV export.
Changing a description does not retroactively update values that were already extracted. Use Refresh all on a document, or re-extract a single insight from its row, once you have reworded it.
Export CSV gives you every insight for the document with all metadata: the display value, each typed column, confidence, source quote, page number, reasoning, and whether it was AI-extracted or manual. Useful for spot-auditing a batch of contracts, or for handing a legal reviewer a worksheet.

Troubleshooting

The insight comes back empty on documents that clearly contain the answer

Almost always one of four things:
  1. It never ran on that document. If the insight was created after the document was processed, it has never been attempted there. Check the coverage matrix: a stale badge means backfill, not a broken definition.
  2. A type that does not fit the question. A Number or Date insight only stores a value that parses as one, and a Yes/No needs a question with a yes-or-no answer. Match the type to the question, or use a Text insight.
  3. Wrong document-type scope. If the insight is not scoped to the type that document was classified as, it never ran. Check the document’s type on its detail panel, and check the insight’s document types (or its group’s).
  4. The description names the wrong thing. The model looked for what you described and did not find it. Add the aliases the clause hides under.
Yes/No insights always run as Extract, which reads the clause and answers Yes or No. Write the description as the question and say what counts as Yes. If it still comes back empty, the clause is usually missing from the document or the insight is not scoped to that document type.
Coverbase cites the physical page of the PDF, which often differs from the printed page label on long agreements with front matter or per-exhibit numbering. If the quote is correct, the citation is pointing at the right place.
A Number insight only stores a numeric value when the extracted text parses as one. Currency symbols and thousands separators are stripped automatically; ranges, footnotes, and unit suffixes are not. Tighten the description to ask for the figure alone.
Extraction is grounded against the document’s text layer. When a file’s pages are images, the document’s Insights tab says This file has no text to read; choose Run again and the re-run reads the pages with character recognition. If that still finds nothing, re-upload a text-based version of the document.
Scope it. An insight with an empty document-type list runs against every document in your library, including SOC 2s and policies. Put it in a group with the correct scope and enable inheritance.
The page requires the org-settings update permission. Ask an admin in your organization to grant it, or to make the change for you.

What’s next

Contract Guardian guide

Insights tell you what a contract says. Clause reviews tell you how far it sits from what you would accept. Set up your clause sets next.

Analyst and reviewer guide

Where insights and clause reviews land in the day-to-day assessment workflow.