Season pass · $19.99 · covers you through January 5 · no subscription, nothing to cancel

Privacy Policy

Last updated 25 August 2026 · Soulvaya Labs, Inc. · bellcowgm.com

Written in plain English. This document describes, accurately, how the product actually works. The corporate details — legal entity, state of incorporation, registered address and governing law — are settled and stated in the Terms of Service. Where anything here conflicts with the law that applies to you, the law wins. Questions or corrections: support@bellcowgm.com.

This policy describes what Bellcow GM actually collects, where it actually goes, and how to get it back or get it deleted. It was written by reading our own source code, not by filling in a template. Soulvaya Labs, Inc. is the controller of this data.

The short version

We collect your email address, the fantasy leagues you connect, your preferences, and whether you bought a Season Pass. We store no passwords at all — not ours, not your fantasy platform's — because we never ask for one. We never see your card number. We run no analytics, advertising or tracking cookies. We do not sell or share your data, and we do not use your league data to train anyone's AI models.

1. Who we are

Bellcow GM is operated by Soulvaya Labs, Inc., a Delaware corporation with its registered address at 131 Continental Drive, Suite 305, Newark, Delaware 19713, United States. Soulvaya Labs is the controller of the personal information described in this policy. For any privacy question, request or complaint, write to privacy@bellcowgm.com. A human answers.

2. What we collect

This is the complete list. If a category is not here, we do not collect it.

CategoryWhat it actually isWhere it lives
Email addressThe address you sign in with. It is your account identifier — every other record is keyed to it. We also record when the account was created and when you last signed in.Netlify Blobs, users store
Sign-in codesThe six-digit code we email you, stored only as a SHA-256 hash alongside an expiry timestamp, an attempt counter and the time it was sent. The code itself is never written down anywhere on our side.Netlify Blobs, authcodes store
League dataThe leagues you connect or import: league name, platform, size, scoring settings, lineup and waiver rules, playoff structure, team names, rosters and records — including the other managers' teams, because that is what a league is.Netlify Blobs, userdata store
PreferencesRisk tolerance, strategy and trade style settings, plus whether the morning digest is on and the hour it is scheduled for (currently a fixed morning slot, not a per-user choice).Netlify Blobs, userdata store
Sync historyA rolling log of your last 50 league syncs: league id, platform, timestamp and whether it succeeded.Netlify Blobs, userdata store
EntitlementWhether you hold a Season Pass, when it was purchased, when it expires, the season it covers, and whether it came from a 100%-off promotional code. This is derived from Stripe; we do not copy your payment details into it.Netlify Blobs, entitlements store
AlertsThe injury, depth-chart and roster alerts generated for your teams, with a seen/unseen flag. Capped at 50 and automatically dropped after 14 days.Netlify Blobs, alerts store
Digest send recordsWhich addresses today's morning digest has already been sent to, so a retry does not email you twice.Netlify Blobs, digestruns store
Assistant messagesThe questions you type into the assistant and the league summary sent with them. Conversation history lives in your browser tab, and the last few turns are forwarded to Anthropic to answer. See section 7.Your browser + Anthropic (in transit)
Payment recordsHeld by Stripe, not by us: the fact of a purchase, the amount, the email used, and Stripe's own identifiers. We read them; we do not store card data.Stripe
Technical logsStandard server and function logs kept by our host (Netlify) as part of running the site: IP address, timestamp, requested path, status code, user agent. We do not build profiles from them.Netlify
Support ticketsAnything you send through the contact, bug-report or feedback form: your name if you give one, the message itself, the platform and league id if you attach them, and a one-way hash of your IP address used only to rate-limit abuse of the form. If you tick the diagnostics box, also your browser user agent, window size, timezone and the page you were on. Our replies are attached to the same ticket.Netlify Blobs, tickets store
Accuracy receiptsA record of the recommendations Bellcow made to you and how they turned out, so the product can be graded on its own past calls rather than only its confidence. Tied to your account because the recommendations were.Netlify Blobs, receipts store
Push subscriptionsOnly if you switch on Ring My Bell: the push endpoint URL your browser issues and the two keys needed to encrypt a message to that device. One record per device. Removing the device or switching notifications off deletes it.Netlify Blobs, pushsubs store
Notification settingsWhich kinds of alert you want, by which channel, and how urgent something has to be before Bellcow interrupts you.Netlify Blobs, userdata store
Consent recordsIf you switch on background synchronisation: which disclosure you agreed to, its version, and when. Kept so we can prove what you were shown, and withdrawn when you disconnect.Netlify Blobs, provider_consent store
ESPN private-league cookiesOnly with the consent above, and only for ESPN: your espn_s2 and SWID values, encrypted with AES-256-GCM. Never returned to any screen, log or error message. Deleted the moment you disconnect the league. Off unless you turn it on — see §6.Netlify Blobs, provider_credentials store
Rate-limit countersShort-lived counts of how many assistant questions, support messages or admin requests came from an account recently, so one account cannot exhaust the service for everyone. Counts only — never the content.Netlify Blobs, quota / supportrate / adminrate stores
Revoked sessionsWhen you sign out everywhere, or we end a session, we keep the fact of the revocation so the old token cannot be replayed.Netlify Blobs, revocations store

