Kickoff
Sign in

This page stays in English. A French version will be published only after legal review. It has not been machine-translated.

Privacy policy

Effective date: October 10, 2026. Last updated: [merge date]. Written for Canadian school and community programs. This is not legal advice.

Who we are

Kickoff is a web app at https://kickoff.tinkerandscribe.com and an Android app (ca.tinkerandscribe.kickoff) that displays that same site. It is operated by Tinker and Scribe Workshop Inc., 1146 Route 895, Elgin, NB E4Z 2M3. Privacy contact: Christopher Mitton, chris@tinkerandscribe.com. System mail is sent from noreply@tinkerandscribe.com. We answer access and correction requests within 30 days.

Who may have an account

Accounts are for adults 19 or older: organizers, coaches, and parents. That is the age of majority in New Brunswick. Children do not get accounts. An adult enters data about youth players.

What Kickoff stores

Depending on how a program uses Kickoff, we may store:

  • Account — name and email for an adult 19 or older, a password hash when the person uses a password, and sign-in sessions.
  • Household — guardian name, email, phone, and which roster players belong to that family.
  • Roster — player name, number, position, and an optional parent-contact note, held for the organization.
  • Registration — the youth and guardian fields listed below.
  • Attendance — in or out RSVP for matches (no maybe).
  • Messages — chat room messages, report records, block lists, and leftover chase / copy logs.
  • Bookings — field and pad reservations for the program.
  • Paid / unpaid — registration fee status, and season-invoice status. Kickoff never stores card numbers.
  • Trial requests — name, email, club or league name, approximate teams or players, sport, and an optional message, when someone asks for a trial. We keep trial requests while the trial or the club exists, and for up to one year after a trial ends without a paid season.
  • Usage and error data — which pages and features are used, and error reports, linked only to an internal account code. Sentry and PostHog hold this for us (see below).

Player and child information

Adults enter youth information. Kickoff does not give the child an account and does not collect this from the child. The parent, guardian, or club that provides it is responsible for having authority to do so.

A registration form stores these fields:

  • Player name and date of birth (stored as text).
  • Medical notes (optional free text, such as allergies).
  • Emergency contact name and emergency phone.
  • Guardian name, email, and phone.
  • Photo consent flag, and a separate waiver-accepted flag.
  • Division, jersey size, optional team preference, notes, fee amount, and paid / unpaid status.

A roster row is separate. It stores the player’s name, number, position, and an optional parent-contact note. It does not store date of birth, medical notes, emergency contacts, or the photo consent flag. A household row stores the guardian’s name, email, and phone, and roster players can be linked to that household.

We hold this so the club can run the season:

  • Know who is registered, and in which division.
  • Give organizers, organization admins, and coaches of the assigned team an emergency contact and medical notes for the field.
  • Record whether the adult allowed team and league photos (the photo consent flag).
  • Reach the adult by the phone and email they entered.

Kickoff does not use player or child information for its own marketing, and we do not use it to advertise. It is never sent to Sentry or PostHog.

Who can see a registration

Medical notes, emergency contact name, emergency phone, date of birth, guardian phone, guardian email, and photo-consent and waiver answers on a registration are visible only to organizers and admins of that organization, to coaches of the team the player is actually assigned to, and to the parent or guardian who submitted that registration. When a player is not assigned to a team yet, only that organization's organizers and admins and the submitting parent or guardian can see those details. Other coaches in the same competition can still see the player's name, division, team preference, and paid status.

Roster names, numbers, positions, and parent-contact notes can be read by signed-in members of that competition. Creating or archiving a roster row requires a coach of that team, or an organization admin.

Account data

A sign-in account stores a name and an email. It does not store a phone number. Phone numbers live on household records and on registration forms (guardian phone and emergency phone).

If the person signs in with a password, Kickoff stores a password hash, not the password itself. Each sign-in session stores an IP address and a user agent, and those values stay on that session until the session ends or the account is deleted.

Calendar link

An optional calendar subscription link shows games and practices for your own kids. You can revoke it. It carries no personal details.

Payments

Stripe processes parent registration fees and organization season-plan payments. Both are one-time Checkout payments. Kickoff does not turn on a recurring subscription. Kickoff does not store card numbers.

Clubs may connect their own Stripe account. Parent registration fees are charged on that connected account. Kickoff records paid / unpaid (or pending or waived) and a Stripe checkout or payment identifier. The club is the merchant for those fees and handles refunds on its own Stripe account.

