We will publish our funnel. Not yet.
flowsk.com runs the Flowsk snippet. Your visit right now is a journey in the same database a customer's data lands in — set by the same server-side cookie, confirmed by the same API, read by the same reporting code. That part is true today, and it is verifiable in the source.
What is not true yet is that the numbers are worth reading. We started this in August 2026. Publishing a table of near-zeros would be theatre, not transparency — and we would rather say that plainly than dress up an empty funnel as a principle.
This page fills in when the funnel is meaningful. Once it does, it stays up — including the months that go badly. That is the entire point of publishing: a commitment you cannot quietly retract.
What goes on this page
Exactly these columns, computed live by Signals::Funnel — the same class that renders our customers' reports. Nothing curated, nothing hand-assembled.
| Source | Medium | Campaign | Visitors | Identified | Conversions | Revenue | CAC | ROAS |
|---|---|---|---|---|---|---|---|---|
| — | — | — | — | — | — | — | — | — |
| — | — | — | — | — | — | — | — | — |
| — | — | — | — | — | — | — | — | — |
The rules we are committing to
Publishing a funnel badly is worse than not publishing one. These are fixed before the first number goes up, so they cannot be loosened later to make a month look better.
Aggregate only
Channel and campaign rows, plus totals. No person, no email address, no individual journey — not now, not when this page goes live.
No row about one person
Any channel with fewer than 10 visitors is merged into a single aggregate row. At low volume a row is a person, and a published row about a person is a disclosure.
Methodology on the page
First-touch credit, how ad spend is recorded, what bot filtering removes. A transparency page that hides its method is not one.
It stays up
Including the bad months. A number you can quietly retract is not a commitment, and retracting one is a worse signal than never publishing.
In the meantime, the thing you can check today is the mechanism, not our numbers: how the journey is stitched, why the cookie survives Safari, and how the same sale is counted once.
How to read this honestly
It is first-touch
A visitor is credited to the campaign that first brought them here, forever. Last-touch would tell a different story — usually one where email looks like a genius.
Ad spend is entered by hand
We record spend manually rather than pulling it from ad APIs, so the CAC and ROAS columns are only as current as our last entry.
Bots are filtered, imperfectly
We drop known crawlers, prefetches and Turbo frame requests. Some noise survives; anything here that looks too good probably includes some.
It is aggregate only
Channel rows and totals. No person, no email, no individual journey is exposed here — the journey explorer is a product feature, not a public page.
Track your own funnel the way we track ours.
A durable first-party id, conversions confirmed by your own server, and a journey you can read for every sale — the same code that will fill in the table above.