We built a cleaner score that structurally can't fear-monger
Every cleaner wants to hand you a number, and most of those numbers are salesmen. "2,847 issues found" is not a diagnosis — it is a doorbell for the checkout page. Vaulith now grades your computer's privacy and storage with a letter, and we designed it backwards: we listed every trick a scary number pulls, inverted each one in the scoring math, and pinned every inversion as a unit test that fails our build if a future maintainer drifts. This is the engineering story, formulas included.
The pattern we set out not to repeat
Cleaner marketing has a house style, and it rests on three moves. First, the uncapped counter: call every cache file and old log an "issue," and the count scales with disk size instead of risk — a healthy Mac produces a five-digit alarm. Second, worst-case framing: you own a tax return, so the scanner calls your computer unsafe, as if possessing your own documents were the threat. Third, pay-to-fix: the red number sits beside exactly one button, and the button is a purchase.
None of this requires a villain. It is incentive geometry: when the number's job is conversion, the number inflates. We have documented where that geometry leads on real pricing pages — anchor prices, stacked discount badges (mackeeper.com/pricing, checked Aug 12, 2026, documented in our Honest Pricing Pledge) — and at the far end of the spectrum it decays into outright fakes: the January 2026 malvertising campaign sold a "free up disk space" fix that was actually a remote-access payload (SC Media, AppleInsider). In fairness: that campaign was caught and reported by MacKeeper's own researchers, and no mainstream cleaner is malware. The problem is softer — the scary number is a design choice, and it keeps getting chosen. The full teardown is in the Terminal-scam guide.
So before writing any scoring code, we wrote the inversions down as invariants. Then we made each one a test.
Inversion 1: owning a file is never the problem
The classic move is to count what you own. Our privacy score cannot see what you own — it only reacts to where things sit. A sensitive file (tax, medical, ID, financial) is penalized only when it sits in a high-traffic place: Downloads, Desktop, Public, Shared, a Screenshots folder, or a cloud-sync root like Dropbox or iCloud Drive — the folders that get screen-shared, synced to third parties, and forgotten. The same file in an organized Documents subtree costs zero points.
This is pinned as a property test: a vault of forty well-placed sensitive files on a clean disk grades a flat A+. The count of sensitive files you own is used for copy ("found and protected") and never enters the penalty math. If a future commit makes ownership cost points, the build fails. That distinction — we flag where sensitive files sit, never that you own them — is the whole ethical difference between a warning and a shakedown. To find those files yourself first, use our guide to locating sensitive documents with built-in tools.
Inversion 2: every penalty is capped and saturating
An uncapped counter can always out-scare you. Ours cannot: the exposure penalty stops at 42 points, the sensitive-duplicate penalty at 15, the duplicate-hygiene penalty at 12, saturating at 500 duplicates on a logarithmic curve. A genuinely messy Mac reads as bad — it cannot read as apocalyptic, because the math has no register for apocalyptic.
Honesty compels a confession here: our first storage curve was wrong in the other direction. The original duplicate penalty saturated at just 27 duplicates — a de-facto boolean that charged nearly every real machine the full penalty — and the reclaim term punished near-empty disks hardest, treating spare room as if it were an emergency. Our own adversarial review caught both; the shipped v1.1 model below fixes them, with old and new curves documented side by side in the design doc. A score that claims honesty has to accept correction in public.
Inversion 3: your own hand always beats our paid tier
The darkest pattern is a grade only money can fix. We inverted it twice over. First, an A+ is reachable entirely free — move the exposed files, dedupe, empty the caches — and a pinned test proves the path exists. Paying changes nothing about the number: the score function receives an "is paid" flag for labeling only, and a test asserts the same inputs produce the identical score with the flag flipped.
Second, when your grade could be better, the app shows the free fix first, above any upsell: "Move these 3 files out of Downloads and your grade becomes A — free." That projection comes from re-running the same pure scoring function with exposure zeroed, never from marketing arithmetic. And by construction the free fix is always at least as good as the paid projection — the Pro estimate retires only 0.85 of the exposure penalty, your own hand retires all of it — with a test pinning the inequality and a DOM-order test pinning that the free panel renders above the Pro one. Paying is never the only visible exit.
Inversion 4: a permission problem is never a grade
Scare-ware treats missing data as license to imagine the worst. Our card does the opposite: if the scan was truncated, blocked by permissions, or covered only a narrow folder selection, the letter is withheld and labeled partial — and positive claims shrink to "no exposed sensitive files in the areas scanned." The share function refuses partial cards outright rather than exporting a confident letter built on missing evidence. You cannot scan one folder and brandish an F, and we cannot wave an A we didn't earn the coverage for.
Two signals, never fused into one alarm
A full disk and a passport scan sitting in Downloads are different problems with different fixes, so the card keeps them as two sub-scores — Privacy and Storage — that the app always shows side by side beneath the letter. The composite weights them 0.55 and 0.45, leaning privacy, but the split stays visible, so you can always see which story the letter is telling. One signal tells you to move files; the other tells you to reclaim space. Neither is allowed to borrow urgency from the other.
The math, in one screen
This is the shipped v1.4 model — the full derivation, worked examples, and edge cases live on the public score page. Symbols match the source.
PRIVACY — P
E = sensitive files in a high-traffic folder (Downloads, Desktop, Public,
Shared, a Screenshots folder, or a cloud-sync root) — excluding files
inside development projects that YOU confirmed belong there ("they
belong here", revocable). Vaulith won't relocate project files, so
the choice is yours: an unconfirmed in-project file still counts,
and if the engine check can't run, the file counts (strict fallback)
Ep = photographed documents (IDs, paperwork) in those same folders,
same rule
Edup = exposed files that also have byte-identical copies (ships as 0 today)
P = round(100 − 42·min(1, ln(1+(E+Ep))/ln(1+50)) − min(15, 5·Edup))
clamped to 0..100
STORAGE — H (inputs quantized first: disk fullness to steps of 0.01,
reclaimable bytes RQ to 0.5 GiB buckets, usedQ = usedFracQ·total)
dupPen = 12 · min(1, ln(1 + dup) / ln(1 + 500))
dup = duplicates Vaulith offers to clean; copies inside
development projects are informational, never charged
fullnessScale = clamp(usedFracQ / 0.60, 0.25, 1)
reclaimRaw = min(45, 130 · RQ / max(usedQ, usedBytes, 1)) · fullnessScale
reclaim = min(reclaimRaw, min(45, 130 · RQ / (0.60 · totalBytes)))
fullPen = usedFracQ ≥ 0.80 ? min(20, (usedFracQ − 0.80) / 0.15 · 20) : 0
H = clamp(round(100 − reclaim − dupPen − fullPen), 0, 100)
COMPOSITE
Score = round(0.55·P + 0.45·H)
A+ ≥97 · A ≥93 · A− ≥90 · B+ ≥87 · B ≥83 · B− ≥80 · C+ ≥77 · C ≥73 · C− ≥70
D+ ≥67 · D ≥63 · D− ≥60 · F below 60
Worked example, hand-computed and pinned in the test suite: three sensitive files in Downloads, 12 GB reclaimable on a half-full 500 GB disk, 40 duplicates → Privacy 85, Storage 88, composite 86 — a B. The projection with all three files moved by your own hand: 95, an A.
Two structural details do quiet work. The quantization means APFS free-space jitter of a gigabyte or two cannot move any term, and a cross-scan hold extends that: a re-scan that finds the same exposure story can never drop your letter on disk-stat noise alone — pinned by a test that replays ±2 GB of jitter across a scoring boundary. And the fullness scaling means reclaimable space on a near-empty disk reads as opportunity, not urgency; only a genuinely filling disk keeps the full penalty. If the disk snapshot is unavailable, storage falls back to an absolute ladder labeled an estimate.
What we deferred, plainly
There is no monitoring daemon in this release. Nothing watches your files between scans, and no copy anywhere in the product claims otherwise. The paid tier's "With Pro" letter is a future-tensed projection — "what this Mac would grade with your exposed files under monitoring — monitored, not deleted. Monitoring arrives in a future Pro release" — and its footnote says outright that nothing is watched today. We even pinned the tense: a regex test forbids present-tense watching or alerting claims in every ghost string, and the test asserts against the exact retired wording that once got this wrong, so the guardrail itself is falsifiable.
Also deferred, and written down in the design doc rather than discovered later: the sensitive-duplicate signal ships as zero until the dedup pipeline carries it honestly; the high-traffic folder list is macOS-first, with Windows path shapes to follow; and there is no cloud grade trend, because the score is computed on your device and never uploaded — our own dashboard receives byte totals and counts, never a privacy score, a file name, or a path. Share cards are built by a strict allowlist: the export structurally cannot contain a path, filename, category, location, exact sensitive count, or even the word "exposed," and the date is coarsened to the month. You can watch all of this on the wire yourself — the method is in our vendor-neutral upload check, and the expected result is published on verify-it-yourself.
Why publish the rubric at all
Letter grades earn trust exactly once: when the rubric is public and the failure modes are testable. SSL Labs and Lighthouse work because anyone can read the scoring guide and argue with it. A grade you cannot recompute is just marketing with a serif font. So the formulas above are the real ones, the guardrails ship as unit tests in our build, and the claims about what the score will never do sit in the security page's claims ledger next to the rest of our falsifiable promises. If you find an input that makes the model scream, tell us — that is a bug against the design's stated invariants.
And to be fair to the category: a big "issues found" counter is not proof a vendor is dishonest — CleanMyMac and its peers are real products from real companies, and we compare ourselves to them with sources, including where they win. Our claim is narrower and checkable: a score whose incentives you can audit is better than one you have to trust, whoever ships it.
See your own grade — and try to catch the score lying
Vaulith's free tier computes the full Report Card with no account: real letter, both sub-scores, the free fix spelled out. Everything runs on your device, and the verify-it-yourself page shows how to confirm that with a network monitor. Plans and limits are on the pricing page — and none of them move the number.
Download for macOS — FreeKeep going
- The public score page — the full formulas, worked examples, and every guardrail.
- Find the sensitive documents on your Mac — locate what the privacy score reacts to, with built-in tools.
- Are Mac cleaners safe? — the six-point checklist that separates real cleaners from fakes, ours included.
- The Honest Pricing Pledge — the same no-fear-mongering rules, applied to how we sell.
Frequently asked questions
Can I pay to raise my grade?
No, and a test enforces it: the score function produces the identical number whether or not you are a paying customer. The paid projection exists only when exposure exists, and it is capped below what you achieve by moving the files yourself — free.
Does my grade ever leave my Mac?
No. The card is computed and stored locally. Sharing is an explicit export of a PNG you preview first, built by an allowlist that cannot include paths, filenames, categories, locations, or exact counts — and our servers never receive a privacy score at all.
My Mac got a C. Should I panic?
No — the math cannot express panic, on purpose. A C usually means a few files worth moving out of a shared folder and some space worth reclaiming, and the card tells you the exact free actions that raise it. If a re-scan finds nothing new, your grade cannot drop.