Bellcow also stores non-personal football data — NFL player state, historical stats and the published intelligence bundle — in the nflstate, nflhistory and intel stores. That data is about NFL players, not about you.

3. What we never collect

4. How we use it

We do not sell your personal information, share it for cross-context behavioural advertising, send you marketing email you did not ask for, or use your league data to train third-party AI models.

5. Why we are allowed to

If a data-protection law with a legal-basis concept applies to you (for example the UK or EU GDPR), we rely on: performance of a contract for everything needed to deliver the service you bought; legitimate interests for security, abuse prevention and product improvement; consent for optional email digests, which you can withdraw at any time; and legal obligation for tax and accounting records of purchases.

6. Third-party processors

These are every third party that receives data in the course of running Bellcow. There are no others.

ProcessorWhat it doesWhat it receives
NetlifyHosting, TLS, serverless functions, and the Blobs storage where all of the above is kept.All stored account and league data; standard request logs including IP.
StripePayments and checkout. Also the source of truth for your entitlement.Your email, your payment details (entered directly on Stripe), and the purchase record.
ResendTransactional email delivery.Your email address and the content of the message: sign-in code, purchase confirmation, morning digest.
AnthropicThe large language model behind the in-app assistant.Your typed question plus a compact league summary. See section 7 for exactly what that contains.
Sleeper, ESPN, YahooFantasy platforms you choose to connect. Read-only.Whatever their API needs to identify your league or account. Yahoo uses OAuth; the tokens stay in your browser.
nflverse, Stats Guy Fantasy, National Weather ServiceFootball, market-value and weather data sources.Nothing about you. We read from them; they receive no personal data.

These are processors acting on our instructions, not independent recipients we sell to. If we ever add one, this table changes and the "Last updated" date moves.

7. What goes to the AI assistant

When you ask the assistant a question, our server forwards your question and a compact summary of your league to Anthropic's API. That summary contains: league name, platform, team count, week, scoring and lineup settings, waiver type and budget, playoff structure; your preference settings; your team name, record, power ranking and modeled playoff and title odds; your starters and bench with their projections, injury flags and bye status; this week's matchup and projected score; the ranked plan Bellcow generated; the top free agents and drop candidates; suggested trades; and the other teams' records, needs and surpluses.

It does not contain your email address, your session token, your payment information, or your Yahoo tokens. Only the most recent several turns of the conversation are sent. The conversation history itself lives in your browser tab and is gone when you close it — we do not write your chats to our storage.

If no AI key is configured, the assistant falls back to a local rule-based answer and nothing leaves the browser at all; the app tells you which mode answered you.

8. What stays in your browser

Your session token, your cached league state, your interface preferences and — if you connect Yahoo — your Yahoo OAuth tokens are all kept in your browser's localStorage, not in cookies. Yahoo tokens in particular are never stored on our servers: the OAuth callback hands them to your browser and our proxy passes them straight through. Full detail, including every key we set, is on the Cookie Policy page. There is one exception, and it only ever applies if you ask for it: ESPN private-league cookies can be stored on our servers, encrypted, if you switch on background synchronisation. That is off unless you turn it on, it cannot be turned on without you reading a disclosure and agreeing to it by name, the values are encrypted with AES-256-GCM and are never returned to any screen, log or error message, and disconnecting the league deletes the ciphertext and withdraws the consent in the same step. Nothing is stored this way for Yahoo, and nothing is stored for any platform unless that consent is on record. Whether the store is even configured on our side is published as a plain true/false on the System Status page, so you do not have to take this paragraph's word for it. The mechanism is described on the Security page.

9. How long we keep it

DataRetention
Sign-in codesDeleted the moment they are used, and expire 10 minutes after they are sent. Deleted after 5 failed attempts.
AlertsAutomatically dropped 14 days after they are generated, and capped at the 50 most recent.
Session tokensValid for 30 days from sign-in, then dead.
Account, leagues, preferencesKept while your account exists. Deleted on request, and deleted individually the moment you remove a league in the app.
Entitlement recordsKept while your account exists; needed to prove what you bought.
Purchase recordsHeld by Stripe under its own retention rules, and by us as required for tax and accounting — typically seven years.
Server logsNetlify's standard retention for hosting logs.

When you ask us to delete your account we remove your records from the users, userdata, entitlements, alerts and authcodes stores. Copies may persist briefly in routine backups before they cycle out, and we keep the minimum transaction record the law requires.

10. Security

Everything travels over HTTPS. Sign-in codes are hashed, single-use and short-lived. Sessions are signed tokens verified with a constant-time comparison. Payment details never reach us. The full picture — including the limits we are not going to dress up — is on the Security page. No system is perfectly secure, and we will not pretend otherwise.

11. Your rights

Wherever you live, you can ask us to:

Email privacy@bellcowgm.com from the address on your account — support@bellcowgm.com works too. We verify you by that address, or by a fresh sign-in code if there is any doubt, and we respond within 30 days (extendable once, with notice, where the law allows). Exercising a right never costs you anything and never degrades the service you paid for.

