Privacy
Who is responsible
The data controller for howmanygpus.ai is Siarhei Harlinski. Contact: [email protected], LinkedIn or X.
1. What we collect when you use a tool
To calculate, your browser sends the configuration (model, precision, runtime, context length, users, latency target and similar) to our server. With each calculation we log one row:
| Field | Example |
|---|---|
| Time and tool | 2026-10-25 14:02 UTC, calculator / reverse / optimize / TCO / fine-tuning / edge |
| Model and its parameters | model ID, parameter count, architecture |
| Settings | runtime, weight precision, context length, concurrent users, latency target |
| Result summary | recommended GPU, GPU count, VRAM, parallelism, fit band, cost per 1M tokens |
| Entry point | calculator, share link, embed, compare page, example, recent |
| Country | two-letter code, e.g. DE |
| Visitor | salted IP hash (see section 3) |
We also log:
- Model searches on Hugging Face — the search text (first 100 characters) and whether a catalog model matched; for a loaded model, its Hugging Face ID. This tells us which models to add.
- Interactions — named actions such as share, copy link, pin, compare, sort, filter, quantization applied, cost history opened.
- Knowledge-base votes — "Was this helpful?" on an article: the article and yes or no, nothing else.
- Errors — when a page fails to render: the route and the error message (up to 200 characters).
- Price-page engagement — GPU filter, history opened, click-through to a provider.
We do not collect names, email addresses, phone numbers, account IDs, full user-agent strings, or any prompts or payloads. Raw IP addresses are not written to the analytics database; they appear only in the server access logs described in section 3.
2. Page views
We count page views ourselves, without cookies or third-party scripts. For each view we store:
- the path only — no query string and no fragment, so the settings inside a share link never reach the count;
- the referring site's host name (e.g.
news.ycombinator.com), not the full referring URL; - UTM source, medium and campaign, if the link had them;
- country (two-letter code) and device class — desktop, mobile or bot, derived from the user-agent, which is not stored;
- the salted IP hash, and whether this was your first view in 30 minutes.
Crawlers are stored as bot and excluded from human traffic figures. Server-rendered pages (prices, VRAM by model, comparisons, knowledge base, glossary, engineering notes, accuracy, project pages), the RSS feeds and the share image record the same fields from the request.
3. IP addresses
- Hashed in our analytics. An address is combined with a secret server-side salt, hashed with SHA-256 and truncated to 16 hex characters — enough to count unique visitors, not to recover the address. If no salt is configured, nothing is stored.
- Erased after 90 days. Hashes older than 90 days are deleted. The rest of the row is kept as an anonymous count, so long-term statistics survive.
- Country, not location. Country comes from Cloudflare's
CF-IPCountryheader (or, if configured, a local GeoLite2 database). No city or coordinates are derived. - Rate limiting uses the address in memory to enforce request limits; it is not written to the analytics database.
- Server logs. Our web server and application keep standard access logs — the raw IP address, time, requested URL and user-agent — for operations and security. They are kept in container logs until the container is recreated.
4. Why we use it
To decide which GPUs and models to add, to see which features are used and where they fail, and to understand where visitors come from. We do not sell or share this data, do not use it for advertising, and do not build profiles of individuals.
5. Your browser's storage
We store preferences in your browser's local storage, not in cookies. It stays on your device and is not sent to us:
| Key | What it holds |
|---|---|
gpucalc_form_draft, gpucalc_reverse_draft | the last calculator and "What fits my GPU" inputs |
gpucalc_recent | your recent calculations (clear them from the Recent menu) |
gpucalc_rec_sort | result sort order |
gpucalc_recent_gpus | recently viewed GPUs in the catalog |
gpucalc_search_recent | your recent searches — one list for the site search and the knowledge-base search |
gpucalc_market_seen | the market snapshot behind "since your last visit" on Cloud prices |
Three values live in session storage instead, which your browser clears when you close the tab: gpucalc_chunk_reload, a one-time flag that stops a page from reloading in a loop after a site update; gpucalc_kb_helpful, the knowledge-base articles you already voted on in this tab and your vote, so each vote counts once; and stats_api_key, the site owner's access key on the owner-only /admin pages (never set for visitors).
You can delete all of it at any time in your browser's site-data settings.
6. Cookies and third parties
- Cookies. howmanygpus.ai sets no cookies. There is no consent banner because there is nothing to consent to.
- Cloudflare is our CDN and reverse proxy. Every request passes through it, so Cloudflare processes your IP address and request headers to deliver and protect the site, under its own privacy policy. Cloudflare sets no cookie for normal visits; it may set a short-lived, strictly necessary security cookie (
__cf_bm) only if it challenges traffic that looks automated. - Hugging Face. When you load a model by ID, our server — not your browser — requests its public config from Hugging Face. Your IP address is not passed on.
- No other third parties. Fonts and icons are served from howmanygpus.ai itself, so your browser makes no request to any other host. No analytics, advertising, session-recording or social-media scripts.
7. Price data
GPU prices are collected from providers' public price lists and pricing APIs. This involves no personal data.
8. Retention
| Data | Kept |
|---|---|
| Salted IP hash (events, page views) | 90 days, then erased |
| Usage rows without the hash | indefinitely, as anonymous counts |
| Server access logs (raw IP address) | kept in container logs until the container is recreated |
| Database backups | up to 12 months (rolling daily, weekly and monthly copies); a hash erased from the live database disappears from backups as they expire |
| Local storage | on your device, until you clear it |
9. Your requests
Because we hold no names or accounts, we usually cannot link stored data to a person. If you want to ask what we hold, request deletion or object to processing, write to [email protected]; we will answer within 30 days.
10. Changes
We will update this page when what we collect changes.
11. Contact
Siarhei Harlinski — [email protected] · LinkedIn · X @howmanygpus