Flowgrammer

Contract Tracker

App-neutral contract register for ownership, status, file pointers, dates, and operational notice windows. Not legal advice and not a CLM.

— Craig Major

What a contract tracker is

A contract tracker is an operational register. Each row names an owner, a closed status, the authoritative file and version, and the effective, expiry, renewal, and notice dates. Formulas can compute a notice window as a planning aid. They do not interpret a clause, prove legal notice, or renew the contract. A person still records renew, amend, or terminate.

If you still need a named approver and a version-locked decision before anything happens downstream, start with the document approval workflow. If you still need to decide what to automate first, start with document processing automation.

Who this is for

Use this when signed files already live in a shared drive, renewal dates sit in calendars or nowhere, and the team cannot point to one owner, one status, and one file version.

Prerequisites:

  • One contract family for the first build, such as vendor MSAs
  • A durable file pointer plus a native id or version key when the storage system provides one
  • A named owner, not a shared inbox
  • A written rule for what happens when a reminder gets no reply
  • Fictional or approved samples before any live write

Leave these out of the first register: legal advice, clause extraction, an enforceability conclusion, automatic renewal or termination, a CLM replacement claim, e-sign send, a full approval matrix, invoice amounts, tax, PO, or payment fields, and any claim that a retention label certifies compliance.

If the job is invoice amounts, tax, PO, and payment status, use the invoice tracker. That register uses a different schema. Do not copy its money fields into this one.

If the pain is still "we cannot read the PDF," start with intelligent document processing. Extraction confidence can send a file to review. It cannot decide renewal.

How this differs from nearby jobs

Job What it owns What this register does not do
Contract tracker Owner, status, dates, notice window, file pointer, reminder, explicit renewal decision Give legal advice or replace a CLM
Document approval Named authority, version-locked approve / reject / request-changes, one downstream write Live inside this spreadsheet as a full matrix
Invoice tracker Amounts, tax, PO, payment readiness Share a money schema with contracts
CLM software Repository, generation, redlines, obligation analytics, vendor renewal products Get replaced by a spreadsheet
E-sign Send, sign, track, store a signed package Treat signature-complete as a renewal decision

DocuSign CLM, Ironclad, and PandaDoc CLM are adjacent products. Adobe Acrobat Sign is an e-sign product. This page does not rank them. Use the published implementation guide that matches your workspace: Google Sheets, SharePoint / Microsoft Lists, monday.com, Notion, Airtable, Obsidian, ClickUp, or Smartsheet. Each uses the same contract-register fields and keeps renewal decisions with a person.

Worked example

Cedar & Quay Fabrication Ltd is a fictional Toronto fabricator. Operations owns vendor MSA CTR-CQ-MSA-2024-017 with Northshore Logistics. Register row REG-CQ-2026-0914 holds the file pointer, version key, owner Avery, status active, effective 2024-10-01, expiry 2027-09-30, and a 60-day operational notice window. The obligations summary notes a quarterly business review and an insurance certificate on file. Approval status is a pointer, not the approval system.

That clean path is case 1 in the Contract Register and Renewal Template. The other six cases reuse the same contract family. They do not extract clauses or advise on auto-renewal legality.

Invoice-specific status still sits on the invoice tracker. Approval-specific authority still sits on the document approval workflow and the document approval status and role matrix.

