Blog
Notes on competitive intelligence, win/loss analysis, and building a relevance-first alerting system.
August 12, 2026
Why some competitor pricing pages can't be scraped — and how to tell which
Not all scraping blocks are the same. A field diagnosis of Cloudflare JS challenges, Cloudflare WAF blocks, Akamai, and one false alarm.
August 12, 2026
Why we stopped showing raw win/loss dumps
A CSV import with 800+ win/loss rows is data. Nobody can read it. Here's how we turned it into a two-column, top-5 summary — deterministically, with no LLM call.
August 12, 2026
How we score competitor momentum (and why it excludes SEO data)
The math behind Ripplewatch's Momentum score: four signal types rolled into one directional number, and why we deliberately leave a fifth one out for now.