Privacy Policy
Last updated 30 October 2026
Who we are
Should I Dodge is a small, independent tool for League of Legends players, run by an individual developer. If you have a question about your data, contact us at admin@shouldidodge.lol.
Screenshots
When you upload or capture a champion-select screenshot, the server checks it against basic limits — under 8 MB, PNG or JPEG, no more than 16 megapixels — decodes it in memory, and runs it through a local OCR engine (Tesseract) to read the champions on both teams.
The screenshot is never written to disk and never sent to any third party. Once OCR has read the champion picks off it, the image itself is discarded.
Riot ID
Entering your Riot ID is optional. If you provide one, we use it to look up your rank from a third-party League of Legends statistics provider so the win estimate can be calibrated to your tier.
We store the result of that lookup — keyed by your Riot ID — in server memory and in a cache file on the server's disk, for up to 12 hours, after which it expires automatically. We don't share it with anyone else — your Riot ID itself is never passed to advertisers or used for ad personalisation.
Separately from that cache, when you run an analysis with a Riot ID — on this site or through our Discord bot — we permanently store that Riot ID, the region you selected (if any), whether the analysis came from the site or the bot, and a running count of how many analyses have been run with it. This is how we understand how the app is used. It is retained indefinitely; to have it removed, contact admin@shouldidodge.lol.
The Riot ID boxes remember your recent searches only in your own browser (local storage on this device); clearing your site data removes them. As you type, the box suggests players who already appear in the match data we store; the text you type for suggestions is not logged.
You can also ask the app to look up your teammates' ranks, on demand, using the names read off your screenshot together with a guessed tag line. Those lookups go to the same third-party statistics provider, are never stored beyond that provider's own 12-hour cache entry, and never appear on a shared lobby link — teammate names stay on your own screen.
Our summoner-profile pages are different: the profile header's own ranked lookup is fetched directly from the Riot Games API on demand, not from the third-party statistics provider above, and held in memory for a few minutes.
If you use the live match feature, once your champ-select lobby has been analysed we use your Riot ID and region to check with the Riot Games API whether your game has started. Once it has, we fetch the ten players' ranks, champion mastery, and recent ranked matches from Riot to show you a live scoreboard for that game. Champion mastery is only ever fetched, never stored.
Both the summoner-profile pages and the live match view also fetch recent ranked match history — for a profile page, the account you looked up; for live match, all ten players in your game — and this part IS written to disk. Because a completed match's data never changes, we store it permanently in our database: PUUIDs, Riot IDs, and per-game statistics (champion, KDA, items, runes, and similar) for every participant in that match — not only the person whose profile or game you looked up. That includes the other nine players in the game, even if they've never visited this site or searched for anything themselves, and their display names are stored alongside their stats. We also store each of those players' current solo-queue rank the same way, keyed by their puuid and re-checked with Riot at most once a week rather than deleted. We do this so viewing a profile or a live game again doesn't re-fetch the same unchanging data from Riot every time. This data is retained indefinitely today — there's no automatic deletion. If you'd like data about you removed, contact us at admin@shouldidodge.lol and we'll action it manually.
Our "Is it me or my team?" pages add two more tables. The first, ledger_snapshots,
caches each "Is it me or my team?" result we compute, keyed by the account's PUUID: the match ids,
dates, draft odds and results of the games we scored. It is deleted automatically after 90
days without anyone viewing it. The second, ledger_requests, records that a
Riot ID was looked up: a keyed hash of the Riot ID, the day, and whether the request came
from the site, used only to count return visits. The Riot ID itself is not stored there,
and the entry is deleted after 180 days. A shared "Is it me or my team?" link carries your Riot ID only
if you tick "Show my name on the shared link" when you create it.
Technical data
We use your IP address transiently, held in server memory, as a key for rate limiting — to stop abuse of the service. We also rely on whatever standard request logs our hosting providers keep. We don't use IP addresses to identify individual visitors.
Cookies
The app itself sets one strictly necessary cookie: ASP.NET Core's built-in antiforgery cookie, which keeps the app's forms secure. Cloudflare, the CDN in front of the app, may also set its own strictly-necessary cookies for bot protection and security. Neither of those requires consent.
The site also uses Google Analytics to understand how visitors use it — pages visited, approximate location, and device and browser. Google Analytics sets its own cookies to do this. See how Google uses information from sites that use its services for more detail.
This site is configured to serve Google ads through Google AdSense. Google may also set advertising cookies to serve and measure ads, but only after you've given consent through the cookie banner. You can review or withdraw that consent at any time using the "Cookie settings" link in the footer, which appears alongside the ads.
Third-party services
Looking up champion win rates happens through a third-party League of Legends statistics
provider, queried from our server so your IP address is never exposed to it; that
provider aggregates its win rates from League of Legends match data that originates with
Riot Games. Champion data comes from Riot's public ddragon.leagueoflegends.com
service, also queried server-side rather than from your browser.
We host the app on Fly.io, behind Cloudflare as a reverse proxy and CDN.
The mechanic guides under /guides/mechanics embed YouTube videos in privacy-enhanced mode (youtube-nocookie.com). The player only loads when you open one of those guide pages, and loading it contacts YouTube, which therefore receives your IP address. Once you play a video, YouTube may also set its own cookies or local storage. See Google's privacy policy for how it handles that data.
Advertising
This site is set up to serve Google ads, though they may not be running yet — this section and the two after it describe what happens once they are, including the "Cookie settings" link in the footer, which appears alongside the ads.
Google is a third-party vendor that serves ads on this site. Google uses cookies and device identifiers to serve ads based on your visits to this and other websites. See how Google uses data when you use its partners' sites or apps for more detail.
No ad slots are placed anywhere on the site yet: Google's ad script and the consent management platform load on every page, but no page asks them to fill an ad. When that changes, ads will appear on the guides and information pages, not on the lobby tool itself.
You can opt out of personalised advertising at Google Ads Settings, or opt out with participating vendors generally at optout.aboutads.info. Google publishes a list of the ad technology providers it works with at google.com/permissions/adstechnologyproviders.
Your choices in the EEA, UK and Switzerland
If you're visiting from the EEA, UK, or Switzerland, a Google-certified consent management platform asks for your consent before any advertising cookie is set. That consent covers whether Google and its advertising partners may use cookies and device identifiers to personalise and measure ads; it doesn't affect the strictly necessary cookies described above, which run regardless.
You can change your choice at any time using the "Cookie settings" link in the footer of every page.
Do Not Sell or Share (US)
If you're a California resident, the CCPA and CPRA give you the right to opt out of the "sale" or "sharing" of personal information, which can include the advertising identifiers Google uses to serve ads. You can exercise that right using the same "Cookie settings" link in the footer, or by emailing admin@shouldidodge.lol and we'll action it manually.
Legal bases
Where GDPR applies, we rely on:
- Consent, for advertising cookies and the ad personalisation they enable.
- Legitimate interest, for the transient use of your IP address to rate-limit requests and prevent abuse.
- Legitimate interest, for using Google Analytics to understand how the site is used.
- Strictly-necessary processing, which needs no separate legal basis, for the antiforgery cookie that keeps the app's forms secure.
Your rights
You can ask us to access, correct, or delete any personal data we hold about you by contacting admin@shouldidodge.lol. A cached Riot ID lookup expires on its own within 12 hours, so deletion there is effectively automatic. Cached "Is it me or my team?" results are deleted after 90 days without a view, and the hashed return-visit entries after 180 days. The analysis count and match history described under "Riot ID" above are different — they're kept indefinitely and aren't deleted automatically, so removing them requires emailing us.
If you think your data has been mishandled, you can also complain to the Portuguese data protection authority, the CNPD (Comissão Nacional de Proteção de Dados).
Children
Should I Dodge isn't directed at children, and we don't knowingly collect data from them. The only optional personal data the app handles — a Riot ID — requires a Riot Games account, which is itself subject to Riot's own age requirements.
Changes to this policy
We may update this policy as the app changes. The date at the top of this page reflects the last update.