WCapsuleM8

Contractor & Service Contract Register

Free

Keep every service contract in one register with its renewal date, its notice deadline and its annualised value, so nothing renews itself while you are not looking. Runs entirely in your browser. Nothing is uploaded.

Version 1.0.0 · Updated Aug 5, 2026

Overview

CM8-99 is a register of service contracts and the dates attached to them. You enter each contract once — supplier, service, term, value, payment frequency, notice period — and it works out what a spreadsheet of end dates never quite does: the last day on which you can still get out, how long you have left to decide, and what it costs you a year if you miss. It is aimed at the ordinary facilities and office contracts that quietly accumulate: lifts, cleaning, guarding, waste, grounds, catering, IT support, insurance, utilities and professional retainers. Everything runs inside this single file. There is no account, no upload and no network request of any kind, so supplier names, values and terms never leave the computer you are using.

How to use Contractor & Service Contract Register

The complete in-tool guidance, reproduced here so you can read it before you download.

What this tool does

CM8-99 is a register of service contracts and the dates attached to them. You enter each contract once — supplier, service, term, value, payment frequency, notice period — and it works out what a spreadsheet of end dates never quite does: the last day on which you can still get out, how long you have left to decide, and what it costs you a year if you miss.

It is aimed at the ordinary facilities and office contracts that quietly accumulate: lifts, cleaning, guarding, waste, grounds, catering, IT support, insurance, utilities and professional retainers. Everything runs inside this single file. There is no account, no upload and no network request of any kind, so supplier names, values and terms never leave the computer you are using.

The date that actually matters

Almost every register of contracts is sorted by expiry date, and almost every register of contracts is therefore useless. The expiry date is not the deadline. The deadline is the last day you can serve notice, and it sits a notice period before expiry.

Notice deadline = end date − notice period (in calendar days)

A contract that ends in 45 days with a 90-day notice period has no decision left to make: the window shut 45 days ago. If the contract renews automatically, you are already committed to the next term, and the first anyone usually notices is the invoice. That is why this tool sorts the renewal calendar by notice date, not by expiry, and why the tile that matters most is Notice deadlines passed.

Read the clause, not this page. A notice period written as "three months" is not 90 days, and one measured from an anniversary or a break date is not measured from the end date at all. Some contracts require notice in writing to a named address, or within a window that opens as well as closes. This tool subtracts days from a date. It has not read your contract.

What to record

One row per contract, not per invoice or per site visit. If the same supplier holds three separate agreements, that is three rows — they will have three different notice dates.

  • End date of the current term — the only required date. If the contract has already rolled over, enter the end of the term you are actually in now, not the original one.
  • Notice period — in calendar days, taken from the contract. Enter 0 if none is required. The tool will not let you tick auto-renewal without it, because the two together are the whole point of the register.
  • Auto renewal — tick it only if the contract continues by itself. A contract that simply lapses at expiry is a different and far less dangerous animal.
  • Owner — the person who will actually make the decision, not the department. A renewal with no name against it is a renewal nobody will make.
  • Key performance indicators — what the supplier is meant to deliver. At renewal, this is the field you read before you agree to another term.
  • Status — your own view of where the contract stands. It is deliberately independent of the dates, so the tool can show you where the two disagree.

Annualising the value

Contracts are priced in whatever unit the supplier invoices in, and a register that adds a monthly cleaning bill to an annual audit fee produces a meaningless total. So the value you enter is the amount invoiced each time, and the tool multiplies it by the number of payments a year:

Annualised value = value per payment × payments per year monthly × 12 · quarterly × 4 · annual × 1 · on demand × 1

Two things follow, and neither is assumed silently. First, on demand is not annualised. There is no payment frequency to multiply by, so the tool takes the figure you entered as your own estimate of a year's spend and passes it straight through. The tiles say how many of those estimates are in the total. If you would rather they were excluded, leave the value blank.

Second, the annualised figure is a run rate, not a forecast. It is what the contract costs for twelve months at the current price. It does not know about indexation, a price review halfway through the term, volume-based charges, or the contract ending in four months' time. For a contract with a genuinely variable price, enter a representative figure and say so in the report notes.

Every figure, worked out

Nothing here is hidden. The register and the renewal calendar show the inputs alongside the results so anybody can check them.

Days to expiry = end date − today Notice deadline = end date − notice period Days to notice = notice deadline − today = days to expiry − notice period Live contract = status is not "terminated" AND end date is on or after today Annual value = sum of annualised value across live contracts only

The word live does a lot of work. Every forward-looking figure — annual value, expiring soon, notice deadlines passed, auto-renewing, missing insurance — counts live contracts only. A contract that ended last year is not a commitment, and including it would inflate the number you take to a budget meeting. The Contracts tile shows the split so nothing disappears without being counted somewhere.

Days are whole calendar days, and today counts as day zero. A notice deadline showing 0 days means the last day to serve notice is today.

