Extract data from sales contracts
Two companies that agree to buy and sell goods write it down in a sales contract, and that document becomes the reference every downstream team returns to. A procurement lead confirms the agreed price and the delivery Incoterms, a finance team keys the payment terms into accounts payable, and a contracts manager watches for when the initial term expires and whether it renews. The Atticus Project's CUAD taxonomy catalogs 41 clause types that recur across commercial agreements, and a sales contract touches most of them: the parties and the agreement date at the top, then the commercial core of price, quantity, delivery, and payment, then the risk clauses of warranty, liability cap, and indemnity that only matter when something goes wrong. Reading one by eye is slow because the values that matter are scattered and phrased inconsistently. A contract value of $1,450,000 might appear once in a recital and again in a payment schedule that has to reconcile against the line items. Delivery terms bury an Incoterm such as FOB or DDP that decides who carries freight and risk. A renewal term of 12 months with a 60-day notice period sets a calendar date that a contracts manager cannot afford to miss. Governing law names one state, the liability cap is expressed as a multiple of fees rather than a plain number, and a most-favored-nation clause tucked into section 14 quietly changes the pricing obligation. Point Talonic at the executed PDF and the header, the commercial terms, and the negotiated clauses come back as separate fields. Parties are tagged buyer and seller, the agreement and effective dates as ISO 8601, the contract value as a number in its stated currency, and delivery and payment terms as discrete strings. A contract dated 2026-03-15 between Harborline Manufacturing Inc. as buyer and Meridian Components LLC as seller, valued at $1,450,000 in USD with Net 30 terms and FOB Origin delivery, loads into a contract repository with its renewal date and liability cap intact, so a manager reviews the source clause rather than a retyped summary.
What gets extracted from sales contracts
How extraction works for sales contracts
Sales contracts are drafted in Word, exported to PDF, signed on paper and scanned, and every drafter arranges the clauses differently, so a fixed template cannot find them. Talonic classifies the agreement and maps it to the contract schema in the Field Registry, whose clause set follows the CUAD 41-clause taxonomy, so a warranty, a liability cap, and an anti-assignment clause each land in their own field rather than a single block of text. Dates are normalized to ISO 8601, the contract value is typed as a number in its currency, and Incoterms in the delivery clause are recognized by their three-letter code. The renewal term and its notice period are parsed into a structure a calendar can read, while heavily negotiated language such as the liability cap or a most-favored-nation clause is kept verbatim so counsel reads the exact wording. Each field is returned with a confidence score and a pixel-region pointer that conforms to DIN SPEC 91491, so a contracts manager can check a captured price or governing-law choice against the source page before relying on it.
Sample extraction
An executed sales contract for a components supply deal
{
"agreement_title": "Sales Contract",
"agreement_date": "2026-03-15",
"parties": [
{
"party_name": "Harborline Manufacturing Inc.",
"role": "buyer",
"address": "4200 Industrial Pkwy, Toledo, OH 43601"
},
{
"party_name": "Meridian Components LLC",
"role": "seller",
"address": "88 Foundry Rd, Erie, PA 16501"
}
],
"effective_date": "2026-04-01",
"expiration_date": "2027-03-31",
"term": "12 months",
"renewal_term": "12 months, automatic",
"notice_period": "60 days",
"contract_value": 1450000,
"currency": "USD",
"governing_law": "State of New York",
"payment_terms": "Net 30",
"delivery_terms": "FOB Origin, Incoterms 2020",
"warranty": "12 months from delivery",
"cap_on_liability": "Aggregate liability capped at fees paid in the trailing 12 months",
"line_items": [
{
"description": "Precision gear assembly, Model MC-720",
"quantity": 5000,
"unit_price": 245,
"currency": "USD",
"amount": 1225000
},
{
"description": "Spare parts kit",
"quantity": 900,
"unit_price": 250,
"currency": "USD",
"amount": 225000
}
],
"signature_date": "2026-03-15"
}Frequently asked
Does it follow the CUAD clause taxonomy?
Yes. The schema mirrors the Atticus Project CUAD 41-clause set, so each recognized clause type such as warranty, liability cap, anti-assignment, and most-favored-nation returns as its own field rather than buried in prose.
How are delivery and payment terms captured?
Delivery terms return with the Incoterm recognized (FOB, CIF, DDP) and payment terms as their stated basis (Net 30, prepaid), so logistics and accounts payable each read a structured value instead of parsing a clause.
What happens when the contract value appears more than once?
The contract value is typed as a number in its currency, and the sum of the line items is reconciled against it, so a $1,450,000 figure stated in a recital that must match the payment schedule is checked rather than trusted.
Does it keep negotiated clauses verbatim?
Yes. A liability cap or an exclusivity clause is preserved as its exact wording alongside the structured tag, because the scope of the clause decides the exposure and a summary would lose it.
Ready to extract from your own sales contracts?
Author note
Reviewed by Talonic engineering · last reviewed 2026-07-06