Contract clause classification
Classifies a single contract provision by clause type, such as governing law, notices or confidentiality.
Example
Context
- document
- A commercial contract filed with the U.S. Securities and Exchange Commission (SEC)
Input
This Agreement and any dispute arising out of or in connection with it shall be governed by and construed in accordance with the laws of the State of Delaware, without regard to its conflict of laws principles.
- Answer (JSON)
- value governing_laws, confidence 0.93
- Top options
- governing_laws 0.93
- applicable_laws 0.055
- qualifications 0.001
The provision names the law that governs the contract, so its clause type is governing_laws.
import os import jeff with jeff.Jeff.remote("https://api.jeffhub.ai", token=os.environ["JEFF_API_KEY"], timeout_s=30) as client: decide = client.function("jeff.legal.legal-clauses.clause_type", context={ "document": "A commercial contract filed with the U.S. Securities and Exchange Commission (SEC)", }) decision = decide("This Agreement and any dispute arising out of or in connection with it shall be governed by and construed in accordance with the laws of the State of Delaware, without regard to its conflict of laws principles.") print(decision.value, decision.confidence)
More examples
How notices must be givenanswer notices · confidence 0.998
Context
- document
- A commercial contract filed with the U.S. Securities and Exchange Commission (SEC)
Input
All notices under this Agreement shall be in writing and shall be deemed given when delivered by hand, or three business days after being sent by certified mail, return receipt requested, to the addresses set out on the signature page.
- Answer (JSON)
- value notices, confidence 0.998
- Top options
- notices 0.998
- intellectual_property 0
- no_defaults 0
The provision says how notices must be given and when they count as received, so its type is
notices.import os import jeff with jeff.Jeff.remote("https://api.jeffhub.ai", token=os.environ["JEFF_API_KEY"], timeout_s=30) as client: decide = client.function("jeff.legal.legal-clauses.clause_type", context={ "document": "A commercial contract filed with the U.S. Securities and Exchange Commission (SEC)", }) decision = decide("All notices under this Agreement shall be in writing and shall be deemed given when delivered by hand, or three business days after being sent by certified mail, return receipt requested, to the addresses set out on the signature page.") print(decision.value, decision.confidence)
Keeping the other side's information secretanswer confidentiality · confidence 0.973
Context
- document
- A commercial contract filed with the U.S. Securities and Exchange Commission (SEC)
Input
Each party shall hold in confidence all non-public information received from the other party in connection with this Agreement and shall not disclose it to any third party except its advisers who are bound by similar obligations.
- Answer (JSON)
- value confidentiality, confidence 0.973
- Top options
- confidentiality 0.973
- disclosures 0.009
- general 0.003
Each party must keep the other's non-public information secret, so the type is
confidentiality.import os import jeff with jeff.Jeff.remote("https://api.jeffhub.ai", token=os.environ["JEFF_API_KEY"], timeout_s=30) as client: decide = client.function("jeff.legal.legal-clauses.clause_type", context={ "document": "A commercial contract filed with the U.S. Securities and Exchange Commission (SEC)", }) decision = decide("Each party shall hold in confidence all non-public information received from the other party in connection with this Agreement and shall not disclose it to any third party except its advisers who are bound by similar obligations.") print(decision.value, decision.confidence)
An invalid term does not sink the restanswer severability · confidence 0.972
Context
- document
- A commercial contract filed with the U.S. Securities and Exchange Commission (SEC)
Input
If any provision of this Agreement is held invalid or unenforceable, the remaining provisions shall continue in full force and effect.
- Answer (JSON)
- value severability, confidence 0.972
- Top options
- severability 0.972
- interpretations 0.011
- amendments 0.002
An invalid provision leaves the rest of the contract standing, so the type is
severability.import os import jeff with jeff.Jeff.remote("https://api.jeffhub.ai", token=os.environ["JEFF_API_KEY"], timeout_s=30) as client: decide = client.function("jeff.legal.legal-clauses.clause_type", context={ "document": "A commercial contract filed with the U.S. Securities and Exchange Commission (SEC)", }) decision = decide("If any provision of this Agreement is held invalid or unenforceable, the remaining provisions shall continue in full force and effect.") print(decision.value, decision.confidence)
Signing in separate copiesanswer counterparts · confidence 0.994
Context
- document
- A commercial contract filed with the U.S. Securities and Exchange Commission (SEC)
Input
This Agreement may be executed in any number of counterparts, each of which shall be deemed an original, and all of which together shall constitute one and the same instrument.
- Answer (JSON)
- value counterparts, confidence 0.994
- Top options
- counterparts 0.994
- miscellaneous 0.002
- effective_dates 0
The contract may be signed in separate copies that together count as one, so the type is
counterparts.import os import jeff with jeff.Jeff.remote("https://api.jeffhub.ai", token=os.environ["JEFF_API_KEY"], timeout_s=30) as client: decide = client.function("jeff.legal.legal-clauses.clause_type", context={ "document": "A commercial contract filed with the U.S. Securities and Exchange Commission (SEC)", }) decision = decide("This Agreement may be executed in any number of counterparts, each of which shall be deemed an original, and all of which together shall constitute one and the same instrument.") print(decision.value, decision.confidence)
Use when
- You have split a contract into provisions and need a type for each one.
- Your input consists of commercial or employment agreements in English.
Avoid when
- You need legal advice or an assessment of fairness or enforceability; this adapter only identifies the clause type.
- You need to process an entire contract in one call; supply one provision at a time.
Context and input
| Field | Kind | Description |
|---|---|---|
provision | input | One provision (a clause) of a contract, as plain text. |
document | context | What the provision comes from, in a few words (for example "A commercial contract filed with the U.S. Securities and Exchange Commission (SEC)"). |
Functions
| Key | Interface | Instructions | Labels |
|---|---|---|---|
| clause_type | classify | Which type of clause is this contract provision? Choose the clause type that best matches the main topic of the provision. | adjustments, agreements, amendments, anti_corruption_laws, applicable_laws, approvals, arbitration, assignments, assigns, authority, authorizations, base_salary, benefits, binding_effects, books, brokers, capitalization, change_in_control, closings, compliance_with_laws, confidentiality, consent_to_jurisdiction, consents, construction, cooperation, costs, counterparts, death, defined_terms, definitions, disability, disclosures, duties, effective_dates, effectiveness, employment, enforceability, enforcements, entire_agreements, erisa, existence, expenses, fees, financial_statements, forfeitures, further_assurances, general, governing_laws, headings, indemnifications, indemnity, insurances, integration, intellectual_property, interests, interpretations, jurisdictions, liens, litigations, miscellaneous, modifications, no_conflicts, no_defaults, no_waivers, non_disparagement, notices, organizations, participations, payments, positions, powers, publicity, qualifications, records, releases, remedies, representations, sales, sanctions, severability, solvency, specific_performance, submission_to_jurisdiction, subsidiaries, successors, survival, tax_withholdings, taxes, terminations, terms, titles, transactions_with_affiliates, use_of_proceeds, vacations, venues, vesting, waiver_of_jury_trials, waivers, warranties, withholdings |
How it was measured
Test accuracy: the share of test rows whose top answer was right.
- 84.2% on real contract clauses filed with the US SEC, labelled with LEDGAR's 100 clause types (9,570 rows). held-out real documents
- 82.1% on clause types or wordings new to training (7,199 rows). held-out real documents
When confident
From the calibration set: at or above the threshold confidence, how often the answer is right, and how often the adapter is that confident. Below it, escalate.
| Function | Right when confident | Confident on | Threshold | Calibration rows |
|---|---|---|---|---|
| clause_type | 95.0% | 67.8% | 0.81 | 922 |
Base: Jeff v1.4. Adapter trained: 25 October 2026.
Base
jeff-base v1.4
Call it
jeff.legal.legal-clauses.clause_type, with placeholders for its input and context.
import os import jeff with jeff.Jeff.remote("https://api.jeffhub.ai", token=os.environ["JEFF_API_KEY"], timeout_s=30) as client: decide = client.function("jeff.legal.legal-clauses.clause_type", context={ "document": "<document>", }) decision = decide("<provision>") print(decision.value, decision.confidence)
Download
Weights: mstrasser/jeff-adapter-legal-clauses (v1.4)
Licence: Apache-2.0