Season plans (Rec, Multi, and a written District quote) are charged to the organization on Kickoff’s own Stripe account. Kickoff keeps the season invoice: amount, currency, status, and the Stripe payment identifier. Stripe keeps its own payment records.

Who is responsible

The organization is the controller for registration and parent payments.

Kickoff is the processor. Tinker and Scribe Workshop Inc., 1146 Route 895, Elgin, NB E4Z 2M3 runs the software the organization uses; we do not decide why a school or club collects a registration.

Kickoff is not the merchant for parent registration fees. Those charges go to the organization’s Stripe account. Season plans are separate: the organization pays Tinker and Scribe Workshop Inc., 1146 Route 895, Elgin, NB E4Z 2M3 for Rec, Multi, or District.

Chat

Chat messages are stored with the competition. Rooms are limited by role: organization admins, coaches of a team, and parents of that team, depending on the room. A member can mute a room for themselves. Mute hides unread counts for that person. It does not hide the message from other members, and it is not a block.

Each message has Report message. The reporter chooses a reason (spam, harassment, inappropriate, or other) and may add a note. Kickoff stores the report with the reporter, the message, the room, and the time. That report is emailed to that competition’s club and organization admins and to chris@tinkerandscribe.com.

Each message also has Block user. A block hides that person’s messages for you. It does not delete the messages or hide them from anyone else. You can unblock someone under Account, then Blocked people.

Report records and block lists are stored. Reports you filed, and block lists you created, are deleted with your account. A block row is also removed if the blocked person deletes their account. Chat messages you wrote stay in the room, with your name replaced by “Deleted user”.

Feedback

The feedback form sends a message to the Tinker & Scribe Workshop Board so the team can reply. The form may also include an optional reply email, an optional category (bug, idea, question, or other), the page address, and the browser user agent. The current form does not ask for a name. A bot check runs before the message is forwarded.

Separately, a scheduled job sends each Kickoff account’s name and email, plus signup counts (all-time and the last 30 days), to that same Board. It does not send passwords, session tokens, or player records.

Android app

The Android app (ca.tinkerandscribe.kickoff) is a window onto https://kickoff.tinkerandscribe.com. It shows the same site and the same data as the web app. It does not include ads. The app itself adds no tracking code. Because it shows the website, the website's error reports (Sentry) and usage analytics (PostHog) also run inside the app, with the limits described under "Error reports and usage analytics". The app adds “KickoffAndroid” to the browser user agent, which can be stored on a sign-in session like any other user agent.

Error reports and usage analytics

Kickoff uses two services to find bugs and to see which features get used.

Sentry (Functional Software, Inc.) receives error reports: what went wrong, where in the code, the page address, the browser and device type, and the time.

PostHog (PostHog, Inc.) receives usage events: which pages are opened and which features are used, the time, and the browser and device type.

Both services get only an internal account code, which is a random string.

They do not get names, email addresses, phone numbers, dates of birth, medical notes, emergency contacts, registration answers, or chat messages.

Kickoff does not record screens or sessions, and it does not capture what anyone types into a form.

Your IP address reaches their servers when your browser connects, but Kickoff has set both services not to store it or use it to work out your location.

PostHog keeps a random browser code in your browser's storage so visits can be counted.

Kickoff does not use this data for ads, does not share it with advertisers, and does not sell it.

Sentry deletes error reports after 30 days.

PostHog keeps usage events for 1 year.

When you delete your account, Kickoff deletes your PostHog record and its events.

Email

Kickoff sends service and transactional email, and trial reminder emails to club admins. Those reminders may mention pricing, and each one includes an unsubscribe link. Essential account and pause notices are still sent. It does not send commercial or marketing email. Proton SMTP sends password-reset mail from noreply@tinkerandscribe.com. Resend is not used. The same mailbox sends chat-report notices to that competition’s club and organization admins and to chris@tinkerandscribe.com, trial-request notices to chris@tinkerandscribe.com, and trial reminders to club admins. A club admin can unsubscribe from trial reminders. Kickoff stores that email address so those reminders stop. Pause notices and password-reset mail still send.

Schedule and registration notices are not sent from noreply@tinkerandscribe.com. When a coach starts a chase in the app, it opens in that person’s own mail or text app. Kickoff stores a log that the attempt was made (who it was aimed at, and the text). Kickoff does not deliver that message itself.

Canada / PIPEDA

Kickoff is used by Canadian community and school programs, and the operator is in New Brunswick. The Personal Information Protection and Electronic Documents Act (PIPEDA) applies. Personal information should be collected for a real purpose, kept only as long as needed for that purpose or for a legal duty, and be something you can ask about.

