Custos turns contract renewals into a before-and-after

Custos's fork now pulls the money terms out of every contract and shows you what changed when a new version lands.

contract-reviewanalytics

The fork extracts the economic spine of a contract - total value, term length, auto-renew, notice period, governing law - into structured data it can track over time. Re-upload a renewed or amended agreement and it pulls the figures again, then sits the old numbers next to the new ones in the Key Terms panel. A renewal that bumps the value shows up as a green arrow and a percentage; a cut shows red. Where the model can't read a field confidently, it leaves it blank rather than guessing, and it keeps the raw output so anyone can check its work.

It's a renewal-comparison view that falls out of the data design itself, no separate dashboard required. One caveat worth knowing: contracts already in the system only get this once they're re-uploaded.

So what Worth a look for anyone managing a renewals book or a contract portfolio who wants version-over-version movement visible at a glance instead of reconstructed by hand.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

3 commits from Custos/legalos, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
b4c38597 Lifecycle: extract & display structured contract facts Custos 2026-05-04 ↗ GitHub
commit body
- New contract_facts table tracks effective_date, term_months, total_value
  (in minor units), currency, auto_renew, notice_days, governing_law per
  document version. Re-uploads/renewals add new rows so changes can be
  charted later.
- New lib/contractFacts.ts: maybeExtractContractFacts() runs an LLM call
  on uploaded text and inserts a row keyed to the doc's current version.
  Fires fire-and-forget alongside counterparty extraction; never blocks.
- GET /projects/:id/facts returns rows sorted newest-first.
- New KeyTermsPanel on the project documents tab (collapsible, default
  open) renders the rows as a compact table with formatted money/term/dates.
c2c2a147 Lifecycle deltas: % change vs prior version in Key Terms Custos 2026-05-04 ↗ GitHub
59760a0d Re-extract contract facts on each new document version Custos 2026-05-04 ↗ GitHub

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-46.md from inside the repo you want the changes in.

⬇ Download capture-thread-46.md