Transparency

A warning tool is only worth trusting if you can check how often it cries wolf. We measure that and show the numbers.

Numbers you can reproduce View source
Show the numbers

Our promises

What we detect

Eight families of signal, combined into one score.

Measuring false positives

A false positive is a warning on a site that is fine. We count the loud ones, high and critical. The address-only engine runs over the first 100,000 domains of the Majestic Million, a public list of the most-linked sites, and the rate is high plus critical warnings divided by domains scanned.

Reproduce it

The audit prints every site it flagged:

node scripts/fp-audit.mjs

Add --selftest to check the harness on a small built-in set, --limit N to scan fewer domains, or --cache to reuse a downloaded corpus.

Latest result

Run of , 100,000 legitimate sites. The 11 August run had the same numbers.

  • Low99,912 (99.9%)
  • Elevated88 (0.088%)
  • High0
  • Critical0
False-positive rate 0%, 0 in 100,000, after the August 20 model update; 88 sites show the quieter yellow level.

Method, command, flagged domains and run history are on the benchmark page.

What it catches

The other side of the coin: 392,233 live phishing hosts from the three public feeds on , rated by address alone with the known-bad lists switched off, so this is what the heuristics and the on-device model catch before a site is on any list.

  • Low105,703 (27.0%)
  • Elevated243,669 (62.1%)
  • High33,095 (8.4%)
  • Critical9,766 (2.5%)
73.0% show at least an elevated signal and 10.9% a high or critical warning from the address alone. The known-bad lists, updated daily, catch the rest; most misses are ordinary-looking names on free hosting.

Report a mistake

If Fish Catcher warns about a good site, or misses a bad one, open an issue. Real examples improve the lists and the model.