You can ask to access or correct personal information. Send those requests to chris@tinkerandscribe.com. We answer access and correction requests within 30 days. Account deletion is described below. This page is that plain-language notice. It is not a certification and this is not legal advice.

Trials and paused clubs

When a club's free trial ends without a paid season, the club pauses. While paused, we keep the club's records, including roster, household and registration information that adults entered about players, only to restore the club if it pays for a season, and to keep the billing records the law requires. We don't use paused-club data for any other purpose, and the club, as controller, remains responsible for it.

We keep a paused club's records for at least one year. After a year paused, we may delete the club's data after emailing the club admins 30 days' notice. If the club pays for a season before then, everything picks up where it left off.

Retention and deletion

In-app deletion is immediate. From Account, open “Delete account and household data”, type DELETE, then choose “Delete my account”. That removes the signed-in account in that request. It does not wipe the shared demo league (Moncton Community Soccer League, Summer 2026) for everyone else.

You can also ask by email. Send it from a club admin's account email address to chris@tinkerandscribe.com with the subject “Delete my Kickoff account”. Email requests are completed within 30 days. The public page Delete account explains both paths.

Deleting a whole club. A club admin can ask us to delete the entire club, including its teams, rosters, households, registrations, chat, bookings and schedule, by emailing chris@tinkerandscribe.com from a club admin's account email address with the subject 'Delete our Kickoff club'. If the club has more than one admin, we will confirm the request with another admin before acting. We delete the club within 30 days and email the requesting admin to confirm when it is done. Season invoices and registration payment records are kept as tax and accounting records, and Stripe keeps its own payment records.

Single-account deletion only. Account identity, sessions, owned non-demo household records, and player profiles this account created and solely owns are deleted. This account's PostHog record and its usage events are deleted too. A player with another guardian, a registration, or roster history from someone else is unlinked and kept. Removable registration forms, chat block-list entries involving this account, and chat reports this account filed are deleted.

When one account is deleted, actor identifiers and display labels are removed or replaced with Deleted user on retained shared operational records. Chat text stays for the rest of the club.

Financial invoices and shared bookings, schedules, polls, facility organizations, tenant relationships, and chat content are retained when one account is deleted, because other people in the club still use them, for operational, accounting, dispute, and legal needs. This does not describe deleting a whole club.

A shared facility organization is not deleted merely because one facility manager leaves. This is one person leaving, not a whole-club deletion.

Season invoices are kept as tax and accounting records. Your user id is cleared from them. Stripe keeps its payment records. Kickoff does not store card numbers. Chat messages stay in the room and are anonymised to “Deleted user”. Bookings and the schedule stay with the organization. A parent’s own registration form, including the paid / unpaid flag on that form, is removed when that form belongs to the account being deleted.

The sample league (Moncton Community Soccer League, Summer 2026) is fictional demo data. The people in the demo league are fictional. It is not deleted when one person leaves.

School Cash

School Cash mode (optional, school competitions only): if a competition uses School Cash Online, a parent or guardian may give the student's school student number and grade (and, if the school asks, homeroom and school). We use them only to match School Cash payments to registrations. Only that club's admins can see them. When a school uploads its School Cash payment file, we read it to find matches, keep only the results for registrations in Kickoff, and don't store the file or anyone who isn't registered. We delete this information 90 days after the competition ends, or sooner if the account or club is deleted. After deletion, copies may remain in encrypted database backups, kept by us and by our database provider, for up to 30 days before they are overwritten. We don't use or restore them except to recover from a system failure.

Mode School Cash (facultatif, compétitions scolaires seulement) : si une compétition utilise School Cash Online, un parent ou tuteur peut fournir le numéro d'élève et le niveau de l'élève (et, si l'école le demande, le groupe-classe et l'école). Nous les utilisons uniquement pour associer les paiements School Cash aux inscriptions. Seuls les administrateurs de ce club peuvent les voir. Lorsqu'une école téléverse son fichier de paiements School Cash, nous le lisons pour trouver les correspondances, conservons seulement les résultats pour les inscriptions dans Kickoff, et ne conservons ni le fichier ni les renseignements sur les personnes non inscrites. Nous supprimons ces renseignements 90 jours après la fin de la compétition, ou plus tôt si le compte ou le club est supprimé. Après la suppression, des copies peuvent subsister dans des sauvegardes chiffrées de la base de données, conservées par nous et par notre fournisseur de base de données, pendant au plus 30 jours avant d'être écrasées. Nous ne les utilisons ni ne les restaurons, sauf pour récupérer d'une panne du système.