12. California rights

If you are a California resident, the CCPA as amended by the CPRA gives you the rights to know what we collect and why, to access a copy, to correct inaccuracies, to delete, to opt out of sale or sharing, and to limit the use of sensitive personal information — plus the right not to be discriminated against for using any of them.

In practice: the categories we collect are identifiers (your email), commercial information (that you bought a Season Pass), internet activity limited to standard server logs, and your own user content (your leagues, preferences and questions). We collect them for the business purposes listed in section 4. We do not sell personal information, and we do not share it for cross-context behavioural advertising — that has never happened and there is no mechanism in the product for it — so there is no "Do Not Sell or Share My Personal Information" link to click, because there is nothing to opt out of. We do not collect sensitive personal information, so there is nothing to limit.

You may use an authorised agent, with written permission we can verify. To exercise any of these rights, email privacy@bellcowgm.com (or support@bellcowgm.com — both reach us).

12.1 Notice at collection

California law asks us to state, at or before the point of collection, exactly what we take and what we do with it. This is that notice, in full — there is no longer list somewhere else.

CategoryWhat it actually isWhy we collect itKept forSold or shared?
IdentifiersYour email address, and the account ID we derive from itTo create your account, sign you in, and email you what you asked forLife of the accountNo
Commercial informationThat you bought a Season Pass, and the Stripe transaction IDTo unlock what you paid for, handle refunds, and keep tax records7 years (tax)No
Internet or network activityStandard server logs — IP, timestamp, path, statusTo keep the service up and to investigate abusePer section 9No
User contentYour leagues, rosters, settings, notification preferences and assistant questionsTo produce your plan, alerts and answersLife of the accountNo
GeolocationNone. We do not collect it, coarse or precise.——No
Sensitive personal informationNone. We do not collect any category the CPRA defines as sensitive.——No
InferencesNone used to profile you. Model outputs describe your team, not you.——No

We disclose personal information only to the processors named in section 6, and only for the business purposes in section 4. None of them is permitted to use it for their own purposes.

12.2 Automated decision-making

Bellcow makes no automated decision that produces a legal or similarly significant effect on you. Its outputs — projections, plans, championship odds — describe your fantasy team and inform your judgement. They do not decide your access to the service and they carry no consequence for your credit, employment, insurance, housing or any legal right.

12.3 Shine the Light

Under California Civil Code §1798.83, California residents may ask which categories of personal information we disclosed to third parties for those third parties' own direct-marketing use in the previous calendar year. The answer is none. We have never done this and the product has no mechanism for it. If that ever changes we will update this section and answer requests as the statute requires. To ask anyway, email privacy@bellcowgm.com with "Shine the Light" in the subject.

13. Other US state rights

Residents of Virginia, Colorado, Connecticut, Utah, Texas, Oregon, Montana, Delaware, Iowa, Nebraska, New Hampshire, New Jersey, Tennessee and other states with comprehensive privacy laws have broadly the same rights: confirm and access, correct, delete, obtain a portable copy, and opt out of targeted advertising, sale, and profiling with legal effects. We do none of those last three, so those opt-outs have nothing to act on.

If we deny a request, you may appeal it by replying to our decision. We will review the appeal and give you a written answer within 45 days, and if we still say no we will tell you how to complain to your state Attorney General.

Nevada residents may submit a verified request not to sell covered information; we do not sell it in any event.

14. Children's privacy

Bellcow is not directed to children under 13 and we do not knowingly collect personal information from them. If you believe a child under 13 has created an account, email support@bellcowgm.com and we will delete the account and its data promptly. Users aged 13 to 17 need a parent or guardian's consent and supervision, and only a parent or guardian may make a purchase.

15. International users

Bellcow is operated from the United States, and our processors — Netlify, Stripe, Resend and Anthropic — process data in the United States and other countries. If you use Bellcow from outside the US, your information will be transferred to and processed in the US, where privacy law differs from your own. Where a transfer mechanism is required for personal data leaving the UK, EEA or Switzerland, we rely on our processors' Standard Contractual Clauses and equivalent safeguards. UK and EEA residents may complain to their national supervisory authority; we would rather you told us first.

16. Do Not Track and Global Privacy Control

There is no tracking to disable. Bellcow sets no cookies, runs no analytics and serves no ads, so a Do Not Track header or a Global Privacy Control signal has nothing to switch off — the behaviour those signals ask for is already the only behaviour we have.

17. Changes to this policy

If we change what we collect, who processes it or how long we keep it, we will update this page and move the "Last updated" date. For a material change — a new processor, a new data category, a longer retention period — we will email the address on your account before it takes effect.

18. Contact

Soulvaya Labs, Inc. — Bellcow GM
Attn: Privacy
131 Continental Drive, Suite 305
Newark, Delaware 19713
United States

Privacy requests, questions and complaints: privacy@bellcowgm.com
Anything else: support@bellcowgm.com
Formal legal notices: legal@bellcowgm.com

Contact Support · Help Center · Status