Palatine Pack · Plainfield Pack
Effective: October 20, 2026
The Pack app (Palatine Pack and Plainfield Pack) is operated by Joseph Kim, as an individual, for Palatine Pack TFCC and Plainfield Pack TFCC. Joe is a Pack parent who built and runs the app for the club; he is responsible for the information held in it and is the person to contact about any of it.
The app is not operated by a company, and neither Palatine Pack TFCC nor Plainfield Pack TFCC holds the app’s data. You will see the same name on the App Store listing, which says Joseph Kim rather than the club’s name for the same reason.
Contact: jkim6248@gmail.com
Below, “we” and “us” mean Joe as operator, and “the club” means the Pack club your family is registered with (Palatine Pack TFCC or Plainfield Pack TFCC).
This policy covers the Pack app (Palatine Pack and Plainfield Pack) on iPhone, Android and the web, and the club data held in it. It does not cover the club’s registration system, the gear store, or the club website, which are run separately.
About guardians. Name, email address, phone number, which family you belong to, and whether you are the primary contact. Your email address is also your sign-in.
About athletes. First and last name, date of birth, grade, gender group, training group membership, and whether the athlete has their own app account. If an athlete has an account, we also hold an access code and a PIN. The PIN is stored only as a cryptographic hash, and is unreadable to us and to the app — the app cannot retrieve it even for the guardian who set it.
Performance records. Event, mark, the date recorded, and whether a coach has verified it.
Attendance intentions. Which events each athlete has been marked as attending or missing, and by whom.
Messages. The text of every message sent in the app, who sent it, when, and — where a message has been edited — the text before the edit. See section 9.
Files and photographs. In the coaches’ room, uploaded by staff; and in your family’s own conversation with coaches, uploaded by guardians or by staff. Photographs and documents only — video cannot be shared. Athletes cannot send or open them, and the community room carries none. See section 10.
Announcements and practice plans written by coaches.
Reports and moderation records. If someone reports a message, we keep the report, the reason given, who reported it, and what an administrator decided.
Technical. A notification token for each device you enable notifications on, and your notification preferences. Nothing else. We do not collect your location, your contacts, your browsing, your advertising identifier, or any usage analytics.
Almost all of it comes from the club’s own registration records and from you. Guardians enter their own details and their athletes’. Coaches enter events, announcements and verified results. Nothing is bought from anyone, and nothing is gathered from other apps or websites.
To run the club: to show the schedule, take attendance intentions, publish results, let families and coaches contact each other, and send notifications about changes — and, for families who choose Spanish, to show announcements and notifications in Spanish (section 14). That is the entire list. We do not use any of it for advertising, for profiling, or for any purpose a parent would not expect from a team app.
The app is designed for adults — parents, guardians and coaches. Athletes may have their own accounts only from age 13.
The age limit is enforced by the database, not by a promise in this document. A guardian cannot switch on an athlete account for a child under 13, because the server refuses to create one; the app has no way to override it.
We do, however, hold information about children under 13 — their names, dates of birth, grades and results — because that is what a youth club roster is. That information is entered by their guardians or by club staff, and children under 13 have no way to sign in and no presence in the app themselves.
We do not collect anything from children under 13. The app is not directed at them. They cannot create an account, cannot sign in, and have no way to enter anything into it. What the app holds about a younger child is roster information — name, date of birth, grade, training group, and any results a coach has verified — provided by that child’s own parent or guardian, or taken from the club’s registration records.
If you are a parent or guardian, you can at any time:
Athletes aged 13 and over may have their own account, but only if a guardian switches it on, and a guardian can switch it off again at any time.
This is the part worth reading twice.
| Information | Who can see it |
|---|---|
| Your family’s messages with coaches | Every guardian in your family, the staff in that conversation, and club administrators |
| Your athlete’s name and verified records | Every signed-in member of the club. The record board is club-wide and shows athletes’ full names |
| Your athlete’s date of birth and grade | Club staff. Grade is also implied by the record board’s grade bands |
| Your phone number and email | Club staff, on the roster contact cards. Not other families |
| Attendance intentions | Club staff, and your own family |
| The coaches’ room | Active club staff only. Never guardians, never athletes |
| The community room | Members who have joined it |
| Your notification settings | Only you |
Coaches cannot message a child privately. Every conversation with an athlete is inside that athlete’s family conversation, where their guardians see it.
Messages in the app are kept as a permanent record. Nobody can delete one — not the sender, not a coach, not an administrator, and not us.
A message can be edited by the person who wrote it, within fifteen minutes of sending. When that happens, the original text is kept and the message is shown as edited. Nobody can quietly rewrite what they said.
This is a child-protection decision, not an oversight. The value of a record of what an adult said to a child comes entirely from it being complete: a conversation with messages removed from it cannot be relied on, and a conversation that can be rewritten is worth less still.
What you can do instead:
A message is translated only if you ask: tapping Traducir (or Translate) sends that one message to Google Cloud Translation (section 14). We never translate a conversation automatically.
Files and photographs can be shared in two places, and nowhere else.
The coaches’ room. A private staff-only area, uploaded to by staff. This area is not visible to parents, guardians, athletes, or anyone outside the club’s active coaching staff.
Your family’s own conversation with coaches. Guardians and club staff can both attach files and photographs here. What is shared is visible to the guardians on that family and to club staff — the same people who can already read the messages — and to nobody else. No other family can see it.
Athletes cannot send or open files or photographs at all, including in a conversation they started themselves. An athlete using their own account can see that a photograph was attached to a message, so a message is not a blank space to them, but they cannot open it, download it, or see its name, type or size. The community room carries no photographs or files at all.
Photographs and documents only. Video cannot be shared anywhere in the app, and an attempt to upload one is refused.
These files may include documents such as heat sheets, entry lists and rosters, which can contain athletes’ names, ages, competition events and results. They may also include photographs taken at club practices and competitions, which may show children.
Files are stored on our behalf by Supabase in encrypted storage in the United States. Access is checked every time a file is opened, never at the time it was shared: for staff, against whether that coach’s account is still active, so a coach who leaves the club loses access to every shared file immediately with no revocation step; and for a family’s own conversation, against whether you are still a guardian on that family. Files are never published to a public web address, and the links used to view them stop working after sixty seconds.
Photographs. Location and camera information (EXIF metadata) is removed from every photograph before it leaves the device, and photographs are reduced in size and resolution. This applies wherever a photograph is shared, and to photographs sent by guardians as much as to those sent by staff. We do not store the original file from the phone. We do not use photographs shared in the app for publicity, social media, or any purpose other than internal club coaching and administration, and we do not share them with anyone outside the club.
What we use them for, and what we do not. Photographs shared in the app are used only for internal club coaching and administration — checking entries, reading a heat sheet, discussing a race. We do not use them for publicity, for social media, for fundraising, or on any website, and we do not share them with anyone outside the club’s active staff. If the club wants to use a photograph of your child publicly, that is a separate decision made through the club’s own registration consent, not through this app.
You can ask us to remove any photograph of your child, for any reason or none, using the address in section 18.
Asking for a photograph to be removed. Contact us at the address in section 18. Once an administrator removes an image it stops being viewable in the app immediately, and the file itself is permanently deleted from our storage within one minute. Any link issued before removal stops working within that minute. A record that the file existed and was removed, and by whom, is kept; the image itself is not.
When someone is writing a message, others in that conversation may see that they are typing. This is shown live and is never stored.
Where a conversation includes an athlete, coaches and club staff are not shown when the athlete is typing. The athlete is shown when a coach is typing. Parents and guardians see typing within their own family’s conversations, including their own child’s.
The indicator contains no part of the message being written, and is visible only to people already in that conversation.
If you turn on notifications, we store a notification token for that device. It identifies the device to the notification service so a message can reach it; it is not an advertising identifier and it is not used to track you.
The token is deleted when you sign out, and when the notification service tells us the device is no longer reachable. Notification text passes through Expo’s push service (section 14) on its way to Apple or Google.
Turning notifications off in your phone’s settings stops delivery immediately. The app will never show a notification setting as switched on when it cannot actually deliver.
Calendar. When you tap “Add to calendar”, the app writes practices and meets into your device’s own calendar. It only ever writes. It does not read your calendar, and nothing about your calendar is sent to us or to anyone else. The only trace kept is a local note of which entries the app created, so that tapping again updates them instead of duplicating them.
Offline copies. So that the app works at a meet with no signal, some information is stored on your device — the schedule, the roster, and for coaches and administrators the guardian phone numbers and email addresses on the roster. This copy stays on your device. It is deleted when you sign out, when you uninstall the app, and automatically after thirty days.
This copy lives in the app’s own storage on your device, protected by your device’s passcode and by the separation the operating system keeps between apps. We have deliberately not claimed more than that here, because it is not separately encrypted by us.
We do not sell data. We do not share it for advertising. We do not share it with other families beyond what section 8 describes.
We use four companies to run the app. They process data on our instructions and for no purpose of their own:
| Company | What it does | Where |
|---|---|---|
| Supabase | Database, accounts, file storage | United States |
| Expo | Delivers push notifications to Apple and Google | United States |
| Netlify | Hosts the web version of the app | United States |
| Holds the coaches’ spreadsheet — meet attendance and the club roster (see below) — and, only for families who choose Spanish, translates announcements, the text coaches write on events and workout plans, and any single message you ask us to translate (see “Translation”) | United States |
The coaches’ spreadsheet. The club keeps one Google Sheet that club staff use to run meets. It is visible only to the staff the owner has shared it with, and it has two halves that work very differently.
The meet tabs update themselves from the app every few minutes, so coaches can plan a meet without asking ninety families the same question. For each upcoming or recent meet, and each athlete on the roster, they contain the athlete’s first and last name, gender, grade, and whether they are going. Nothing else — no date of birth, no contact details, no message content, no athlete access codes or PINs. Nothing is written back to the app from the spreadsheet; that half flows one way only, out of the app.
The Roster tab is the club’s own registration list — the same information you filled in when you signed your athlete up, which the club has always held. It is put into the Sheet directly from the registration system’s export, and it contains: the athlete’s name, gender, grade, date of birth, school, t-shirt size and event interest; the parent’s name, email addresses and phone number; the family’s address; the emergency contact’s name and number; the order number and registration date; and whether anyone in the family has claimed the family’s app code. Staff may add their own notes to a row.
That last column — whether the family is using the app — is the only part of the Roster tab that comes from the app. The rest never passes through the app or its database at all: registration details are not imported into the app beyond the athlete’s name, grade, gender and date of birth, and the spreadsheet is fed from the export rather than from us so that your phone number, address and emergency contact are not stored in a second place.
Both halves are protected by secret tokens. The meet tabs cover meets from seven days ago to sixty days ahead. If you ask us to delete your family’s information, it leaves the meet tabs at the next refresh, within five minutes, and we remove your row from the Roster tab at the same time.
Translation (Spanish). If you choose Español in Settings, the text of club announcements is sent to Google Cloud Translation so that we can show it to you in Spanish. Announcements are club-wide and sometimes name children, and the text we send is whatever the announcement says. We only send an announcement for translation when at least one person at the club has chosen Spanish; if nobody has, nothing is sent. Notifications about the schedule (cancellations, changes, reminders) use fixed Spanish wording written by us and are not sent anywhere. Messages are never translated automatically: a single message is sent only when you tap Traducir on it, and only that message. Google’s documentation says the text is held briefly in memory to perform the translation, is not used for any purpose other than providing the translation service, and is not used to train its translation products. The Spanish version is kept beside the English in our database, like any other part of the announcement. The same applies to what coaches type on events and workout plans (titles, notes, cancellation reasons, what to bring, race names): it is sent to Google Cloud Translation only when a person who chose Spanish opens that screen, and the Spanish is kept in a translation cache (by text) rather than on the event itself. Nothing is sent for families who have not chosen Spanish.
We will also disclose information where the law requires it, or where it is necessary to protect a child.
We keep a family’s information for as long as they are part of the club, and for up to three years after they leave, after which it is permanently deleted. Files and photographs are deleted on the same schedule as the messages they are attached to.
You do not have to wait for that. If you have left the club and want your family’s information removed sooner, ask us at the address in section 18 and we will delete it.
If you delete your account (section 16), your sign-in is destroyed immediately. Your name is detached from the family record, which remains for the rest of the retention window above, because it is part of the club’s record of who was on the team.
How that actually happens. This is a review a person carries out, not an automatic process. Joe, as operator, goes through the records once a year, at the end of each season, and permanently deletes the families that have passed the three-year point. We would rather tell you that than imply a machine is doing it.
Safeguarding records are the exception, and they are kept longer. Reported messages, the decisions an administrator made about them, and the administrative audit log are kept until the youngest athlete involved turns 25.
That is deliberate, and it is longer than everything else on purpose. Where a child has been harmed, it is common for them not to say so for years. A record destroyed on a three-year clock would be gone at exactly the point it turned out to matter — so for this narrow category, and only this one, we keep it until the child concerned has had a real opportunity to raise it as an adult.
Access to every piece of data is enforced by the database itself, on the server, rather than by the app — so a modified or outdated copy of the app cannot reach data it should not. Connections use TLS. The athlete PIN is stored only as a hash, in a column the app is not permitted to read at all. Files are kept in private storage and reached only through links that expire after a minute.
No system is perfectly secure, and we do not claim otherwise.
Write to jkim6248@gmail.com — that reaches Joe, who operates the app.
Use it for anything in this policy: to ask what we hold, to correct something, to ask us to delete your child’s information, to have a photograph removed, or to raise a concern about a message. We aim to reply within one working day, and sooner where a child may be at risk.
If a child is in immediate danger, contact your local emergency services first, not us.
If we change this policy we will update the date at the top and, for anything that changes what we do with your information rather than merely how we describe it, tell you in the app.