Pending players: when a club admin uploads a School Cash payment report, a payment that doesn't match anyone registered in Kickoff is kept as a pending player so it can be linked if a parent or guardian registers. We keep only the student's name, a protected code made from the student number (we don't store the number itself), the last 3 digits of the student number, the amount and the payment reference. That club's admins can see it. If an admin assigns the player to a team, that team's coach can see the name, payment status, amount, reference and last 3 digits. It isn't used for anything else. We delete it automatically after 90 days if no one registers the player, or sooner if the school, the club or the family asks. To ask about or remove a pending record, email chris@tinkerandscribe.com. After deletion, copies may remain in encrypted database backups, kept by us and by our database provider, for up to 30 days before they are overwritten. We don't use or restore them except to recover from a system failure.

Joueurs en attente : lorsqu'un administrateur de club téléverse un rapport de paiements School Cash, un paiement qui ne correspond à aucune personne inscrite dans Kickoff est conservé comme joueur en attente afin de pouvoir être associé si un parent ou tuteur inscrit le joueur. Nous conservons seulement le nom de l'élève, un code protégé créé à partir de son numéro d'élève (nous ne conservons pas le numéro lui-même), les 3 derniers chiffres de ce numéro, le montant et la référence de paiement. Les administrateurs de ce club peuvent le voir. Si un administrateur assigne le joueur à une équipe, l'entraîneur de cette équipe peut voir le nom, l'état du paiement, le montant, la référence et les 3 derniers chiffres. Il n'est utilisé à aucune autre fin. Nous le supprimons automatiquement après 90 jours si personne n'inscrit le joueur, ou plus tôt si l'école, le club ou la famille le demande. Pour poser une question sur un dossier en attente ou le faire supprimer, écrivez par email à chris@tinkerandscribe.com. Après la suppression, des copies peuvent subsister dans des sauvegardes chiffrées de la base de données, conservées par nous et par notre fournisseur de base de données, pendant au plus 30 jours avant d'être écrasées. Nous ne les utilisons ni ne les restaurons, sauf pour récupérer d'une panne du système.

Subprocessors

Services on the production path:

  • Vercel — Hosts the web app when it is deployed.
  • Neon — Production Postgres when DATABASE_URL is set. Account and league data live there.
  • Stripe — Parent registration fees are charged on the club’s connected Stripe account. Kickoff is not the merchant for those fees. Season invoices are charged to the organization on Kickoff’s own Stripe account.
  • Proton — Proton AG. Proton SMTP sends password-reset mail from noreply@tinkerandscribe.com. Resend is not used. The same mailbox sends chat-report notices to club and organization admins and to chris@tinkerandscribe.com, trial-request notices to chris@tinkerandscribe.com, and trial reminders to club admins. A club admin can unsubscribe from trial reminders. Kickoff stores that email address so those reminders stop. Pause notices and password-reset mail still send. Kickoff does not send commercial or marketing email.
  • Cloudflare — Cloudflare Turnstile checks public forms for bots (sign-in, sign-up, password reset, feedback, the facility start form, and trial requests). The widget loads from challenges.cloudflare.com. Cloudflare may process IP address and device signals to decide if the visitor is a bot.
  • Google Fonts — The site loads Barlow Semi Condensed and Figtree from fonts.googleapis.com. Google may receive the browser’s IP address when that stylesheet loads. Kickoff does not send account or player records to Google for fonts.
  • Tinker & Scribe Workshop Board — Internal Tinker and Scribe tool. Feedback submissions are forwarded there. A scheduled job also sends each Kickoff account’s name and email, plus signup counts.
  • Sentry — Functional Software, Inc. Error reports from the website and server: the error, the page address, browser and device type, and an internal account code. No names, email addresses, player records, form answers, or chat messages. IP addresses are not stored. Stored in the United States. Error reports are deleted after 30 days.
  • PostHog — PostHog, Inc. Usage analytics: which pages and features are used, browser and device type, an internal account code, and a random browser code. No names, email addresses, player records, form answers, chat messages, or screen recordings. IP addresses are discarded. Stored in the United States. Events are kept for 1 year.

Cross-border processing occurs. Vercel hosting and the Neon database connection do not name a region in this app’s configuration, so this notice does not claim a particular city or country for those hosts. These providers may store information in the United States or another country, where local authorities may be able to reach it. We do not sell personal information. Sentry and PostHog store their data in the United States. Neither offers storage in Canada.

School IT: see the data processing page for processor / controller roles and subprocessors.