Skip to content

Analysis

Deterministic analysis of extracted contracts: no model calls. See Contract analysis.

RiskAnalyzer

RiskAnalyzer

Evaluate a Playbook against an extraction result.

Parameters:

Name Type Description Default
playbook Playbook

A Playbook instance (NDA, SaaS, or custom YAML-loaded).

required

analyze(result: object) -> list[RiskFlag]

Run all playbook rules against result and return a list of RiskFlags.

Parameters:

Name Type Description Default
result object

Any object with a .clauses attribute (Contract, ExtractionResult, or a list of Clause objects).

required

Returns:

Type Description
list[RiskFlag]

list[RiskFlag] โ€” one entry per rule that fired.

missing_clauses(result: object) -> list[str]

Return a list of required CUAD clause types that are absent from result.

This is separate from the per-rule flag_if_missing checks โ€” it compares the full set of required_clauses in the playbook against what was extracted.

Parameters:

Name Type Description Default
result object

Any object with a .clauses attribute.

required

Returns:

Type Description
list[str]

list[str] โ€” CUAD clause type identifiers that are missing.

RiskFlag

RiskFlag dataclass

A risk identified by a playbook rule.

ObligationTimeline

ObligationTimeline

Resolve and manage obligation deadlines from contract extraction output.

Parameters:

Name Type Description Default
obligations list

List of obligation objects (from extraction result). Accepts objects with .obligor, .action, .deadline, .source_section attributes, or dicts with the same keys.

required
effective_date str | date

The contract effective date as "YYYY-MM-DD" or a date object.

required

upcoming(days: int = 30, reference: date | None = None) -> list[ObligationEntry]

Return obligations due within the next days calendar days.

Parameters:

Name Type Description Default
days int

Look-ahead window in calendar days.

30
reference date | None

Reference date (default: today).

None

Returns:

Type Description
list[ObligationEntry]

List of ObligationEntry sorted by resolved_date ascending.

all_resolved() -> list[ObligationEntry]

All entries with successfully resolved absolute dates, sorted by date.

unresolved() -> list[ObligationEntry]

Entries where deadline could not be resolved to an absolute date.

to_ical(calendar_name: str = 'Contract Obligations') -> str

Export resolved obligations as an iCalendar (.ics) string.

Returns:

Type Description
str

A standards-compliant iCalendar string suitable for import

str

into any calendar application (Google Calendar, Outlook, etc.).

ObligationEntry

ObligationEntry dataclass

An obligation with a resolved absolute deadline.

compare

compare(result_v1: object, result_v2: object, similarity_threshold: float = 0.85) -> ContractDiff

Compare two contract extraction results.

Parameters:

Name Type Description Default
result_v1 object

First extraction result (or list of clauses).

required
result_v2 object

Second extraction result (or list of clauses).

required
similarity_threshold float

Clauses with text similarity above this value are considered "same clause, minor edit" rather than "removed + added". Default 0.85.

0.85

Returns:

Type Description
ContractDiff

ContractDiff with added, removed, and modified clauses.

ContractDiff

ContractDiff dataclass

The result of comparing two contract extraction results.