The renewal states

Each contract carries a calculated state, shown in the register and in the renewal calendar:

  • State — Meaning
  • In term — The notice deadline is further away than your warning window.
  • Notice due in N days — The deadline is inside the warning window. Decide now.
  • Notice due today — Today is the last day.
  • Notice window closed — The deadline has passed on a contract that does not auto-renew — it will end at expiry.
  • Auto-renewed — committed — The deadline has passed on a contract that renews itself. Another term has begun.
  • Renewed — end date not updated — An auto-renewing contract whose end date is in the past. The register is out of date, not the contract.
  • Expired N days ago — The term ended and nothing renews it.

The status field you type and the state the tool calculates are separate on purpose. A contract marked active whose end date passed a month ago is one of the most useful things a register can show you, and it can only show it if the two are allowed to disagree.

Auto-renewal and the breach setting

The setting treat a passed notice date on an auto-renewing contract as a breach controls how loudly the tool reports that situation. Ticked — the default — those contracts read "Auto-renewed — committed" and are marked in red, because in substance you have agreed to another term without deciding to. Unticked, they read "Notice window closed" in amber.

The setting changes the wording and the colour. It does not change a single date, and it does not change the count in the Notice deadlines passed tile, which always includes them. Turn it down if the noise is not helping; do not turn it down to make the register look better.

Insurance evidence

Two fields cover it: whether you have seen and checked the certificate, and the date the cover ends. A contract is counted as a gap if the certificate has not been checked, if no expiry date is recorded, or if the recorded date has passed. Cover due to expire inside the insurance warning window is flagged in amber but is not counted as a gap — it has not lapsed yet.

Not every contract needs insurance evidence. A fixed-price electricity supply probably does not; a contractor working at height on your roof certainly does. The tile is a prompt to look, not a verdict. Where evidence is genuinely not required, record that in the notes rather than ticking the box, so the register does not quietly claim a check that never happened.

Working the renewal calendar

The renewal calendar lists every contract except terminated ones, in notice-date order, with expiry, notice deadline, the days remaining to each, the annualised value and the state. Read it from the top: the first row is the next decision you have to make, whatever its expiry date says.

A practical rhythm is to open it monthly, deal with everything showing a decision inside the warning window, and record what you decided in the notes before printing. Set the warning window to the longest notice period you routinely deal with — if several contracts require six months, 90 days will show them to you far too late.

The supplier view

The supplier summary groups the register by supplier: how many contracts they hold, how many are live, the annualised value, their share of your total contracted spend, the next expiry and any compliance gaps. Ended and terminated contracts still appear in the contract count but are valued at nil, so the value column can be read straight against the tiles.

Two patterns are worth acting on. A supplier holding several small contracts with different renewal dates is usually a consolidation opportunity and a source of missed deadlines. A supplier holding a large share of the total is a concentration risk worth a second source, however good the service is.

What this tool cannot do

It cannot read a contract, so it cannot tell you that the notice period is measured in months, that the clause requires recorded delivery, or that the price is indexed. It cannot tell you whether the supplier is performing — the performance indicators field records what was promised, not what happened. It cannot serve notice, send a reminder, or do anything at all when you close the browser tab.

It also cannot see a contract you have not entered. The commonest failure of a contract register is not a wrong calculation but a missing row: the agreement signed by a department that never told anyone. A register that covers eight of your twelve contracts will still let four of them renew unnoticed.

Printing and sharing

Print Report produces a report from whatever the current filter shows: header, the six headline figures, the four charts, the renewal calendar, the supplier summary, the full register and your closing notes. Print to PDF to circulate it before a budget round or a procurement review.

The scope line under the title states the filter in force. Clear the filters before issuing anything described as the complete register, and check the currency setting — the tool does not convert between currencies, so a register holding contracts in more than one will add figures that should not be added.

Saving your work

Contracts, settings and the report header are written to this browser's local storage as you type, and the toolbar shows the time of the last save. That storage belongs to one browser on one computer: another browser, a private window, a second machine or a clean-up tool that clears site data will not have it.

Treat Export .json as the real save — one file containing everything, which Import .json restores anywhere. Export CSV gives you the register for spreadsheet work, including every calculated column and every filtered record, not only those drawn on screen. Reset asks twice, then erases everything this tool has stored. There is no undo.

Accuracy & disclaimer

This tool calculates from what you enter and nothing else. It cannot tell whether the end date is right, whether the notice period was copied correctly, whether the contract renews automatically, or whether a term has already rolled over. Every date on the page depends on all four.

Contract law, notice requirements, automatic renewal rules and the enforceability of a rolling term differ by country and by the contract itself. This is an internal record-keeping and date-calculation aid, not legal advice, and not a substitute for reading the agreement or taking advice on it. Where a renewal matters, diarise the notice deadline somewhere that will chase you, and check the clause first.