Free · Excel & Google Sheets

Free Contract Renewal Tracker Template (Excel & Google Sheets)

A free contract register that records each contract’s end date, whether it auto-renews and its notice period, then calculates the last day to give notice and colours the row as that date gets close. It also totals annual contract value by currency.

Updated 28 Sep 2026No sign-upSeptember 2026 edition

In the file

5 sheets · 163 KB · opens in Excel, Google Sheets and LibreOffice

  1. Start here
  2. Contracts
  3. Dashboard
  4. Import to ExpiryEdge
  5. Lists

Prefer a plain list? The CSV (1 KB) has the same columns and example rows, without formulas or colours.

Preview

The tracker sheet, with example rows

This is the colour logic the spreadsheet uses. Move the date to see which rows turn amber or red next.

contract-renewal-tracker.xlsx

Contracts: example rows, statuses as of 28 Sep 2026
ContractAuto-renews?End dateNotice-by dateDays leftStatus
Example – Office cleaning servicesYes31 Oct 20261 Oct 20263Due ≤30 days
Example – Photocopier leaseYes14 Jan 202716 Oct 202618Due ≤30 days
Example – CRM subscriptionYes30 Nov 20261 Oct 20263Due ≤30 days
Example – Warehouse unit 4 leaseNo23 Jun 203125 Dec 20301549OK
Example – Customer support agreement, Sample CorpNo30 Sep 202631 Aug 2026-28Expired
Example – Waste collectionYes31 Mar 202731 Dec 202694OK

1 expired, 3 due ≤30 days, 2 OK. The example dates are fixed, so as real time passes more of them turn amber and red: that is the formula working.

Start hereContractsDashboardImport to ExpiryEdgeLists

How to use it in 3 steps

  1. Clear the examples

    Delete the rows that start with "Example –", or type over them.

  2. Read each contract once

    Copy the end date, whether it renews automatically and the notice period in days. The notice-by date is calculated for you.

  3. Act on the notice-by date

    Status follows the notice-by date, not the end date, because that is the one you cannot miss. Check the Dashboard weekly.

What’s inside

Start here
How to use it in three steps, the colour key and what every column means.
Contracts
Contract renewal tracker. Filters, dropdowns, frozen header and status colours, with formulas filled down 500 rows.
Dashboard
Counts by status and the next 10 dates, as of today.
Import to ExpiryEdge
The same rows in the ExpiryEdge bulk-import columns, filled by formula.
Lists
The options behind every dropdown. Add your own.

Open it in Google Sheets

There is no shared Google copy to request access to. You import the same file, so you own your copy from the start.

  1. Download the .xlsx

    Use the button above. It saves straight to your computer.

  2. Import it into a blank Google Sheet

    Open Google Sheets, create a blank spreadsheet, then choose File › Import › Upload and pick the file. Select "Replace spreadsheet".

  3. Check the dates

    Formulas, dropdowns and status colours carry over. If your Google account uses a different locale, dates show in that format, which is fine: they are real dates underneath.

Columns explained

Type in the input columns. Calculated columns fill themselves. Columns marked required are the ones the import sheet needs.

Columns on the Contracts sheet
ColumnWhat to enterType
ContractWhat the contract is for.Input · required
CounterpartyThe supplier, customer or landlord.Input
TypeSupplier, Customer, Lease, Software, Service or Other.Input
OwnerWho decides whether to renew.Input
Owner emailWho should be reminded. Becomes notification_email on import.Input
PriorityLow, Medium or High. Matches the ExpiryEdge priority field.Input
Start dateWhen the current term started.Input
End dateWhen the current term ends.Input · required
Term (months)Length of each term, for reference.Input
Auto-renews?Yes if it rolls over unless someone gives notice.Input
Notice period (days)Days of notice the contract requires before the end date. Check the contract wording.Input
Notice-by dateCalculated. End date minus the notice period: the last day to give notice.Calculated
Days to notice-byCalculated. Days until the notice-by date.Calculated
StatusCalculated from the notice-by date, because that is the date you cannot miss.Calculated
Days to endCalculated. Days until the end date.Calculated
Annual valueApproximate value per year.Input
CurrencyISO code, e.g. GBP or USD.Input
Contract linkLink to the signed contract.Input
NotesAnything the next person needs to know.Input

When a spreadsheet stops being enough

For a handful of dates and one careful owner, this template is all you need. These are the signs it has become the wrong tool.

Sign 1

More than one person owns the dates

When several people add rows, dates get typed as text, copies drift apart and nobody is sure which file is current.

Sign 2

Reminders depend on someone opening the file

The status turns red whether or not anyone is looking. If the person who checks it is on leave, the date passes quietly.

Sign 3

You need to prove what happened

An audit, insurer or inspector may ask who was told, when, and where the certificate is. A spreadsheet does not keep that history.

When you would rather not remember

What this looks like when it runs itself

The same row, tracked for you: an owner, reminders at 90, 60, 30 and 7 days by email, SMS, WhatsApp, Slack or Teams, the document on file and a log of who did what. The "Import to ExpiryEdge" sheet in this template is already laid out for Bulk Import, so moving across is one upload.

Try it with your own dates, free for 14 days, no card
FAQ

Contract renewal tracker: questions, answered

With an auto-renewing contract, the end date is not the deadline. The deadline is the last day you can give notice, which can be months earlier. Miss it and the contract usually rolls into a new term. The sheet shows days to the end date too.

The sheet subtracts the notice period in days from the end date. Contracts count notice in different ways (calendar months, business days, "received by" rather than "sent by"), so read the clause and, if in doubt, add a few days of margin to the notice period.

Yes. Each row has a currency, and the Dashboard totals annual value per currency rather than adding pounds to dollars.

Yes. Open a blank Google Sheet, choose File › Import › Upload, pick the .xlsx and select "Replace spreadsheet". The formulas use only functions that Google Sheets, Excel and LibreOffice all support (no FILTER, SORT or XLOOKUP), so the status colours, dropdowns and dashboard carry over. The Excel table styling becomes a plain range with filters.

No. A spreadsheet only changes when someone opens it, so the colours are only as good as your habit of checking. Put a weekly calendar slot on it, or move the contracts into a tool that sends the reminders for you.

It is the same rows laid out in the ExpiryEdge bulk-import columns (name, expiry_date, type and so on), filled in by formula. You can ignore it. If you ever move the list into ExpiryEdge, upload the file in Bulk Import and pick that sheet, or save the sheet as CSV. Nothing is sent anywhere by the file itself.

A free template, not legal advice. It tracks the dates you enter; it does not decide which rules apply to you. Check requirements against the official source for your situation.

Email me when this template is updated

Optional. The template is already yours without it. One email when a new edition is out, nothing else.

We use your email only for this. See our privacy policy.