runbookify
← All plans
Sales & CRM / Renewals, Expansion & Churn Prevention

Net Revenue Retention (NRR) Tracker

Build an internal tool that turns your period-over-period revenue snapshots into clean NRR and GRR numbers by cohort and segment - with a human approval gate on every movement classification before the numbers go out.

IntermediateA weekendBuilds onNext.js (App Router) on VercelSupabase (Postgres + Storage + Auth/RLS)Resend (email)
What you'll build

A login-protected dashboard that imports revenue snapshots, classifies each account's movement as new, expansion, contraction, or churn, computes NRR and GRR by cohort and segment after a person reviews and approves the classifications, and exports the published numbers to CSV.

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
  • Period-over-period recurring-revenue snapshots per account (or contract-change records) in a spreadsheet you can export to CSV
  • Your segment and cohort definitions (how you slice accounts and when they "started")

The problem this kills

Everyone wants one number from you: is the customer base growing on its own, or quietly leaking? Net Revenue Retention is supposed to answer that - take last period's recurring revenue, add expansion, subtract contraction and churn, and see what's left. Simple in a slide. Brutal in a spreadsheet.

The mess is always the same. One analyst counts a re-signed logo as "expansion," another calls it "new." A downgrade gets logged as churn in one tab and contraction in another. Cohorts drift because nobody agreed when an account's clock starts. And the grand total never quite ties back to the billing system, so finance and revenue ops show up to the board meeting with two different NRR numbers and spend the first ten minutes arguing about which spreadsheet is right.

The hard part of NRR was never the arithmetic. It's the classification rules - and the fact that they live in someone's head instead of in a system that applies them the same way every period and records who approved them.

What you'll build

A small internal web tool, built for how your company defines retention:

  • Import your period-over-period revenue snapshots (or contract changes) from a CSV or Google Sheet export.
  • Classify each account's movement period-over-period - new, expansion, contraction, or churn - using rules you define precisely (so "expansion vs new logo" and "contraction vs churn" mean one thing, always).
  • Review and approve the classifications and any data exclusions before anything is published. The tool drafts; a person signs off.
  • Compute NRR and GRR by cohort and by segment, with totals that tie back to your revenue source.
  • Publish a dashboard and a CSV export stamped with the classification-rules version used, so every reported number is reproducible and auditable.

What's inside the Implementation Plan

The plan is a single markdown file you paste into an AI coding agent (Claude Code). It builds the whole tool with you, step by step, in plain language.

It opens by interviewing you about your business - your revenue source, how you define a cohort, where the line sits between expansion and a new logo, your real field and account-ID naming, your typical and peak account volumes, and your messy exceptions (mid-period upgrades, multi-product accounts, currency, re-activations). Then it reads back a short tailored spec and waits for your thumbs-up before it builds anything. You get a tool shaped to your retention definitions, not a generic template you have to fight.

From there it walks through setup, the data model, the import-and-dedupe logic, the classification engine, the human review-and-approve gate, the NRR/GRR math, the dashboard, and the CSV export - each step ending in a ready-to-paste prompt.

The governance it includes (this is the point)

Retention numbers go to the board. They have to be trustworthy, and you have to be able to explain how each one was produced. So the plan bakes governance in from the start:

  • Login so only your team can open the tool.
  • Row-level security so each organization only ever sees its own data.
  • A full audit trail - who classified, who approved, what changed, and when.
  • A hard human-in-the-loop approval gate - the AI drafts the movement classifications; a person reviews and approves them (and any exclusions) before any NRR number is published.
  • Duplicate guards keyed on account + period, so the same movement can't be counted twice.
  • A classification-rules version stamp on every published report, so a number from last quarter can always be reproduced.

Who it's for

Revenue operations, customer success leaders, and finance teams who report on retention - anyone who has been asked "what's our NRR?" and wished the answer came from a system everyone trusts instead of a spreadsheet only one person understands. No coding experience required.

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.