Skip to main content

Overview

This example demonstrates a comprehensive data definition for extracting metadata and key terms from legal contracts. It covers contract identification, parties, financial terms, dates, obligations, and legal clauses.

Use Cases

  • Contract Management Systems: Extract key contract terms for centralized tracking
  • Legal Review Workflows: Identify critical dates, obligations, and risk factors
  • Compliance Monitoring: Track renewal dates, termination clauses, and regulatory requirements
  • Financial Analysis: Extract payment terms, contract values, and financial obligations

Complete Data Definition Structure

YAML Configuration

slug: contract-metadata
name: Contract Metadata Extraction
description: Extract key metadata, parties, terms, and obligations from legal contracts
taxonomyType: CONTENT
enabled: true

taxons:
  # ==========================================
  # Document Metadata
  # ==========================================
  - name: document_metadata
    label: Document Metadata
    group: true
    children:
      - name: filename
        label: Original Filename
        taxonType: STRING
        valuePath: METADATA
        metadataValue: FILENAME
        description: Source document filename

      - name: processing_date
        label: Processing Date
        taxonType: DATE_TIME
        valuePath: METADATA
        metadataValue: PROCESSING_DATE
        description: When this contract was processed

      - name: document_hash
        label: Document Hash
        taxonType: STRING
        valuePath: METADATA
        metadataValue: CONTENT_HASH
        description: SHA-256 hash for document integrity verification

  # ==========================================
  # Contract Identification
  # ==========================================
  - name: contract_header
    label: Contract Header
    group: true
    children:
      - name: contract_type
        label: Contract Type
        taxonType: SELECTION
        valuePath: VALUE_OR_ALL_CONTENT
        semanticDefinition: |
          The type of contract. Look for headers like "Service Agreement",
          "Master Services Agreement", "Purchase Agreement", "NDA", etc.
        selectionOptions:
          - label: "Service Agreement"
            description: "General service delivery contract"
          - label: "Master Services Agreement (MSA)"
            description: "Framework agreement for multiple projects"
          - label: "Statement of Work (SOW)"
            description: "Project-specific work definition"
          - label: "Purchase Agreement"
            description: "Contract for purchase of goods/services"
          - label: "Non-Disclosure Agreement (NDA)"
            description: "Confidentiality agreement"
          - label: "License Agreement"
            description: "Software or IP licensing contract"
          - label: "Employment Agreement"
            description: "Employee contract"
          - label: "Consulting Agreement"
            description: "Independent contractor agreement"
          - label: "Partnership Agreement"
            description: "Business partnership terms"
          - label: "Lease Agreement"
            description: "Property or equipment lease"
          - label: "Other"
            description: "Other contract type"

      - name: contract_number
        label: Contract Number
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        semanticDefinition: |
          The unique contract identifier. Look for "Contract No.", "Agreement No.",
          "Reference No.", or similar identifiers in the header or footer.

      - name: contract_title
        label: Contract Title
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        semanticDefinition: |
          The full title of the contract as it appears in the document header.

      - name: version
        label: Version
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        semanticDefinition: |
          The version number of the contract if specified (e.g., "v1.0", "Rev 2").

      - name: replaces_contract
        label: Replaces Contract Number
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        nullable: true
        semanticDefinition: |
          If this contract replaces or supersedes a previous agreement,
          extract the reference to the previous contract number.

  # ==========================================
  # Parties
  # ==========================================
  - name: parties
    label: Contract Parties
    group: true
    description: All parties involved in the contract
    children:
      - name: party_a
        label: Party A (Primary)
        group: true
        children:
          - name: legal_name
            label: Legal Name
            taxonType: STRING
            valuePath: VALUE_OR_ALL_CONTENT
            semanticDefinition: |
              The full legal name of the first party. Look for text near
              "hereinafter referred to as" or in signature blocks.

          - name: role
            label: Party Role
            taxonType: SELECTION
            valuePath: VALUE_OR_ALL_CONTENT
            semanticDefinition: "The role of this party (e.g., Provider, Customer, Buyer, Seller)"
            selectionOptions:
              - label: "Provider"
              - label: "Customer"
              - label: "Buyer"
              - label: "Seller"
              - label: "Licensor"
              - label: "Licensee"
              - label: "Employer"
              - label: "Employee"
              - label: "Contractor"
              - label: "Partner"
              - label: "Lessor"
              - label: "Lessee"

          - name: address
            label: Business Address
            taxonType: STRING
            valuePath: VALUE_OR_ALL_CONTENT
            semanticDefinition: "The business address of Party A"

          - name: jurisdiction
            label: Jurisdiction
            taxonType: STRING
            valuePath: VALUE_OR_ALL_CONTENT
            semanticDefinition: "The state or country of incorporation/registration"

          - name: signatory_name
            label: Signatory Name
            taxonType: STRING
            valuePath: VALUE_OR_ALL_CONTENT
            semanticDefinition: "Name of the authorized signatory for Party A"

          - name: signatory_title
            label: Signatory Title
            taxonType: STRING
            valuePath: VALUE_OR_ALL_CONTENT
            semanticDefinition: "Title of the signatory (e.g., CEO, Director)"

      - name: party_b
        label: Party B (Secondary)
        group: true
        children:
          - name: legal_name
            label: Legal Name
            taxonType: STRING
            valuePath: VALUE_OR_ALL_CONTENT
            semanticDefinition: "The full legal name of the second party"

          - name: role
            label: Party Role
            taxonType: SELECTION
            valuePath: VALUE_OR_ALL_CONTENT
            semanticDefinition: "The role of this party"
            selectionOptions:
              - label: "Provider"
              - label: "Customer"
              - label: "Buyer"
              - label: "Seller"
              - label: "Licensor"
              - label: "Licensee"
              - label: "Employer"
              - label: "Employee"
              - label: "Contractor"
              - label: "Partner"
              - label: "Lessor"
              - label: "Lessee"

          - name: address
            label: Business Address
            taxonType: STRING
            valuePath: VALUE_OR_ALL_CONTENT
            semanticDefinition: "The business address of Party B"

          - name: jurisdiction
            label: Jurisdiction
            taxonType: STRING
            valuePath: VALUE_OR_ALL_CONTENT
            semanticDefinition: "The state or country of incorporation/registration"

          - name: signatory_name
            label: Signatory Name
            taxonType: STRING
            valuePath: VALUE_OR_ALL_CONTENT
            semanticDefinition: "Name of the authorized signatory for Party B"

          - name: signatory_title
            label: Signatory Title
            taxonType: STRING
            valuePath: VALUE_OR_ALL_CONTENT
            semanticDefinition: "Title of the signatory"

      - name: additional_parties
        label: Additional Parties
        group: true
        description: Other parties involved (guarantors, witnesses, etc.)
        children:
          - name: party_name
            label: Party Name
            taxonType: STRING
            valuePath: VALUE_OR_ALL_CONTENT
            multiValue: true
            semanticDefinition: "Names of any additional parties mentioned in the contract"

          - name: party_role
            label: Party Role
            taxonType: STRING
            valuePath: VALUE_OR_ALL_CONTENT
            multiValue: true
            semanticDefinition: "Roles of additional parties (e.g., Guarantor, Witness)"

  # ==========================================
  # Financial Terms
  # ==========================================
  - name: financial_terms
    label: Financial Terms
    group: true
    children:
      - name: contract_value
        label: Total Contract Value
        taxonType: CURRENCY
        valuePath: VALUE_OR_ALL_CONTENT
        semanticDefinition: |
          The total monetary value of the contract. Look for "Total Contract Value",
          "Maximum Liability", or similar financial commitments.

      - name: currency
        label: Currency
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        semanticDefinition: "The currency for all financial terms (USD, EUR, GBP, etc.)"

      - name: payment_structure
        label: Payment Structure
        taxonType: SELECTION
        valuePath: VALUE_OR_ALL_CONTENT
        selectionOptions:
          - label: "Fixed Price"
          - label: "Time & Materials"
          - label: "Milestone-Based"
          - label: "Retainer"
          - label: "Subscription"
          - label: "Revenue Share"
          - label: "Cost Plus"

      - name: payment_terms
        label: Payment Terms
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        semanticDefinition: |
          Payment timing and conditions (e.g., "Net 30", "50% upfront, 50% on completion",
          "Quarterly in advance").

      - name: late_payment_penalty
        label: Late Payment Penalty
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        nullable: true
        semanticDefinition: |
          Penalties for late payment (e.g., "1.5% per month", "10% penalty fee").

      - name: deposit_amount
        label: Deposit Amount
        taxonType: CURRENCY
        valuePath: VALUE_OR_ALL_CONTENT
        nullable: true
        semanticDefinition: "Any upfront deposit or retainer amount required"

  # ==========================================
  # Dates and Terms
  # ==========================================
  - name: dates_and_terms
    label: Dates and Terms
    group: true
    children:
      - name: execution_date
        label: Execution Date
        taxonType: DATE
        valuePath: VALUE_OR_ALL_CONTENT
        semanticDefinition: |
          The date the contract was signed or executed. Look near signature blocks
          or "Dated as of" language.

      - name: effective_date
        label: Effective Date
        taxonType: DATE
        valuePath: VALUE_OR_ALL_CONTENT
        semanticDefinition: |
          The date the contract becomes effective, which may differ from execution date.

      - name: expiration_date
        label: Expiration Date
        taxonType: DATE
        valuePath: VALUE_OR_ALL_CONTENT
        nullable: true
        semanticDefinition: |
          The date the contract expires if it has a fixed term.
          May be labeled "Term End Date" or "Termination Date".

      - name: initial_term
        label: Initial Term
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        semanticDefinition: |
          The initial contract duration (e.g., "12 months", "3 years", "Perpetual").

      - name: renewal_terms
        label: Renewal Terms
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        nullable: true
        semanticDefinition: |
          How the contract renews (e.g., "Auto-renews annually unless terminated with
          90 days notice", "Mutual agreement required for renewal").

      - name: notice_period
        label: Notice Period for Termination
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        nullable: true
        semanticDefinition: |
          How much advance notice is required to terminate the contract
          (e.g., "30 days", "90 days written notice").

  # ==========================================
  # Key Obligations and Deliverables
  # ==========================================
  - name: obligations
    label: Key Obligations
    group: true
    children:
      - name: scope_of_work
        label: Scope of Work Summary
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        semanticDefinition: |
          A high-level summary of what services or deliverables are included.
          Look for "Scope of Work", "Services", or "Deliverables" sections.

      - name: deliverables
        label: Key Deliverables
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        multiValue: true
        semanticDefinition: |
          Specific deliverables or milestones mentioned in the contract.

      - name: service_levels
        label: Service Level Requirements
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        nullable: true
        semanticDefinition: |
          Any SLA or performance requirements (e.g., "99.9% uptime",
          "Response within 4 hours").

      - name: party_a_obligations
        label: Party A Key Obligations
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        multiValue: true
        semanticDefinition: "Key obligations or responsibilities of Party A"

      - name: party_b_obligations
        label: Party B Key Obligations
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        multiValue: true
        semanticDefinition: "Key obligations or responsibilities of Party B"

  # ==========================================
  # Legal and Compliance
  # ==========================================
  - name: legal_clauses
    label: Legal Clauses
    group: true
    children:
      - name: governing_law
        label: Governing Law
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        semanticDefinition: |
          The jurisdiction whose laws govern the contract (e.g., "State of California",
          "Laws of England and Wales").

      - name: dispute_resolution
        label: Dispute Resolution Method
        taxonType: SELECTION
        valuePath: VALUE_OR_ALL_CONTENT
        selectionOptions:
          - label: "Litigation"
          - label: "Arbitration"
          - label: "Mediation"
          - label: "Mediation then Arbitration"
          - label: "Not Specified"

      - name: arbitration_venue
        label: Arbitration Venue
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        nullable: true
        semanticDefinition: "Location or rules for arbitration if applicable"

      - name: confidentiality_clause
        label: Confidentiality Clause Present
        taxonType: BOOLEAN
        valuePath: VALUE_OR_ALL_CONTENT
        semanticDefinition: "Does the contract include confidentiality obligations?"

      - name: confidentiality_duration
        label: Confidentiality Duration
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        nullable: true
        semanticDefinition: |
          How long confidentiality obligations last (e.g., "3 years after termination",
          "Perpetual").

      - name: liability_cap
        label: Liability Cap
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        nullable: true
        semanticDefinition: |
          Maximum liability amount or percentage (e.g., "Total fees paid in prior 12 months",
          "$100,000").

      - name: indemnification
        label: Indemnification Present
        taxonType: BOOLEAN
        valuePath: VALUE_OR_ALL_CONTENT
        semanticDefinition: "Does the contract include indemnification clauses?"

      - name: insurance_requirements
        label: Insurance Requirements
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        nullable: true
        multiValue: true
        semanticDefinition: |
          Required insurance coverage (e.g., "General Liability $2M",
          "Professional Indemnity $5M").

      - name: intellectual_property
        label: IP Ownership Terms
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        nullable: true
        semanticDefinition: |
          Summary of intellectual property ownership and rights provisions.

  # ==========================================
  # Termination Conditions
  # ==========================================
  - name: termination
    label: Termination Conditions
    group: true
    children:
      - name: termination_for_cause
        label: Termination for Cause Allowed
        taxonType: BOOLEAN
        valuePath: VALUE_OR_ALL_CONTENT
        semanticDefinition: "Can the contract be terminated for cause (breach)?"

      - name: termination_for_convenience
        label: Termination for Convenience Allowed
        taxonType: BOOLEAN
        valuePath: VALUE_OR_ALL_CONTENT
        semanticDefinition: "Can either party terminate without cause?"

      - name: termination_fee
        label: Early Termination Fee
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        nullable: true
        semanticDefinition: |
          Any penalties or fees for early termination (e.g., "3 months fees",
          "Remaining contract value").

      - name: post_termination_obligations
        label: Post-Termination Obligations
        taxonType: STRING
        valuePath: VALUE_OR_ALL_CONTENT
        nullable: true
        multiValue: true
        semanticDefinition: |
          Obligations that survive contract termination (e.g., "Return of materials",
          "Continued confidentiality").

  # ==========================================
  # Risk Assessment
  # ==========================================
  - name: risk_assessment
    label: Risk Assessment
    group: true
    description: Computed risk indicators for contract review
    children:
      - name: risk_level
        label: Overall Risk Level
        taxonType: SELECTION
        valuePath: FORMULA
        semanticDefinition: |
          IF(contract_value > 1000000, "High",
             IF(contract_value > 100000, "Medium", "Low"))
        selectionOptions:
          - label: "Low"
          - label: "Medium"
          - label: "High"
          - label: "Critical"

      - name: requires_legal_review
        label: Requires Legal Review
        taxonType: BOOLEAN
        valuePath: FORMULA
        semanticDefinition: |
          contract_value > 100000 OR
          initial_term CONTAINS "year" OR
          liability_cap IS_EMPTY()

      - name: renewal_alert_date
        label: Renewal Alert Date
        taxonType: DATE
        valuePath: FORMULA
        semanticDefinition: |
          DATE_ADD(expiration_date,
                   PARSE_DAYS(notice_period) * -1)
        description: "Date to send renewal reminder based on notice period"

  # ==========================================
  # Review and Approval
  # ==========================================
  - name: review_workflow
    label: Review Workflow
    group: true
    children:
      - name: reviewed_by
        label: Reviewed By
        taxonType: STRING
        valuePath: REVIEW
        userEditable: true
        description: "Person who reviewed this contract"

      - name: review_date
        label: Review Date
        taxonType: DATE
        valuePath: REVIEW
        userEditable: true

      - name: approval_status
        label: Approval Status
        taxonType: SELECTION
        valuePath: REVIEW
        userEditable: true
        selectionOptions:
          - label: "Pending Review"
          - label: "Approved"
          - label: "Approved with Conditions"
          - label: "Rejected"
          - label: "Requires Negotiation"

      - name: review_notes
        label: Review Notes
        taxonType: STRING
        valuePath: REVIEW
        userEditable: true
        description: "Notes from legal or business review"

# ==========================================
# Validation Rules
# ==========================================
validationRules:
  # Required Fields
  - name: "Contract type required"
    ruleFormula: "NOT_EMPTY(contract_header.contract_type)"
    messageFormula: '"Contract type must be specified"'
    overridable: false

  - name: "Parties required"
    ruleFormula: |
      NOT_EMPTY(parties.party_a.legal_name) AND
      NOT_EMPTY(parties.party_b.legal_name)
    messageFormula: '"Both contracting parties must be identified"'
    overridable: false

  - name: "Effective date required"
    ruleFormula: "NOT_EMPTY(dates_and_terms.effective_date)"
    messageFormula: '"Effective date is required"'
    overridable: false

  # Date Logic
  - name: "Execution before effective"
    ruleFormula: |
      IS_EMPTY(dates_and_terms.execution_date) OR
      IS_EMPTY(dates_and_terms.effective_date) OR
      dates_and_terms.execution_date <= dates_and_terms.effective_date
    messageFormula: '"Execution date should not be after effective date"'
    overridable: true

  - name: "Effective before expiration"
    ruleFormula: |
      IS_EMPTY(dates_and_terms.expiration_date) OR
      dates_and_terms.effective_date < dates_and_terms.expiration_date
    messageFormula: '"Effective date must be before expiration date"'
    overridable: false

  - name: "Future expiration"
    ruleFormula: |
      IS_EMPTY(dates_and_terms.expiration_date) OR
      dates_and_terms.expiration_date >= TODAY()
    messageFormula: '"Contract appears to be expired"'
    overridable: true

  # Financial Validation
  - name: "Contract value reasonable"
    ruleFormula: |
      IS_EMPTY(financial_terms.contract_value) OR
      financial_terms.contract_value > 0
    messageFormula: '"Contract value must be positive"'
    overridable: false

  - name: "Currency specified"
    ruleFormula: |
      IS_EMPTY(financial_terms.contract_value) OR
      NOT_EMPTY(financial_terms.currency)
    messageFormula: '"Currency must be specified when contract value is present"'
    overridable: false

  - name: "Payment terms specified"
    ruleFormula: |
      IS_EMPTY(financial_terms.contract_value) OR
      NOT_EMPTY(financial_terms.payment_terms)
    messageFormula: '"Payment terms should be specified for contracts with financial value"'
    overridable: true

  - name: "Deposit not exceeding value"
    ruleFormula: |
      IS_EMPTY(financial_terms.deposit_amount) OR
      IS_EMPTY(financial_terms.contract_value) OR
      financial_terms.deposit_amount <= financial_terms.contract_value
    messageFormula: '"Deposit amount cannot exceed total contract value"'
    overridable: true

  # Legal Validation
  - name: "Governing law specified"
    ruleFormula: "NOT_EMPTY(legal_clauses.governing_law)"
    messageFormula: '"Governing law should be specified"'
    overridable: true

  - name: "High-value contracts need liability cap"
    ruleFormula: |
      IS_EMPTY(financial_terms.contract_value) OR
      financial_terms.contract_value <= 100000 OR
      NOT_EMPTY(legal_clauses.liability_cap)
    messageFormula: '"Contracts over $100,000 should include liability cap"'
    overridable: true

  - name: "Confidentiality duration for NDA"
    ruleFormula: |
      contract_header.contract_type != "Non-Disclosure Agreement (NDA)" OR
      NOT_EMPTY(legal_clauses.confidentiality_duration)
    messageFormula: '"NDAs should specify confidentiality duration"'
    overridable: true

  # Termination Validation
  - name: "Notice period for renewable contracts"
    ruleFormula: |
      IS_EMPTY(dates_and_terms.renewal_terms) OR
      NOT_EMPTY(dates_and_terms.notice_period)
    messageFormula: '"Contracts with renewal terms should specify notice period"'
    overridable: true

  # Party Validation
  - name: "Signatory information complete"
    ruleFormula: |
      (NOT_EMPTY(parties.party_a.signatory_name) AND
       NOT_EMPTY(parties.party_a.signatory_title)) AND
      (NOT_EMPTY(parties.party_b.signatory_name) AND
       NOT_EMPTY(parties.party_b.signatory_title))
    messageFormula: '"Both parties should have complete signatory information"'
    overridable: true

  - name: "Party roles are different"
    ruleFormula: |
      IS_EMPTY(parties.party_a.role) OR
      IS_EMPTY(parties.party_b.role) OR
      parties.party_a.role != parties.party_b.role
    messageFormula: '"Parties should have different roles (e.g., Provider/Customer)"'
    overridable: true

  # Risk-based Validation
  - name: "High-value requires legal review"
    ruleFormula: |
      IS_EMPTY(financial_terms.contract_value) OR
      financial_terms.contract_value <= 100000 OR
      review_workflow.approval_status IN ["Approved", "Approved with Conditions"]
    messageFormula: '"Contracts over $100,000 require legal approval"'
    overridable: false

  - name: "Multi-year requires executive approval"
    ruleFormula: |
      NOT(dates_and_terms.initial_term CONTAINS "year") OR
      review_workflow.approval_status IN ["Approved", "Approved with Conditions"]
    messageFormula: '"Multi-year contracts require executive approval"'
    overridable: true

# ==========================================
# Conditional Formatting
# ==========================================
conditionalFormats:
  - name: "High-value contract"
    formula: "financial_terms.contract_value > 500000"
    backgroundColor: "#FEF3C7"
    textColor: "#92400E"
    fontWeight: "bold"
    icon: "dollar-sign"

  - name: "Expired contract"
    formula: |
      NOT_EMPTY(dates_and_terms.expiration_date) AND
      dates_and_terms.expiration_date < TODAY()
    backgroundColor: "#FEE2E2"
    textColor: "#991B1B"
    fontWeight: "bold"
    icon: "exclamation-triangle"

  - name: "Expiring soon (within 90 days)"
    formula: |
      NOT_EMPTY(dates_and_terms.expiration_date) AND
      dates_and_terms.expiration_date >= TODAY() AND
      dates_and_terms.expiration_date <= DATE_ADD(TODAY(), 90)
    backgroundColor: "#FED7AA"
    textColor: "#9A3412"
    icon: "clock"

  - name: "Pending approval"
    formula: |
      review_workflow.approval_status == "Pending Review" OR
      review_workflow.approval_status == "Requires Negotiation"
    backgroundColor: "#DBEAFE"
    textColor: "#1E40AF"
    icon: "hourglass"

  - name: "No liability cap (high risk)"
    formula: |
      financial_terms.contract_value > 100000 AND
      IS_EMPTY(legal_clauses.liability_cap)
    backgroundColor: "#FEE2E2"
    textColor: "#991B1B"
    fontWeight: "bold"
    icon: "warning"

  - name: "Auto-renewal contract"
    formula: |
      dates_and_terms.renewal_terms CONTAINS "auto" OR
      dates_and_terms.renewal_terms CONTAINS "automatic"
    backgroundColor: "#E0E7FF"
    textColor: "#3730A3"
    icon: "refresh"

Key Features

Comprehensive Party Information

  • Multiple Party Support: Captures Party A, Party B, and additional parties
  • Role Classification: Categorizes parties as Provider, Customer, Buyer, Seller, etc.
  • Signatory Details: Tracks who signed and their authority
  • Jurisdictional Information: Important for legal compliance

Financial Term Tracking

  • Contract Value: Total monetary commitment
  • Payment Structure: Fixed price, T&M, milestone-based, etc.
  • Payment Terms: Net 30, upfront, quarterly, etc.
  • Penalties and Deposits: Late fees, advance payments

Date Management

  • Multiple Date Types: Execution, effective, expiration dates
  • Term Management: Initial term, renewal terms, notice periods
  • Automated Alerts: Calculate renewal reminder dates based on notice period
  • Governing Law: Jurisdiction for legal disputes
  • Dispute Resolution: Litigation, arbitration, or mediation
  • Confidentiality: NDA provisions and duration
  • Liability Caps: Maximum exposure limits
  • IP Ownership: Intellectual property rights

Risk Assessment

  • Automated Risk Scoring: Based on contract value and terms
  • Review Requirements: Flag contracts needing legal review
  • Compliance Checks: Insurance, indemnification, liability caps

Workflow Integration

  • Review Status: Track approval workflow
  • Reviewer Information: Who reviewed and when
  • Notes and Conditions: Capture approval conditions or concerns

Validation Strategy

Critical Validations (Non-overridable)

- Contract type must be specified
- Both parties must be identified
- Effective date required
- Effective before expiration
- Contract value must be positive
- High-value contracts require legal approval

Quality Checks (Overridable)

- Execution date should be before or equal to effective date
- Payment terms should be specified
- Governing law should be specified
- Notice period for renewable contracts
- Party roles should be different

Business Rules

- Contracts > $100k should have liability caps
- NDAs should specify confidentiality duration
- Multi-year contracts require executive approval

Conditional Formatting

Provides visual indicators for:
  • High-value contracts (> $500k) - Gold highlight
  • Expired contracts - Red alert
  • Expiring soon (< 90 days) - Orange warning
  • Pending approval - Blue information
  • Missing liability cap (high-value) - Red warning
  • Auto-renewal contracts - Purple indicator

Usage Tips

  1. Focus on legal_clauses group for risk assessment
  2. Use risk_assessment.requires_legal_review to prioritize review queue
  3. Track termination conditions for exit strategy planning
  4. Monitor renewal_alert_date for proactive contract management

For Finance Teams

  1. Extract financial_terms for budgeting and forecasting
  2. Use contract_value and payment_structure for cash flow planning
  3. Track payment_terms and late_payment_penalty for AR management

For Procurement Teams

  1. Monitor parties information for vendor management
  2. Track obligations.scope_of_work for deliverable oversight
  3. Use service_levels for SLA monitoring
  4. Review insurance_requirements for compliance

For Contract Managers

  1. Use dates_and_terms for renewal calendar
  2. Monitor expiration_date and notice_period for timely action
  3. Track approval_status for workflow management
  4. Review post_termination_obligations when ending contracts

Best Practices

  1. Always Extract Key Dates: Effective date and expiration date are critical for contract lifecycle management
  2. Capture Both Parties Fully: Legal names, roles, and signatory information are essential for enforceability
  3. Document Financial Terms Clearly: Include currency, payment structure, and terms to avoid disputes
  4. Track Legal Clauses: Governing law, dispute resolution, and liability caps are critical risk factors
  5. Use Risk Assessment Fields: Automated risk scoring helps prioritize review and approval workflows
  6. Enable Workflow Tracking: Capture review status, approver, and notes for audit trail
  7. Monitor Renewal Dates: Use computed renewal_alert_date to avoid unwanted auto-renewals
  8. Validate Party Roles: Ensure parties have different roles (not both “Provider”)
  9. Check Liability Caps on High-Value Contracts: Important risk mitigation for large commitments
  10. Track Post-Termination Obligations: These survive contract end and must be managed

Integration Examples

CRM Integration

# Export party information to CRM
externalName: account_name → parties.party_b.legal_name
externalName: account_type → parties.party_b.role
externalName: contract_value → financial_terms.contract_value

Contract Management System

# Sync to contract repository
externalName: contractNumber → contract_header.contract_number
externalName: expiryDate → dates_and_terms.expiration_date
externalName: renewalDate → risk_assessment.renewal_alert_date
externalName: status → review_workflow.approval_status

Financial System

# Export to accounting/ERP
externalName: totalValue → financial_terms.contract_value
externalName: paymentTerms → financial_terms.payment_terms
externalName: currency → financial_terms.currency