1. Where the measurement happens
The four benchmark stages run entirely in your browser. The CPU workload, the memory bandwidth and latency walks, the adaptive GPU raster pressure, and the path tracer all execute on your own hardware using Web Workers and WebGL2/WebGPU. Nothing about the workload is streamed to a server to be computed elsewhere, the numbers you see are produced on the same device you are testing.
2. What the benchmark reads
To produce a result, the benchmark reads performance telemetry that the browser exposes: CPU throughput and decay over time, frame timing and raster throughput, path-tracing samples per second, the number of logical processors, and the GPU renderer string reported through the WebGL RENDERER parameter. That GPU string is how we label the graphics backend in a report. A browser cannot read temperatures, voltages, clock frequencies, VRAM, or native FLOPS, so we do not collect those, we simply do not have access to them.
3. The processor model is your choice
There is no reliable way for a browser to identify your exact CPU model. When a report needs a processor name, it is the one you select yourself, not something we fingerprint or infer without your input. If you skip that step, the report is labeled accordingly.
4. What is stored, and when
When a run completes, its measured figures, the processor you picked and the graphics string the browser reported are stored on our server, with no address and no identifier for you or your machine. That record is what lets a report be reopened from an emailed link and what a calibration set is built from. What happens to a report is recorded too: that it was opened, downloaded, or that an unlock was clicked, again with nothing that identifies you.
5. Email, only if you offer it
We ask for an email address only when you choose to provide one: to receive a link to your report, to buy an unlock, or to write to us. It is attached to that run, that order, or that message and used for nothing else. You can run the free benchmark and read the on-screen result without giving us an email at all. We do not require an account to measure your system.
A message sent through the contact form is stored so a person can answer it, and you receive a copy. A file you attach to a message is not kept as you sent it: an image is decoded and re-encoded on the server, which removes its metadata and anything hidden inside it, a text file is checked for being plain text, and everything else is refused. Files sit in a private store, reachable only through links that expire, and go when the message goes. If you tick the box, the message also carries your browser and device details as read from the page.
Each of those actions, and each refused one, is written to an audit log with the time, the network address and browser it came from, and the country it resolved to, kept for 90 days and then removed. It exists so that fraud, abuse and a disputed payment can be answered, and for nothing else.
6. Ratings, only if you give one
After you download a report you may be asked to rate it from one to five stars. It is optional, closing the prompt is the end of it, and you are not asked again about that report. A rating is stored with the report it is about, together with anything you chose to write, a name if you gave one, whether you allowed us to quote it, and the country the request came from.
The average and number of ratings may be shown to search engines as the site’s rating once there are enough of them. Every rating counts toward it, whatever the score; none are left out for being low. Your words and name are never published unless you ticked the box allowing it.
7. Product analytics
To know whether this product is worth continuing, we count how many people start a run, finish it, open the report, and choose to unlock it. That counting is done with PostHog, and it is deliberately narrow. There is no automatic capture: every event the page can send is written by hand in one file, src/lib/analytics.ts, which is public in the repository and short enough to read in a minute.
The events carry the page path, the stage a run reached, how long it took, and figures bucketed into the same broad bands the site already publishes, for example a score of 61 to 74 rather than a score of 68. They do not carry your processor name, your GPU renderer string, your email, or any identifier for your machine.
One event per report exists to check that the test’s thresholds hold on machines other than ours. It carries the browser family (Chrome, Firefox, Safari or other), how the GPU was timed, the thread count as a range such as 9 to 16, whether the machine was on battery, the name of the curve’s shape, and the run’s figures in bands such as 15 to 20% decay. The same limits apply: no names, no exact figures, nothing that identifies the machine.
With the same choice, the record of a report’s opening on our own server carries four labels so we can see whether the paid report changes what people do: the site section the visit began on (such as a guide’s address, never a query string), the country the request came from, whether the machine reads as a desktop or a laptop, and the name of the curve’s shape. Test traffic is never recorded. Without the choice, the labels are not sent.
No cookie is set: what little state the analytics needs lives in this browser’s local storage. The requests go to systemcheck.live and are forwarded on our server, so your browser never opens a connection to an analytics company. Session recording, heatmaps and input capture are all switched off. If your browser sends a Do Not Track signal, we honour it and send nothing. In the EU, the EEA and the UK nothing is stored or counted until you have answered a small notice at the foot of the page, and a “No thanks” keeps the counting off in that browser.
8. Error reports
The benchmark drives WebGL2, Web Workers and floating-point render targets across graphics drivers we cannot test in advance, so when something breaks we would rather know than guess. Crashes are reported to Sentry with the error message, the stack trace, the page it happened on, and the browser version. Personally identifying data is switched off in code, so an error report does not include your IP address or your cookies, and there is no session replay.
We would rather say this plainly than let you discover it: an error report is data about your visit leaving your machine. It is the one thing on this site that does, apart from the measured figures you send when a report is generated. If that trade is not one you want to make, a content blocker will stop it and the benchmark will run exactly as well without it.
9. What we never do
- No sale of data. We do not sell, rent, or trade the information you give us. There is no data-broker relationship behind this product.
- No ad networks. SystemCheck carries no display advertising and embeds no advertising or ad-tracking script of any kind. Nothing here follows you across the web or feeds a profile used to sell you something.
- No hidden fingerprinting. The renderer string and core count exist to build your result, not to build a cross-site profile of you. Neither is ever attached to an analytics event.
- No background activity. The workloads run only when you start a test, and stop when it ends. Nothing keeps running after you leave.
- No accounts you did not ask for. There is no sign-up, no profile, and no identity attached to a run. You are identified to us only if you buy something, and then only by the order.
10. Payments
When you buy a report unlock, payment is handled by our payment processor. Card and banking details are entered with that processor and are never seen or stored by SystemCheck, we receive only the confirmation needed to grant access to what you paid for.
11. How long things are kept
This list is read from the code and the database schema. Where the code sets no period, it says so: those periods are not decided yet, and until they are, the record stays until you ask for it to be removed.
- Stored runs. The measured figures, the processor you picked and the graphics string, kept so a report can be reopened and the thresholds checked. No deletion period is set yet.
- What happened to a report. Opened, paid section seen, downloaded, unlock clicked, shared, checkout started, paid, with the coarse labels named under analytics below. Used to see whether the paid report helps anyone. No deletion period is set yet.
- Audit log. The time, network address, browser and country of each action and refusal, for fraud, abuse and payment disputes. Removed after 90 days by a nightly job.
- Orders and unlocks. The order, its amount and status, kept as the financial record a refund or dispute needs. An unlock opens its report for a year from purchase; the order record itself has no deletion period set yet.
- Your email address. Attached to the run, order or message you gave it for, and to a log of the mail sent to it. No deletion period is set yet; ask and it is removed from all of them.
- Messages and attachments. Kept so a person can answer. Attachments go when the message goes. No deletion period is set yet.
- Ratings. Kept with the report they are about. No deletion period is set yet.
- Payment notifications. The payment processor's delivery ids, kept so a payment is never counted twice. No deletion period is set yet.
- In this browser. A run in progress, until the report is shown or for a day if it is left; your last five reports, until newer ones replace them; your analytics choice, until you clear the site's storage. None of it leaves the browser.
- Companion files and sensor logs. A companion file is read in this browser and never sent. A sensor log you choose for Confirm this curve is sent once, with the report, to be lined up with the curve, and is not stored.
- Analytics and error reports. Kept by PostHog and Sentry for the period set in those accounts, not in this code.
12. Each choice is separate
Under the GDPR and India’s Digital Personal Data Protection Act, a choice you make for one purpose is not taken as a choice for another. Counting visits for analytics is its own choice, asked for in the EU, the EEA and the UK by the notice at the foot of the page. Storing a run on our server is how the report is produced and reopened, and is not tied to the analytics choice; a report link is emailed only when you ask for one. We send no marketing email and keep no marketing list. Every test on this site runs the same whether you accept, decline or never answer: no measurement waits on a choice.
13. Questions
If you want to know what we hold about you, or want it removed, write to support@systemcheck.live. We will respond honestly and specifically.