Last updated: October 19, 2026
This policy adds to the shared Miltinson Technologies privacy framework at miltinson.com/legal/privacy. Where this policy says nothing, the shared framework applies.
Miltinson Coaching Guides sells coaching guides for youth recreational sports and runs Substitutions, a free tool for planning playing time during games. Miltinson Technologies LLC, a Washington limited liability company, operates the site.
Questions about this policy: contact@miltinson-technologies.com.
You can read Week 1 of every guide without an account. We collect personal information when you create an account, buy a guide, or use Substitutions. The table below lists each kind of data, why we need it, who processes it, and how long we keep it.
| What | Why | Provider | How long |
|---|---|---|---|
| Account: email address, name, password or social sign-in, and session details | To sign you in and tie your purchases and teams to you | Clerk | Until you delete your account |
| Payment: card details and billing information. We also send Stripe your email and account ID so the payment matches your account | To take payment. Card details go to Stripe and never reach our servers | Stripe | Stripe keeps it under its own policy and legal obligations |
| Purchase record: account ID, email, what you bought, Stripe checkout ID, date, and any refund | To open the guides you paid for and handle refunds | Neon (our database) | Until you delete your account. If you get a refund, we still keep the record of that purchase, but you can no longer open the guide. Stripe keeps its own payment records. |
| Guide progress: which paid guides you opened, when, and the version you saw | To show which of your guides have changed since you last read them | Neon (our database) | Until you delete your account |
| Substitutions teams: team name, sport, game settings, coaches, and invite link | To run the playing-time planner and share a team with its coaches | Neon (our database) | Until the owner deletes the team. If the owner deletes their account, we delete the team or pass it to another coach |
| Player names and game history: attendance, limits the coach sets for a player such as maximum minutes, minutes played, positions, goalie turns, arrival and departure times | To plan fair rotations across the season | Neon (our database) | Until the team is deleted. A player removed from the roster stays on the team but hidden, and past games keep the names used at the time |
| Swap alerts for a locked phone: the address and keys your browser gives us to reach this phone, your account ID, and whether the alert shows player names | To tell you it is time to swap, or that halftime is almost over, when your phone is locked or in another app | Neon (our database). The alert goes through your browser’s push service (Apple, Google, Mozilla, or Microsoft) | Until you turn swap alerts off, your browser stops accepting them, or you delete your account |
| Coach settings: whether automatic timers are on, and how many times we showed you the note about them | To run your games the way you set them | Neon (our database) | Until you delete your account |
| A copy on your device of your teams, rosters, the game you are running, your last finished game, attendance for the next game, your alert and view settings, and a random ID for this browser | So a game keeps working if you lose signal. Attendance you mark before a game stays on this device until the game starts | Your browser | Until you clear site data. Clear saved data on this phone replaces it with a fresh copy from your account |
| Page views: page address, referring site, browser, device type, and country | To see which pages people use | Vercel Web Analytics | 1 month. Vercel may keep it longer |
| Request logs: IP address, browser, pages requested, and errors | To run the site and stop abuse | Vercel | Up to 1 hour |
| Error reports: the type of error, where in the code it happened, and browser and device type. For about 1 in 10 visits, how long a page or request took. For a payment that needs a refund by hand, Stripe and account IDs. No names, emails, or team and game data are sent. IP addresses and location are not stored. | To find and fix bugs and to catch payments that need a refund | Sentry | Up to 30 days |
| A scrambled form of your account ID, and of your IP address at checkout, for request limits. The game ID and time of the next swap alert or halftime reminder for a game | To stop abuse and to send swap alerts on time | Upstash | Minutes for request limits. For swap alerts, until the alert is sent, then up to 3 days in Upstash’s delivery log. |
| Image requests: IP address and browser | To deliver guide illustrations and icons quickly | ImageKit | Under ImageKit’s retention policy |
| Email you send us: your address and what you write | To answer questions and handle refunds | Spacemail | As long as needed to resolve your request |
| Weekly plan record: account ID, email, the guide, Stripe subscription and customer IDs, and each weekly payment with the week it paid for and any refund | To open the weeks you paid for, stop the plan after the last payment, and handle refunds | Neon (our database) | Until you delete your account. Stripe keeps its own payment records |
The site is for adults: coaches, parents, and other volunteers. Accounts are for adults only. We do not knowingly collect personal information from children under 13, and we delete it if we learn we have. If you believe a child has created an account or sent us information, email contact@miltinson-technologies.com and we will delete it.
Substitutions asks the coach to enter the names of players on a team, who are usually children. Players do not have accounts and never sign in. We store the name the coach types, the team the player is on, and what happened in each game: attendance, limits the coach sets for a player such as maximum minutes, minutes played, positions, goalie turns, and arrival and departure times. We use this only to plan rotations and share them with the coaches on that team. If a coach turns on swap alerts, the alert names the players going in and coming off, and it shows on that coach’s lock screen. The coach can turn the names off under Alerts in the Game menu.
Enter only what you need to tell players apart. A first name or a first name and last initial works. Only enter a player if you coach that team and have the family’s permission to use their child’s name for team planning.
A parent can ask us to remove a child’s name from a team by emailing contact@miltinson-technologies.com with the team name and the coach’s name.
Wherever you live, you can ask us to show you the personal information we hold about you, correct it, delete it, or send you a copy in a common file format. Email contact@miltinson-technologies.com from the address on your account. We may ask you to confirm the request from that address before we act on it.
We respond within 45 days. If we need more time, we tell you why within those 45 days. If we turn down a request, you can appeal by replying to our decision. We answer appeals within 60 days and explain the result.
We do not sell personal information and do not share it for cross-context behavioral advertising, so there is nothing to opt out of. We treat a Global Privacy Control signal as an opt-out of sale and sharing and honor it by default. We do not track you across other sites, so we do not change anything when your browser sends a Do Not Track signal.
We use reasonable safeguards to protect personal information, including encrypted connections, signed webhooks from Clerk, Stripe, and Upstash, and access to our database and provider accounts limited to the site owner. No system is completely secure, and we cannot promise that your information will never be accessed without permission.
We do not collect consumer health data as defined by Washington’s My Health My Data Act.
When this policy changes, we post the new version on this page and update the date at the top.