Privacy Policy — swgohscanner.com
DRAFT — generated from the codebase on 2026-09-02; not legal advice; have a lawyer review before publishing.
Items marked
TODO(owner)must be filled in or confirmed by the owner before this document goes live. Features marked planned, not yet live describe the launch version of the service and do not exist in code today.
Provider / data controller: Beaver Dam Productions (sole proprietorship,
United States)
Mailing address: TODO(owner): [BUSINESS MAILING ADDRESS — mailbox or virtual business address; do not publish a home address]
Privacy contact: privacy@swgohscanner.com
General support: support@swgohscanner.com
Effective date: TODO(owner): [DATE OF PUBLICATION]
1. Who we are and what the service does
swgohscanner.com ("the Service") is run by Beaver Dam Productions. It analyses a Star Wars: Galaxy of Heroes ("SWGOH") player's roster and produces a roster review: which teams are complete, what to farm next, where mods and zetas are weak, and a written explanation of that advice.
The Service is not affiliated with, endorsed by, or sponsored by Electronic Arts, Capital Games, Disney, or Lucasfilm. See the Terms of Service for the full non-affiliation statement.
2. What we collect
We collect only what is needed to run the Service. There are three kinds of data.
2a. Account data (planned, not yet live)
When sign-in launches, you will sign in with a Google account. We will store:
- your Google account identifier and the email address on it;
- the invite code you redeemed during beta, bound to that Google identity;
- the ally code(s) you link to your account;
- if you become a paying member, an "entitlement" record that says your access is active and that it came from Patreon (see §4).
We do not store passwords. We never see or store card numbers or other payment details; Patreon handles payment entirely.
2b. Game and roster data
To analyse a roster we need an ally code, the nine-digit identifier SWGOH assigns to every player. Using that code we fetch, from the game's own servers through an open-source bridge called comlink, and store:
- your in-game player name, player ID, and Galactic Power totals;
- your complete roster: every character and ship, with stars, gear, relic level, applied zetas and omicrons, mod-derived speed, and related stats;
- your guild's name and ID, and the full guild member list as the game reports it (see §3, "Data about people who never signed up");
- the analysis we generate from the above, including the text produced by the AI model (§4), and any chat conversation you have with the Service about your roster.
Each roster pull is stored as an immutable snapshot with a timestamp, so the Service can show how a roster changes over time.
2c. Automatic data
- Server logs. The web server keeps standard access logs (IP address, requested page, time, browser type) for security and debugging. Log files are deleted after 30 days.
- Cookies. The Service uses cookies only to keep you signed in (planned, not yet live). There are no advertising, analytics, or tracking cookies.
- Error reports (planned, not yet live). We intend to use an error monitoring service (Sentry) that would receive technical details of a crash, which may include the page you were on and your account identifier.
We do not use analytics tools, tracking pixels, advertising networks, email marketing, or newsletters, and we do not sell personal data.
3. Data about people who never signed up
Two honest things you should know.
We cannot verify that an ally code belongs to the person who entered it. Ally codes are semi-public: they appear in the game, in guild recruitment posts, and on third-party sites. Anyone who knows an ally code can enter it and receive a roster analysis for that player. That means a scan may be generated for a player who never used the Service and never consented. Our Terms of Service prohibit submitting ally codes you do not own or are not authorised to analyse, and we terminate accounts that do, but we cannot prevent it technically.
We store guild data. When we pull a roster, we also pull the guild record, which includes basic data (name, ID, Galactic Power) about every member of that guild, none of whom signed up for the Service. We use it only to place the scanned player's roster in the context of their guild.
If you are one of those people — a player whose roster or guild data is held by us without your involvement — email privacy@swgohscanner.com with your ally code. You may ask what we hold and ask us to delete it. We treat these requests as a real obligation and will act on them; see §7.
Our basis for holding this data is our legitimate interest in providing roster
analysis to our users, balanced against the fact that the underlying game data
is already visible to other players in the game itself.
TODO(owner): have a lawyer confirm this basis is adequate for EU/UK users.
4. Who we share data with
We share data only with the providers needed to run the Service. Each receives only what its role requires.
| Provider | What they receive | Why |
|---|---|---|
| OpenAI (AI model provider) | A written summary of your scan — your in-game name, Galactic Power, roster detail, guild name, and the engine's findings — plus each message you send in a roster chat and the model's replies. Roughly 25 KB per first look. | Generates the plain-English explanation of your roster and answers your questions about it. We do not send your email, Google identity, or ally code to the model. |
| Hetzner Online GmbH (hosting) | Everything in §2, stored in our database on their servers in Helsinki, Finland (European Union). | Hosting the Service. |
| Google (sign-in) planned, not yet live | Your sign-in request. Google tells us your account identifier and email; we ask for no other Google permissions. | Sign-in identity only. |
| Patreon (payments) planned, not yet live | Your Patreon membership status, via Patreon's API and webhooks. We receive whether you are an active patron and at what tier. We never receive payment details. | Deciding whether your access is active. |
| swgoh.gg (game images) | When a scan page loads, your browser fetches unit portrait images directly from swgoh.gg's asset server. swgoh.gg therefore sees your IP address and the image requests, under its own privacy policy. We send it nothing ourselves. | Displaying character portraits. |
| Hetzner Object Storage (backups) planned, not yet live | Encrypted nightly copies of the database, stored in the European Union. | Disaster recovery. |
| Sentry planned, not yet live | Technical error reports (see §2c). | Error monitoring. |
OpenAI data handling. We use OpenAI's API under its standard business
terms: OpenAI does not use API data to train its models, and retains API
inputs and outputs for up to 30 days for abuse and misuse monitoring before
deleting them. OpenAI is a separate company with its own privacy policy.
TODO(owner): when creating the production OpenAI account, confirm no setting has been changed from this default.
We do not sell, rent, or trade personal data. We disclose data beyond this list only if the law requires it.
5. How we use your data
- to fetch, store, and analyse the roster(s) linked to your account;
- to generate the written review and to answer your questions about it;
- to show how your roster has changed between scans;
- to check whether your access is active (invite code during beta; Patreon membership at launch);
- to keep the Service secure and to diagnose failures.
We do not use your data to build advertising profiles, and we do not use it for any purpose unrelated to roster analysis.
6. Sharing your scan with other people (planned, not yet live)
Scans are private to the account that owns them by default. At launch you will be able to share a scan only with specific accounts you explicitly approve. There are no public share links. A person you approve sees the scan pages; they do not see your email or Google identity.
7. Retention and deletion — stated honestly
Retention is indefinite today. Roster snapshots are stored as an append-only history by design: the Service never overwrites or automatically deletes a snapshot, because the history is what lets it show change over time. Chat conversations and generated analyses are also kept. There is no automated retention schedule and we will not claim one that does not exist.
Deletion is on request and handled manually. Email privacy@swgohscanner.com with your ally code (and, once sign-in launches, the email on your account). We will delete the snapshots, analyses, chat history, and account data associated with it. Deletion from live systems will be completed within 30 days of a verified request. Copies in nightly backups are overwritten on the backup rotation cycle, within a further 30 days.
Guild member data about non-users is held as part of the scanned player's snapshots and is deleted with them, or on that member's own request (§3).
8. Where your data is stored, and international transfers
Personal data is stored on servers in Helsinki, Finland (European Union), operated by Hetzner Online GmbH under a data-processing agreement.
The Service is operated from the United States by Beaver Dam Productions, and
the written review is generated by OpenAI (United States, §4). So if you are
in the European Union, United Kingdom, or another region with data-transfer
rules, your roster data stays in the EU, but the operator can access it from
the United States and the text sent to OpenAI is processed there. Those
transfers rely on the providers' data-processing agreements, which include
Standard Contractual Clauses. If you do not want your data processed in the
United States, do not use the Service, or ask us to delete your data at any
time (§7).
TODO(owner): lawyer review — confirm the transfer wording; sign the Hetzner DPA (account settings) and OpenAI DPA and keep copies.
9. Your rights
Wherever you are, you can ask us to:
- tell you what data we hold about you or your ally code;
- correct it, or re-pull your roster so it is current;
- delete it (§7);
- give you a copy in a machine-readable form (the raw snapshot is JSON);
- stop processing it, which in practice means deleting your account.
If you are in the EU/UK you also have the right to object to processing based on legitimate interest and to complain to your local data-protection authority. Send all requests to privacy@swgohscanner.com. We may ask you to prove control of the ally code or account before acting.
10. Security
Data is stored in a database on a single server that is not directly exposed to the internet; only the web application is. Connections to the site use HTTPS. Access to the server is limited to the owner. No system is perfectly secure, and we cannot guarantee against unauthorised access.
11. Age and eligibility
The Service is for adults. You must be 18 or older to use it. We do not knowingly collect personal data from anyone under 18; if we learn that we have, we will delete it. If you believe a minor has used the Service, email privacy@swgohscanner.com.
(Roster and guild data pulled by another user may describe a player who is a minor, since we cannot verify ages of players who never signed up. Such data is handled under §3.)
12. Changes to this policy
We will post any changes on this page and update the effective date. For material changes we will notify signed-in users on the site before they take effect. Continued use after the effective date means you accept the revised policy.
13. Contact
Beaver Dam Productions
TODO(owner): [BUSINESS MAILING ADDRESS]
Privacy and legal: privacy@swgohscanner.com
Support: support@swgohscanner.com