Everything, in plain sight.
This page exists because a protection product you can't inspect is just another thing asking for blind trust. Data flows, model metrics, what Haven can't do yet, what we'll never do: all of it lives here, not in a terms-of-service appendix.
What data exists, and where it lives.
A security company should be able to answer "what do you know about me?" in one table. Here's ours.
| Data | Where it lives | Who can read it | Leaves your device? |
|---|---|---|---|
| Links, messages & file names you scan | Processed in memory only | You | Never (any mode) |
| Scan history & protection score | This browser's local storage | You | Never |
| Your local/cloud mode choice | This browser's local storage | You | Never |
| Haven model + phishing feed | Browser cache, downloaded once | Everyone (public files) | N/A: it's a download, not an upload |
| Cloud-mode signals | Doesn't exist until you opt in AND the backend is live | — | See payload spec below |
| Accounts & sync (future) | Not built yet | — | Will be opt-in, E2E-encrypted, announced here first |
Verify it yourself: open your browser's network tab and run a scan. The only network request Haven makes is fetching the public model files — once.
Cloud mode: the full payload spec.
Cloud mode has one job: make the shared model smarter without learning anything about you. This is the complete list of what would ever be sent.
Sent (only these)
Never sent
The Haven model card.
Built from scratch, trained on real public scam data. This card updates with every model version — the numbers below are live for v0.1.0.
Training data
| Source | What it is | Size |
|---|---|---|
| PhishTank (verified + online) | Community-verified phishing URLs, current feed | 47,194 URLs |
| OpenPhish community feed | Fresh active phishing URLs | 295 URLs |
| Majestic Million | The web's most-linked legit domains (class 0) | 1,000,000 domains |
Sampling: max 3 URLs per phishing registrable domain, to avoid single-campaign bias → 8,652 training URLs per class, balanced.
What the model sees
20 structural features computed from the URL string itself — no network calls,
no page loads: domain length & entropy, digit/hyphen counts, subdomain depth,
punycode and mixed-alphabet detection, risky TLDs, top-1M membership,
brand-impersonation patterns, credential-bait words, shorteners, disguised
extensions, odd ports. Full list is in the open training code (Model/features.py).
How verdicts map to thresholds
- Clearmodel probability below the warn line — with the protective signals shown (e.g. "well-established domain")
- Suspiciouswarn line crossed — read the reasons; the amber band is where uncertainty lives on purpose
- Dangerdanger line crossed or exact match on the live phishing feed — don't touch it
Measured performance (holdout, n=3,461)
| Warn threshold | 0.30 | precision 0.960 · recall 0.936 |
| Danger threshold | 0.55 | precision 0.965 · recall 0.900 |
| AUC | 0.971 | ranked discrimination |
| Legit sites in red band | 3.4% | uniform top-1M sample |
| Legit sites warned | 4.0% | amber band, with reasons |
Real browsing skews to well-known domains, where the false-positive rate is far lower. But 0% doesn't exist, and pretending otherwise is how security tools lose trust.
Model file
- Size3.5 KB
- Typelogreg-v1 (20 features)
- Runtimebrowser, on-device
- Versionv0.1.0
- Training codeModel/train.py (in repo)
Reproducible: one script refetches the public data and retrains. No hidden corpus, no proprietary scrape.
The performance budget.
"Optimized like crazy" is a claim you can measure. These are the budgets the engine is built against.
| Operation | Budget | v0.1 reality |
|---|---|---|
| Link scan (features + model + feed) | under 50 ms | 1–5 ms measured in-browser |
| Message heuristics (20 patterns) | under 50 ms | sub-millisecond |
| File check (name/structure) | under 300 ms | sub-millisecond |
| Model download (once) | under 10 KB | 3.5 KB (+ top-domain cache) |
| Passive CPU impact | under 5% | zero between scans — nothing runs until asked |
What Haven can't do.
A security tool that hides its blind spots is a liability. Here are ours, in first place on the page.
- No content inspection yet. File analysis v0.1 judges names, extensions and structure — it does not deep-scan file contents. A zero-day inside a clean-named file won't be seen. WASM-based static content scanning is the next engine milestone.
- Shorteners are a blind redirect. Haven flags the shortener itself; it can't see the destination without expanding it, and it won't fetch links for you. Fetching would defeat the "nothing leaves your device" promise.
- Structural model, not a mind-reader. A brand-new scam on an aged legit domain with clean language can slip through. The amber band, the reasons list, and "trust is earned by the sender" exist for exactly this reason.
- Heuristics, not guarantees. Message, file and call analysis are pattern libraries built from documented scam behavior — they will miss novel scripts and occasionally flag unusual-but-honest messages. Every verdict says which engine layer produced it.
- Cloud mode's benefits don't exist yet. Until the backend is live, there is no shared-model advantage to opting in — and the UI says so instead of pretending.
Data attribution.
Haven trains on public feeds whose licenses require credit. They get more than credit — they get our thanks.
PhishTank
Community-verified phishing database, used under its attribution terms. phishtank.org
OpenPhish
Active phishing URL feed; the free community feed is used with attribution. openphish.com
Majestic Million
Top-1M domains by referring subnets — the "legit" baseline class. majestic.com
Scam-pattern sources
Message, file and call heuristics are built from publicly documented scam patterns published by consumer-protection agencies (FTC scam alerts and equivalents) and decade-established maldoc conventions.
Talk to a human.
The contact endpoint will be listed here before launch — we'd rather show
a "coming soon" than a black-hole form. Security researchers: the model
training code and reproducible pipeline are in the repository's
Model/ folder today.