Contract Portfolio Intelligence
Performs portfolio-scale contract analysis: batch extraction of terms, obligations, and risks across a large set of agreements, plus playbook-based redlining against organizational standards.
Prerequisites
Before starting, gather:
- Contract corpus — uploaded documents (PDF, DOCX) or a vault/folder reference containing the agreements
- Analysis scope — what to extract (renewals, indemnities, payment terms, liability caps, termination rights, or custom fields)
- Playbook (if redlining) — the organization's preferred positions, fallback clauses, and non-negotiable terms
- Output format — table/spreadsheet, narrative report, or both
- Audience — who receives the output (GC, board, finance, procurement)
Workflow
Phase 1: Ingest and Classify
- Process each contract through OCR if scanned; extract full text from native PDFs and DOCX files
- Identify contract type (NDA, MSA, SaaS agreement, employment, vendor, lease, SOW, amendment, etc.)
- Detect parent-child relationships (master agreements → amendments → SOWs → change orders)
- De-duplicate — flag identical or near-identical documents
- Tag metadata: parties, effective date, governing law, contract type
Output a contract inventory table:
| # |
Document |
Type |
Parties |
Effective Date |
Governing Law |
Parent Doc |
| 1 |
Example |
MSA |
A ↔ B |
2024-01-15 |
Delaware |
— |
Phase 2: Term Extraction
For each contract, extract the following structured fields (skip fields that don't apply to the contract type):
Dates & Term
- Effective date, expiration date, term length
- Auto-renewal (yes/no), renewal notice period, notice deadline
- Termination for convenience (yes/no), notice period, cure period
Financial Terms
- Contract value / total commitment
- Payment terms (Net 30, Net 60, etc.)
- Price escalation / adjustment mechanisms
- Minimum commitments or volume thresholds
- Late payment penalties
Risk Provisions
- Indemnification — mutual vs. one-sided, carve-outs, cap
- Limitation of liability — aggregate cap, per-incident cap, excluded damages
- Insurance requirements — types, minimum coverage amounts
- Warranty — scope, duration, remedy limitations
- Governing law and dispute resolution (litigation vs. arbitration, venue)
Obligations
- Deliverables and milestones with deadlines
- Reporting or audit rights
- Data protection / security obligations
- Non-compete or exclusivity restrictions
- Confidentiality term and surviving obligations
IP & Data
- IP ownership and license-back provisions
- Data handling, return, and destruction requirements
- Usage rights post-termination
Store extracted data in a structured format (one row per contract, one column per field).
Phase 3: Portfolio Reports
Generate the reports requested by the user. Common report types:
Renewal Calendar
- All contracts with renewal/expiration dates within a specified window
- Sorted by urgency (nearest deadline first)
- Flag auto-renewals where notice deadline is approaching
- Include counterparty, contract value, and required action
Risk Matrix
- Each contract scored on risk dimensions: indemnification exposure, liability cap adequacy, insurance gaps, unfavorable termination terms
- Risk level per dimension: High / Medium / Low
- Aggregate portfolio risk summary
- Prioritized list of contracts requiring renegotiation
Obligation Tracker
- Active obligations by contract with deadlines
- Grouped by responsible team (legal, finance, ops, IT)
- Status: upcoming / due / overdue / completed
- Escalation flags for overdue items
Financial Summary
- Total portfolio commitment by period (quarterly/annual)
- Breakdown by contract type, counterparty, or business unit
- Contracts approaching minimum commitment thresholds
- Payment term distribution
Custom Extraction
- User specifies any data point via natural language prompt
- Agent extracts that field across all contracts
- Returns structured table with contract reference, extracted value, and confidence
Phase 4: Playbook Redlining
When the user provides a playbook of preferred positions:
- Parse the playbook — extract each preferred clause, its fallback positions, and non-negotiable terms
- Compare each contract against the playbook provision-by-provision:
- ✅ Matches preferred position → no action
- ⚠️ Deviates but within fallback range → flag with suggested language
- ❌ Violates non-negotiable → flag as critical, provide replacement language
- Generate a redline summary per contract:
- Section reference, current language, preferred language, risk level, recommended action
- Produce a portfolio deviation report:
- Which contracts deviate most from standards
- Most common deviations across the portfolio
- Priority queue for renegotiation based on risk × contract value
Playbook Structure
A playbook should define positions for key provisions. Example structure:
Provision: Limitation of Liability
Preferred: Mutual cap at 12 months of fees; carve-outs for IP infringement and confidentiality breach
Fallback: Mutual cap at 24 months of fees
Non-negotiable: Must have mutual cap; unlimited liability is rejected
Provision: Indemnification
Preferred: Mutual indemnification for third-party IP claims and confidentiality breach
Fallback: One-sided indemnification acceptable if capped
Non-negotiable: Must include IP infringement indemnity
Provision: Termination for Convenience
Preferred: Either party, 30 days written notice
Fallback: 60-90 days notice acceptable
Non-negotiable: Must have termination for convenience right
Quality Checks
After generating any output:
Troubleshooting
| Issue |
Resolution |
| Scanned PDFs with poor OCR quality |
Re-process with enhanced OCR; flag low-confidence extractions for manual review |
| Contract is an amendment with no standalone terms |
Link to parent agreement; extract only the modified terms and note inherited provisions |
| Ambiguous or missing provisions |
Mark as "Not Found" or "Ambiguous" — never guess; flag for human review |
| Conflicting terms between parent and amendment |
The amendment controls unless it explicitly preserves the original; flag the conflict |
| Very large corpus (10,000+) |
Process in batches by contract type or counterparty; produce interim reports |
| Playbook doesn't cover a provision found in contracts |
Note the gap; suggest adding the provision to the playbook |
1---2name: contract-portfolio-intelligence3description: Analyzes an entire portfolio of contracts at scale — extracting key terms, obligations, renewal dates, risk provisions, and financial commitments across hundreds or thousands of agreements simultaneously. Produces structured reports, obligation trackers, renewal calendars, and risk matrices. Also supports playbook-based redlining where contracts are compared against preferred positions and automatically marked up. Use when an in-house legal team, GC, legal ops, procurement, or finance team needs portfolio-wide visibility into contract terms, upcoming renewals, obligation compliance, or batch contract review against organizational standards.4license: Apache-2.05---67# Contract Portfolio Intelligence89Performs portfolio-scale contract analysis: batch extraction of terms, obligations, and risks across a large set of agreements, plus playbook-based redlining against organizational standards.1011## Prerequisites1213Before starting, gather:14151. **Contract corpus** — uploaded documents (PDF, DOCX) or a vault/folder reference containing the agreements162. **Analysis scope** — what to extract (renewals, indemnities, payment terms, liability caps, termination rights, or custom fields)173. **Playbook** (if redlining) — the organization's preferred positions, fallback clauses, and non-negotiable terms184. **Output format** — table/spreadsheet, narrative report, or both195. **Audience** — who receives the output (GC, board, finance, procurement)2021## Workflow2223### Phase 1: Ingest and Classify24251. Process each contract through OCR if scanned; extract full text from native PDFs and DOCX files262. Identify contract type (NDA, MSA, SaaS agreement, employment, vendor, lease, SOW, amendment, etc.)273. Detect parent-child relationships (master agreements → amendments → SOWs → change orders)284. De-duplicate — flag identical or near-identical documents295. Tag metadata: parties, effective date, governing law, contract type3031Output a contract inventory table:3233| # | Document | Type | Parties | Effective Date | Governing Law | Parent Doc |34|---|----------|------|---------|----------------|---------------|------------|35| 1 | Example | MSA | A ↔ B | 2024-01-15 | Delaware | — |3637### Phase 2: Term Extraction3839For each contract, extract the following structured fields (skip fields that don't apply to the contract type):4041**Dates & Term**42- Effective date, expiration date, term length43- Auto-renewal (yes/no), renewal notice period, notice deadline44- Termination for convenience (yes/no), notice period, cure period4546**Financial Terms**47- Contract value / total commitment48- Payment terms (Net 30, Net 60, etc.)49- Price escalation / adjustment mechanisms50- Minimum commitments or volume thresholds51- Late payment penalties5253**Risk Provisions**54- Indemnification — mutual vs. one-sided, carve-outs, cap55- Limitation of liability — aggregate cap, per-incident cap, excluded damages56- Insurance requirements — types, minimum coverage amounts57- Warranty — scope, duration, remedy limitations58- Governing law and dispute resolution (litigation vs. arbitration, venue)5960**Obligations**61- Deliverables and milestones with deadlines62- Reporting or audit rights63- Data protection / security obligations64- Non-compete or exclusivity restrictions65- Confidentiality term and surviving obligations6667**IP & Data**68- IP ownership and license-back provisions69- Data handling, return, and destruction requirements70- Usage rights post-termination7172Store extracted data in a structured format (one row per contract, one column per field).7374### Phase 3: Portfolio Reports7576Generate the reports requested by the user. Common report types:7778**Renewal Calendar**79- All contracts with renewal/expiration dates within a specified window80- Sorted by urgency (nearest deadline first)81- Flag auto-renewals where notice deadline is approaching82- Include counterparty, contract value, and required action8384**Risk Matrix**85- Each contract scored on risk dimensions: indemnification exposure, liability cap adequacy, insurance gaps, unfavorable termination terms86- Risk level per dimension: High / Medium / Low87- Aggregate portfolio risk summary88- Prioritized list of contracts requiring renegotiation8990**Obligation Tracker**91- Active obligations by contract with deadlines92- Grouped by responsible team (legal, finance, ops, IT)93- Status: upcoming / due / overdue / completed94- Escalation flags for overdue items9596**Financial Summary**97- Total portfolio commitment by period (quarterly/annual)98- Breakdown by contract type, counterparty, or business unit99- Contracts approaching minimum commitment thresholds100- Payment term distribution101102**Custom Extraction**103- User specifies any data point via natural language prompt104- Agent extracts that field across all contracts105- Returns structured table with contract reference, extracted value, and confidence106107### Phase 4: Playbook Redlining108109When the user provides a playbook of preferred positions:1101111. **Parse the playbook** — extract each preferred clause, its fallback positions, and non-negotiable terms1122. **Compare each contract** against the playbook provision-by-provision:113 - ✅ Matches preferred position → no action114 - ⚠️ Deviates but within fallback range → flag with suggested language115 - ❌ Violates non-negotiable → flag as critical, provide replacement language1163. **Generate a redline summary** per contract:117 - Section reference, current language, preferred language, risk level, recommended action1184. **Produce a portfolio deviation report**:119 - Which contracts deviate most from standards120 - Most common deviations across the portfolio121 - Priority queue for renegotiation based on risk × contract value122123### Playbook Structure124125A playbook should define positions for key provisions. Example structure:126127```128Provision: Limitation of Liability129 Preferred: Mutual cap at 12 months of fees; carve-outs for IP infringement and confidentiality breach130 Fallback: Mutual cap at 24 months of fees131 Non-negotiable: Must have mutual cap; unlimited liability is rejected132133Provision: Indemnification134 Preferred: Mutual indemnification for third-party IP claims and confidentiality breach135 Fallback: One-sided indemnification acceptable if capped136 Non-negotiable: Must include IP infringement indemnity137138Provision: Termination for Convenience139 Preferred: Either party, 30 days written notice140 Fallback: 60-90 days notice acceptable141 Non-negotiable: Must have termination for convenience right142```143144## Quality Checks145146After generating any output:147148- [ ] Every contract in the corpus appears in the inventory — none skipped149- [ ] Extracted dates are validated (no future effective dates on executed contracts, expiration after effective)150- [ ] Parent-child relationships are logically consistent151- [ ] Risk scores are justified with specific clause references152- [ ] Renewal deadlines account for notice periods (deadline = expiration minus notice period)153- [ ] Financial figures are in consistent currency and units154- [ ] Playbook deviations cite the specific section and language from both the contract and the playbook155156## Troubleshooting157158| Issue | Resolution |159|-------|------------|160| Scanned PDFs with poor OCR quality | Re-process with enhanced OCR; flag low-confidence extractions for manual review |161| Contract is an amendment with no standalone terms | Link to parent agreement; extract only the modified terms and note inherited provisions |162| Ambiguous or missing provisions | Mark as "Not Found" or "Ambiguous" — never guess; flag for human review |163| Conflicting terms between parent and amendment | The amendment controls unless it explicitly preserves the original; flag the conflict |164| Very large corpus (10,000+) | Process in batches by contract type or counterparty; produce interim reports |165| Playbook doesn't cover a provision found in contracts | Note the gap; suggest adding the provision to the playbook |