The register workflow

  1. Intake. Create a row with contract_id, counterparty, owner, and a pointer to the authoritative file. Do not treat intake as a renewal decision.
  2. Identity. Store file_pointer_url, file_storage_system, file_native_id, and file_version_key when available. Refuse active if the pointer policy is unmet.
  3. Dates. Enter effective, expiry, renewal, and notice_window_days from operations input. The sheet may compute notice_date, days_to_notice, and days_to_expiry against an as-of date.
  4. Status. Use the closed list: draft, active, pending review, notice window open, renewal decision needed, renewed, amended, expired, terminated, cancelled, duplicate, superseded, exception hold.
  5. Obligations summary. Write short operational notes. This is not clause extraction and not an enforceability opinion.
  6. Approval pointer. Record approval_status and an optional approval_request_ref. For the control system itself, stay on the document approval workflow.
  7. Remind and escalate. Schedule a reminder to the owner. If there is no ack, notify the escalation target. Timeout holds or escalates. It does not renew or terminate.
  8. Stop duplicates. A second row with the same counterparty and contract_id is duplicate. Link the canonical register_id.
  9. Version the file. A material file replace needs a superseding row or an exception for a missing or stale pointer.
  10. Decide. A named owner records renew, amend, or terminate in decision_note. Keep evidence of the reminder and the decision. Reminder delivery is not proof of valid contractual notice.

Notice window formulas

These formulas are planning aids. They are not legal notice, statutory interpretation, or an auto-renewal rule.

Field Operational formula What a person still does
notice_date expiry_date minus notice_window_days when both exist Confirm the window days came from operations input, not from the sheet inventing a clause
days_to_notice notice_date minus the as-of date Decide whether to open notice_window_open
days_to_expiry expiry_date minus the as-of date Decide whether the row is expired
auto_renew_flag_operational yes / no / unknown Treat unknown as a question for counsel out of band. The flag has no legal meaning

On the as-of date 8 September 2026, the clean Cedar & Quay MSA uses expiry 30 September 2027 and a 60-day window. That produces notice date 1 August 2027, 327 days to notice, and 387 days to expiry. Case 2 uses a nearer expiry so the same family can show a window that is already open. Those numbers are fixture math, not a customer result.

What can run automatically, and what cannot

Situation Automatic action Person required
Complete row with file pointer and owner Status may stay active; day counts may update Owner assignment
As-of date crosses notice_date Flag notice_window_open; schedule a reminder Owner reviews the file
Notice passed with no decision Flag renewal_decision_needed Explicit renew, amend, or terminate
File pointer or version key blank on an active or decision row Exception missing_or_stale_file_pointer Restore the pointer before any renewal close
Second row, same counterparty and contract id Status duplicate Admin links the canonical row
Actor not on the matrix sets renewed Exception unauthorized_status_change; revert or hold Register admin reviews
Past expiry with no decision Status expired plus expired_without_renewal_decision Escalation owner
Reminder sent, no ack, escalation unreachable Exception reminder_escalation_failed Repair the path. Do not auto-renew
Payment, bank-detail change, or final accounting post Never Entirely outside
Counsel opinion on auto-renewal Never in the sheet Out of band

Human gates

A person keeps these decisions:

  • Named owner before a row goes active
  • Explicit renew, amend, or terminate
  • Counsel review when the client's policy requires it
  • Duplicate versus canonical row
  • Missing or stale file pointer
  • Unauthorized status change
  • Failed reminder or escalation
  • Payment release and any supplier bank-detail change

A reminder can nudge. It cannot renew. It cannot terminate. It cannot prove that contractual notice was validly delivered.

Failure paths

Failure Expected status Renewal decision Payment
Missing or stale file pointer exception_hold + missing_or_stale_file_pointer Blocked Blocked
Duplicate counterparty and contract id duplicate No second track Blocked
Unauthorized status change to renewed exception_hold + unauthorized_status_change Revert or hold Blocked
Expired without a decision expired + expired_without_renewal_decision Escalation required Blocked
Reminder or escalation failed renewal_decision_needed + reminder_escalation_failed Still required; no auto-renew Blocked
Notice window open, owner blank Exception notice_window_open_no_owner Blocked until an owner is named Blocked
Access test fail on the file pointer Exception access_test_failed Blocked until access is restored Blocked
Any payment or bank-detail change Forbidden Forbidden Forbidden

Test cases

The seven Cedar & Quay cases are operational fixtures. They are not customer stories and they do not measure accuracy.

