Everything runs locally in your browser: your log files never leave this machine. Nothing is uploaded, and there is nothing to sign up for.
Three steps, no install.
Drag & drop the folder (or .jsonl files) here
or
On the machine with the logs, run python scripts/check_cache_loss.py --json (the script ships in this repo) and paste everything it prints below. The pasted JSON contains aggregates only: totals plus daily counts.
Billing-shape judgment v3: what was charged decides, not what the diagnostic said. Only rebuilds inside the cache TTL count; legitimate expiries and declared prompt changes are excluded.
Background blue-grey = request volume that hour (darker = heavier use). Red with a number = in-TTL losses. This separates "zero because idle" from "zero despite heavy use". Click a red cell for per-event detail (time, idle gap, tokens) in a popover next to the cell; it stays in your browser.
Every finished scan is written to this browser's own storage on this computer: the totals, the daily rows, the hour-by-hour counts and this machine's fingerprint hashes. Never to a server. It is what lets the next run start the day after your last submission instead of repeating a period you already sent, and what lets this page compare two runs. Only the last 8 results are kept. Every period named in this card is a UTC period, matching the submission card rather than the charts above. Unchecking the box below stops future saves and leaves what is already here; the delete button removes everything and switches saving off. On a shared or public computer, uncheck it: whoever uses this browser profile next can read what is stored.
Nothing is saved in this browser yet.
Exactly the JSON shown below is sent: period, totals, daily counts, the names of the cache-miss reasons and client versions your logs carried (the names only, never how many of each), and the one-way fingerprint hashes that keep your machine to a single row. Never your logs, file paths, session contents or per-event details. Narrowing the shared period recomputes the totals for that window. The days in this card are UTC days, unlike the screens above, which are in your own timezone: submissions from many countries are summed day by day, and cutting each one by its own local date would scramble the fleet's daily totals. The dates in the picker below are therefore the UTC dates that will be sent.
When checked, this submission's requests and losses are published per hour of the day, which means the hours you tend to work become visible in a public repository. Off by default. Resubmitting the same window later with this unchecked removes that window's hours.