runbookify
← All plans
Facilities, Assets & IT Operations / Vendor & Service Contract Tracking

Service Contract & Renewal Tracker

Build an internal tool that holds every service and facilities contract - term, value, owner, auto-renew flag, and notice period - computes the real cancel-by deadline (end date minus notice period), and sends the owner tiered alerts well before that date, so each renewal is a deliberate decision (renew, renegotiate, or cancel) the owner reviews and approves, never a contract that silently auto-renewed because nobody saw the deadline coming.

BeginnerAn afternoonBuilds onNext.js (App Router) on VercelSupabase (Postgres, Storage, Auth + RLS)Resend (renewal alerts, reminders, approval requests, decision notices)
What you'll build

A login-protected contract tracker: you import your contracts and upload each PDF, the app computes the real cancel-by date from end date minus notice period, sends the owner tiered alerts as that deadline approaches, and makes the owner review and approve a decision - renew, renegotiate, or cancel - before any renewal status or next action is recorded. You get a contract renewal calendar, spend rolled up by vendor and category, and a clean CSV export - with a hard rule that no renewal decision is committed until the owner approves it, and a duplicate guard so the same contract can't be loaded twice.

Gated download

Enter your email — the plan downloads instantly and a copy lands in your inbox.

By submitting your email you'll also receive the weekly runbookify newsletter. You can unsubscribe at any time.

Before you start

  • A free Vercel account
  • A free Supabase account
  • A free Resend account (and a sender address you can use)
  • A contract list with vendor, scope, value, start/end dates, notice period, auto-renew flag, and owner (CSV/sheet)
  • Your contract PDFs, ready to upload
  • Your alert rules (how far ahead to warn, who owns which contracts, what counts as a decision)

The problem this kills

Somewhere - a shared drive, a finance spreadsheet, a folder of signed PDFs, three people's inboxes - lives the list of every service and facilities contract your organization pays for. The cleaning company, the elevator maintenance, the pest control, the software subscriptions, the security monitoring, the landscaping. Each one has a term, a value, an owner, and the detail that quietly costs you money: a notice period and an auto-renew clause. Miss the window to give notice, and the contract rolls over for another year - at the new price, on the old terms, whether you wanted it or not.

The trouble is that nobody is watching the deadlines. The real deadline isn't the end date - it's the cancel-by date, which is the end date minus the notice period. A contract that ends December 31 with 90 days' notice actually locks you in on October 2. By the time the renewal lands on someone's desk, the window to renegotiate or walk away has already closed. So you renew by default, you discover the price went up after the fact, and you find out about contracts you'd forgotten existed only when the invoice arrives.

This tool turns every renewal into a decision you make on purpose. You load your contracts and their PDFs, it computes the cancel-by date for each one, and it warns the owner in tiers - early enough to actually do something - so they review and approve a clear decision: renew, renegotiate, or cancel. Only then is the renewal status recorded. No more silent auto-renewals, no more "I wish we'd known sooner," no more spreadsheet nobody trusts.

What you'll build

A small internal web app, just for your team, that:

  • Lets you import your contract list - vendor, scope, value, start and end dates, notice period, auto-renew flag, and owner - from a CSV or sheet, and upload the contract PDF for each one into secure storage.
  • Computes the real cancel-by deadline for every contract: end date minus the notice period - the date by which you must act if you want to renegotiate or get out.
  • Sends the owner tiered alerts as that deadline approaches (for example: 120 days out, 60 days, 30 days, and a final urgent one) so a renewal is never a surprise.
  • Makes the owner review each upcoming renewal and approve a decision - renew, renegotiate, or cancel - and only then records the renewal status and the next action.
  • Rolls up spend by vendor and by category so you can see what you're committed to and where the money goes.
  • Dedupes on vendor + contract so the same agreement can't be loaded - and alerted on - twice.
  • Produces a contract renewal calendar and a clean CSV export in the columns your finance or procurement system expects.

What's inside the Implementation Plan

The plan is a single markdown file you paste into Claude Code (a free AI coding agent). It walks the agent through building the whole tool, step by step, each step ending with a ready-to-paste prompt.

The most important part: the plan opens by interviewing you about your business. Before it writes a single line, the agent asks where your contracts live today, how your contract list is shaped (the exact columns and naming you use), how you record notice periods and auto-renew terms, who owns which contracts, how you categorize spend, how far ahead you want to be warned, and your messiest edge cases - month-to-month deals with no end date, contracts with notice measured in months versus days, multi-year terms, contracts that span two owners, the one with a weird "notice between day 60 and day 90" window. It reads a short tailored spec back to you, you confirm it, and only then does it build - so you get a tracker shaped to your contracts and your renewal process, not a generic template you have to wrestle into shape.

Inside you'll find:

  • The discovery interview and how the agent turns your answers into the data model, the cancel-by calculation, and the alert schedule.
  • The full build: database, login, contract import with a duplicate guard, PDF upload to secure storage, the cancel-by deadline engine, the tiered email alerts, the owner's renew/renegotiate/cancel approval gate, the spend roll-ups, the renewal calendar, and the CSV export.
  • The hard human-in-the-loop lock - the owner must approve the decision before any renewal status is recorded - enforced in code, so nothing changes state on its own.
  • Verification steps so you can prove it works, and the CSV-export fallback so it's fully usable today even before you connect it to any finance or procurement system.

The governance it includes (this is the point)

This isn't a toy. The plan builds in the controls a facilities, procurement, or finance team actually needs:

  • Login so only your team can see or touch anything.
  • Row-level security so people only see their own organization's contracts - and you can scope owners to their own.
  • A complete audit trail - every import, PDF upload, alert sent, decision, and export is logged with who and when.
  • A hard human-in-the-loop gate - the AI computes deadlines and drafts alerts, but a real owner must review and approve the renew/renegotiate/cancel decision before any renewal status or cancel-by action is recorded; nothing auto-decides.
  • Duplicate guards so the same vendor + contract can't be loaded - or alerted on - twice.

Who it's for

Facilities managers, procurement and category managers, contract and vendor managers, and finance teams who carry a portfolio of recurring service agreements and are tired of finding out about renewals after the window has closed. If you've ever been auto-renewed into a contract you'd have renegotiated, or spent a day reconstructing which agreements lapse this quarter from a spreadsheet you don't fully trust, this is for you. You don't need to write code. You need your contract list, your PDFs, and an afternoon.

You've got this - paste the first prompt and let the agent interview you.

Gated download

Enter your email — the plan downloads instantly and a copy lands in your inbox.

By submitting your email you'll also receive the weekly runbookify newsletter. You can unsubscribe at any time.