Privacy Policy
Last updated: August 4, 2026
Off2Races (“the app,” “we”) is a personal handicapping tool. This page explains what data the app touches, why, and who else sees it. There is no advertising, no data resale, and no analytics tracking beyond what's described below.
What we collect
- Account info. If you sign in with Google, we receive your name, email address, and profile picture from Google — nothing else. If you sign in by email link, we store only the email address. Authentication is handled by Supabase; we never see or store a password.
- Race cards you create. Track names, dates, horses, odds, form, and any other fields you enter or a scan fills in. This is the core data the app exists to store.
- Photos you scan. When you use the 📷 Scan feature, the photo is sent to a vision model to extract text (see “Third parties” below) and is not separately stored by us once the scan completes — only the extracted race data you choose to save persists. Scanned cards are private to your account by default, and additionally visible to accounts on the supreme tier (see “Who can see your cards” below).
- Predictions and results. Rankings the scoring engine produces, and any race results you record, so the app can show you how the engine is performing over time.
- Product usage events. First-party, cookie-free events — things like opening the app, creating a card, ranking a race, scanning a sheet, recording a result — timestamped and attributed to your account when you're signed in. This is how we know which parts of the app people actually use, and it's the whole tracking footprint: no third-party analytics pixel, no ad tracker, no cross-site cookie.
- Basic technical data. Standard server logs (IP address, timestamps) generated by our hosting provider for security and abuse prevention.
Third parties involved
- Supabase — hosts our database and handles authentication. Your account and race data live in a Supabase project we control.
- Google — if you choose “Continue with Google,” Google handles that sign-in and shares basic profile info with us per your Google account settings.
- Vision providers (OpenRouter, Google Gemini) — when you scan a race sheet, the photo is sent to one of these free-tier providers to read the text on it. Each provider processes the image under its own privacy policy and API terms; we do not control their retention practices for API requests.
- Vercel — hosts the application itself.
- Sentry — error monitoring. When something breaks, Sentry receives the error message, a stack trace, the page you were on, and basic browser/OS info, so we can find and fix bugs. We do not turn on Sentry's default-PII option, so your IP address and cookies are not attached to error reports.
We do not sell your data, share it with data brokers, or use it for advertising.
Who can see your cards
There are three visibility tiers, by how a card was created:
- Manual cards — races you type in by hand — are private to your account. No other user can read them.
- Feed cards — races pulled in automatically from our racecard/results feeds, not entered by any one user — are a shared library visible to every signed-in account. This is most of the racing you see in the app day to day.
- Scanned cards — races you build with the 📷 Scan feature — are private to your account by default, and additionally visible to accounts on the supreme paid tier (see the Terms of Service).
Access is enforced in the database (row-level security), not just hidden in the UI — see “Security” below.
How your data improves the shared engine
Off2Races runs one shared prediction model, not a separate model per account. Race cards, predictions, and the results recorded across every user are aggregated to periodically retrain that shared model's weights, so the engine gets sharper for everyone as more races settle. This aggregation works on race facts and outcomes — form, speed, odds, finishing position, and similar signals — not on your identity: it never uses your name or email. Using the app means your recorded results are included in this training set; there is no separate opt-out toggle, because the shared model only stays useful if it keeps learning from real outcomes. See the Terms of Service for the data licence this covers.
Your control over your data
- The app works fully offline, without an account, for manual card entry and ranking.
- You can delete any card you've saved from within the app.
- To delete your account and all associated data, use Delete account in Settings — it's immediate and self-service, no email required.
Security
Data is protected with row-level security in our database, enforcing the three tiers above: manual and scanned cards are scoped to your own account (plus the supreme-tier exception for scanned cards), and the feed library is readable by any signed-in account, never by a signed-out visitor. Connections to the app are encrypted (HTTPS).
Feedback screenshots are the one exception worth naming plainly: if you attach a screenshot to a bug report or idea, it's uploaded to a public storage URL for us to triage the issue — not access-controlled like your cards. Don't include anything in a screenshot you wouldn't want at a guessable public link. Same notice appears in the feedback form itself when you attach one.
Changes to this policy
If this policy changes materially, we'll update the date at the top of this page.
Contact
Questions about this policy or your data: scoty65@gmail.com