Legal & procurement operations

Turning a shared drive of contracts into a renewal calendar nobody has to hunt for

Clause-level extraction with citations back to the exact page, amendments resolved against their base contract, and a renewal calendar built from dates nobody had to type in twice.

Renewal deadlines missed
occasional → zero
Time to answer a portfolio-wide clause question
weeks → minutes
Contracts with citation-verified extracted terms
zero → the full active portfolio
Sector
Legal & procurement operations
Scope
~850 active contracts, 12 template generations
Engagement
Discovery sprint, then delivery pod
Duration
6 months

Stack

  • Claude
  • GPT-4 class models
  • pgvector
  • Unstructured.io
  • FastAPI
  • PostgreSQL
  • React
  • Ragas

Practices involved

Discuss a similar problem

The situation

Hundreds of vendor and customer contracts sat in a shared drive, drafted across twelve years of template revisions by several different law firms. Nobody could quickly answer which contracts renew in the next ninety days, which carry a liability cap below a given threshold, or which still use an indemnification clause the legal team had since decided to retire, without opening and reading each one.

The constraint

This is a domain where a plausible-sounding wrong answer is a real liability, not an inconvenience, so extraction had to be verifiable rather than merely confident-sounding. Contracts are long, inconsistently formatted, and frequently modified by side letters and amendments that have to be read together with the base contract to know the actual current terms — the base document alone is often wrong on its own. And the legal team, correctly, would not accept a tool that auto-approved anything; this had to speed up their review, not replace their judgement.

What we built

Extraction that shows its work

Key commercial terms — parties, effective and renewal dates, termination notice period, liability cap, indemnification type, governing law — are extracted with a citation back to the exact clause and page. A lawyer verifies a field in seconds by clicking through to the source, rather than re-reading the contract to check the system's homework.

Amendments resolved, not merged silently

Side letters and amendments are matched to their base contract, and the current value of a term is shown alongside the original, with the amendment that changed it. The lawyer sees what changed and why, rather than trusting a single merged number that hides its own history.

A renewal calendar built from the extraction, not a spreadsheet

Renewal dates and notice periods generate a standing calendar view, so "what needs a decision in the next quarter" is something the system already knows, not something someone has to go looking for.

Clause-variance clustering

Similar clauses — every indemnification clause across the portfolio, for instance — are grouped so the legal team can see the actual spread of language in use at a glance, and flag the outliers worth standardising, instead of reviewing contract by contract to notice the same thing.

What changed

The renewal deadline that triggered the project stopped being a risk — the calendar catches it automatically now. More broadly, portfolio-wide questions that used to mean a multi-week manual review became something the legal team could answer themselves in minutes.

What we would do differently

We built the citation model assuming one commercial term lives in one clause. Real contracts routinely split a single term across a clause and a schedule, or a clause and an amendment, and the first version of the extraction missed that split. We rebuilt it to support multi-span citations mid-project; for a legal document, that should have been the starting assumption, not an edge case discovered after the fact.

Outcomes

Renewal deadlines missed
occasional → zero
Time to answer a portfolio-wide clause question
weeks → minutes
Contracts with citation-verified extracted terms
zero → the full active portfolio

Client identity withheld under a mutual NDA. Figures are illustrative — rounded and directional, meant to show the shape of the change rather than an audited result. We will walk through the real numbers, and how they were measured, under NDA on a call.

Next step

Tell us what you're trying to ship.

Send the brief, the RFP, or three messy sentences about the problem. You get a written point of view from an architect within two working days — not a sales deck.