funneldoctor

raw events → diagnosis → numbers you can trustinteractive demo · synthetic data

Before you believe your growth chart, find out how much of it is your own team clicking around.

Below is a month of synthetic product analytics for an invented product. The dashboard view looks like a busy product with an export problem. Run the diagnosis and watch the engine separate real users from internal pollution — and a real funnel problem from a dead tracking event.

The dashboard, as found

1,236 events · Aug 2026 · synthetic dataset
309 active users1,236 events tracked27/309 signups reached export
Signed up309users
Created project18359% from prev
Completed render10055% from prev
Exported result2727% from prev

Looks like a busy product with an export problem. Before anyone acts on this —

The business story

Why this system exists

At a startup I ran growth analytics for, the funnel numbers told a 5x growth story — until segmentation showed that roughly half of all tracked events were the engineering team's own localhost and dev-environment traffic. Quoting the raw numbers to anyone — investors, the founder, the team — would have been reporting fiction. The same audit found a revenue-related event that had silently stopped firing: what looked like a conversion collapse was a dead instrument.

What I actually did (the original work)

A full tracking-inventory and data-quality audit of the product's analytics: enumerating every event, segmenting internal versus real traffic, reconstructing real user journeys, dating the instrumentation breaks, and publishing dated reports the team could act on — with the rule that a metric which can't be trusted gets flagged as unmeasured, never quoted as zero or passed along inflated.

The judgment calls

What went wrong along the way

The first pass at the original audit trusted the platform's own "active users" number and nearly shipped a growth summary built on it. The habit this demo encodes — diagnose the data before reading the data — exists because of that near-miss, and it later caught a second, unrelated tracking regression within days of it appearing.

What I'd change today

Detection here is heuristic (env labels, volume outliers, precursor-vs-target survival). The production version should also fingerprint office IP ranges and CI user agents at ingestion, and alert on instrumentation death within hours — a dead event found in a monthly audit already cost a month of unmeasured data.