Case Input Without the control After the control
Clean active CTR-CQ-MSA-2024-017, pointer present Dates in a calendar only active, no exception
Approaching notice Same family, nearer expiry Silence treated as renewal notice_window_open, reminder to Avery, escalate to Riley
Missing pointer Active row, blank file or version Renewal closed on a missing file missing_or_stale_file_pointer; decision blocked
Duplicate Second Northshore + same contract id Two renewal tracks duplicate; canonical REG-CQ-2026-0914 continues
Unauthorized change Teammate marks renewed Silent success Exception, revert or hold
Expired, no decision Expiry 15 August 2026 Row forgotten expired plus escalation
Failed handoff Reminder sent, Riley unreachable Timeout treated as renew reminder_escalation_failed; decision still open

The Contract Register and Renewal Template walks each case on its own sheet.

What to measure

Record rows with a file pointer and version key, active rows with an owner, notice-window rows with a scheduled reminder, blocked unauthorized status changes, suppressed duplicates, expired rows with an explicit renewal decision, and hours from reminder to ack. Put your numbers in the workbook. Keep them as operational counts, not as a savings, accuracy, or ranking result.

There is no live production contract-tracker metric here, and no Flowgrammer customer case.

How to use the register template

The paired asset is an editable workbook, not a marketplace template, not a CLM, and not legal advice.

  1. Open Instructions and read the legal-boundary disclaimer.
  2. Confirm the shared field list and the closed status model.
  3. Fill RolesAuthority. External counterparties cannot flip terminal decisions.
  4. Walk Case01 through Case07. Confirm case 3 blocks renewal and case 7 does not auto-renew.
  5. Answer the access, security, and retention questions. Questions are not certification.
  6. Choose the implementation that matches your workspace: Google Sheets, SharePoint / Microsoft Lists, monday.com, Notion, Airtable, Obsidian, ClickUp, or Smartsheet. Each reuses this field dictionary.

SharePoint library work stays on SharePoint document processing when the file lives there. Do not replace this register with a SharePoint-only approval workbook.

Realistic limitations

  • A reminder email is not proof that contractual notice was validly delivered.
  • auto_renew_flag_operational is an operations flag. It does not mean the clause is enforceable.
  • Google sheet or range protection is not a security measure. People can still copy, print, or export a copy.
  • Airtable attachment download URLs expire. Do not treat an attachment CDN link as the sole durable contract file pointer.
  • Notion Date reminders exist. Recurring reminders are not currently available in Notion Help, and version-history depth is plan-dependent.
  • Power Automate can set a personal reminder on a SharePoint or Lists DateTime column. That flow is not available in GCC or sovereign clouds, and it is not legal notice.
  • This guide does not rank CLM or e-sign vendors, and it is not a Google, Microsoft, Notion, or Airtable product walkthrough.

Next step

Download the Contract Register and Renewal Template and fill the owner, dates, file pointer, and seven cases.

If owners, notice windows, or the destination register are still unclear, start with an AI Success Audit. If one contract family, named owners, and one register destination are already defined, book a fit call to scope an AI Automation Systems build.

Sources

Frequently asked questions

What is a contract tracker?

It is an operational register for ownership, status, file pointers, dates, and notice windows so a person can record an explicit renew, amend, or terminate decision.

Is a contract tracker legal advice?

No. The register does not interpret clauses, decide enforceability, or replace qualified counsel.

Do notice-window formulas prove legal notice?

No. They are planning aids. Reminder delivery is not proof of valid contractual notice.

Does this replace a CLM or e-sign product?

No. A spreadsheet or workspace register tracks the row. CLM and e-sign products do different jobs. Signature-complete is not a renewal decision.

Is this the same as document approval?

No. Approval status is a pointer. Named authority, version-locked decisions, and one downstream write stay on the document approval workflow.

Can I reuse an invoice tracker for contracts?

No. Invoice registers own amounts, tax, PO, and payment status. Mixing those fields hides the contract job.

What happens if a reminder gets no reply?

Escalate or hold. Do not auto-renew or auto-terminate from silence.