Club affiliation and safeguarding compliance register
Problem
Club affiliation, public liability insurance, safeguarding checks and coach qualifications each carry an expiry date, and today those dates live in whichever place the person who tracks them prefers — a spreadsheet tab for insurance certificates, a folder of PDFs for DBS (Disclosure and Barring Service) checks, the general secretary's memory for who still owes an affiliation fee. Each close season someone emails every club asking for updated paperwork, then rings the ones who do not reply. Certificates lapse quietly between seasons; nobody notices a club's safeguarding check has expired until a parent asks or an incident forces a review, by which point the record everyone relies on is a folder nobody has opened since it was filed.
Product idea
An obligation register that holds one row per club (or per accredited person) per requirement: affiliation status, insurance certificate, DBS check, coaching qualification, ground safety certificate. Each row carries an expiry date, an owner and a status — current, due soon, overdue — visible on a single dashboard rather than scattered across tabs. Reminders go out automatically as a date approaches and escalate to the general secretary if the club has not responded. Every certificate uploaded and every reminder sent is logged, so when an insurer, a governing body auditor or a disciplinary panel asks whether a club was affiliated and covered on a given date, the answer is a lookup, not a phone call. It does not verify that an uploaded certificate is genuine — that stays a human judgement.
Who it is for
Compliance officers and general secretaries who currently chase paperwork by email, registration officers who need a single source of truth for eligibility, and league operations managers who sponsor it as the record an auditor would ask for.
Possible first version
A web app with a manually maintained obligation register: club or person, requirement type, expiry date, owner and status, populated from an imported CSV of current club records. Configurable reminder emails as an expiry date approaches, an escalation email to a named administrator if unactioned, a dashboard filterable by status and requirement type, and an audit export of every reminder and upload. Out of scope for version one: any integration with the registration and membership database or document repository — records are entered and updated by hand — and no automatic verification that an uploaded certificate is authentic or current.
- Build classification
- Workflow application
- Rough effort
- 4-6 week first release
- Roles involved
- Compliance officer, General secretary, Registration officer
- Relevant to
- League office, Federation / governing body, Women's league, Collegiate athletics
- Systems in play
- Registration and membership databases, Document and rulebook repositories, Email and shared drives
- Product framing
- Manage compliance
Questions we get asked
What data do we actually need on day one to make this useful?
A single spreadsheet export naming every affiliated club, its current affiliation status and the expiry dates you already track for insurance and safeguarding checks is enough to start. It does not need to be complete or clean — gaps show up as an immediate 'unknown' status, which is itself useful, because it surfaces the clubs nobody has checked on in years. Anything missing gets filled in as clubs respond to the first round of reminders, so the register improves through use rather than needing a data-cleansing project before it can go live.
Does this replace our registration and membership database?
No. The registration and membership database stays the system of record for who is registered to play. This sits alongside it and tracks a narrower thing: whether the obligations attached to a club or an accredited person are current. Version one does not write back to the registration database or read from it automatically — records are entered by hand — so you can judge whether the register is worth having before anyone commits to building that integration.
Our compliance officer already keeps a spreadsheet that mostly works. Why change it?
A spreadsheet works until the person who maintains it is away, changes role, or the tab structure only makes sense to them. The register does the same job — track a date, track a status — but makes it visible to more than one person, sends the reminder automatically instead of relying on someone remembering to look, and keeps a log of what was sent and when. If your spreadsheet already does all of that and more than one person relies on it comfortably, you may not need this yet.
What happens if a club just ignores every reminder?
The register has no power to suspend a club or withhold fixtures — that decision stays with whoever holds it under your rules, typically the general secretary or a disciplinary panel. What it does is make the non-response visible and dated: after the configured escalation point, the club moves to an overdue state on the dashboard and the administrator is notified, so the decision to act is made with a clear record rather than a vague sense that someone hasn't replied in a while.
Is this your workflow?
Tell us one sports workflow that still runs on paper, spreadsheets, WhatsApp or an outdated system. We will map it and show you what a simpler product looks like.
Tell us about itMore in League & federation administration
- Club affiliation application bottleneck mapA dashboard that reconstructs how long new club affiliation applications actually spend at each stage, from timestamps already sitting in email, documents and the registration database.
- Cross-border player eligibility research briefingA research agent that reads a federation's own eligibility regulations and the relevant FIFA RSTP text against one case's details and produces a cited briefing, not a decision.
- Disciplinary case intake and hearing workflowA workflow that tracks a disciplinary case from intake to decision, assigns it and escalates automatically when a deadline is missed, replacing email threads and a personal spreadsheet.