NetRevenue · Funnel steps · v2, external framing

The funnel as the client reads it

Rebuilt on the brief that this page is mostly external — NetRevenue looking at how their funnel is performing, not us deciding what to fix. That is not a coat of paint on the three options below; it changes what the page is made of. Same real numbers, Aug 14–24 against the prior 11 days.

The comparison is the whole thing. Without it, a funnel can only ever read as loss.
A client shown “998 → 30” concludes one thing: we lose 97% of their traffic. The same data against the prior period says something completely different and equally true — traffic up 52%, qualified applications up 58%, and the end-to-end rate held at 3.0% while it scaled. Three of the four stages converted better than last period. None of that is visible on the current page, or on any of my three options, because all of them are snapshots. For an internal tool a snapshot is fine; you already know the baseline. An external reader has no baseline, so a snapshot hands them the worst reading by default.
Recommended Fits in ~470px — no scroll

Performance Funnel

Option B’s shape, rebuilt for an outside reader. Every stage carries its own movement against the prior period, and the number in each taper is the one that actually describes funnel health: the share that continued. Drop-off is drawn in neutral grey, not red — in a high-ticket application funnel most visitors are supposed to stop, and colouring that as failure is both alarming and wrong.

From visit to qualified · Aug 14 – Aug 24 vs Aug 3 – Aug 13
Qualified applications
30
▲ 58% vs prior period
Visit → qualified rate
3.0%
▲ held while traffic grew 52%
Stages improving
3 of 4
▲ vs prior period
15.0% -5.9pt vs prior 62.7% +11.9pt vs prior 87.2% +7.2pt vs prior 36.6% +2.7pt vs prior CONTINUED TO NEXT STEP Landing page visits +52% vs prior period Started an application +9% vs prior period Reached contact details +34% vs prior period Completed an application +46% vs prior period Qualified for a call +58% vs prior period 998 150 94 82 30

Band width is the true share of traffic — nothing is scaled up to look better. The one stage that softened is the first click into the application (15.0%, down 5.9pt), which is what usually happens when traffic grows this fast; it is stated plainly rather than buried, and it is the stage we are working on.

What I would change on each of the three, given an external reader.
Option A — The Leak Report: retire it externally. A panel headed “where it is leaking” with red minus-signs and “$8,562 of spend attributed” reads to a client as either we are wasting your money or your offer is broken. It is the right page for you and the wrong page for them — see the split below.
Option B — True Funnel: promote it, with three changes, which is what the recommended design above is. Red → neutral, because expected drop-off is not a failure. Add the prior-period delta to every stage. Rename the steps into their language (“contact step” → “reached contact details”).
Option C — Unit Economics: keep it, but this is your call, not a design question. Showing a client $336 per qualified application is either your strongest trust move or your weakest moment, depending entirely on what a qualified application is worth to NetRevenue. If it is worth thousands, this table sells the account by itself. If the maths is tight, it is ammunition. I would not put it in front of them without you deciding that.
The page can already tell who is reading it — so it should show them different things.
The dashboard sets a different cookie for you (wf_gate, the operator master) than for NetRevenue (wf_c_nr, their own link password), and app/[client]/layout.tsx already reads both to authorise the page. So the audience is known server-side today, with no new plumbing: render the performance funnel for everyone, and append the leak ranking and the cost-per-step table only when the operator cookie is present. One page, one URL, two readings — and no risk of a diagnostic panel reaching a client because you sent the wrong link.

Still outstanding either way: the page is titled “From view to booked call” and booked is NULL on every NR row. Externally that is worse than internally — the client counts calls, so a funnel that stops before the call is the step they most want to see missing. Wire it from the call log, or retitle the page.
Option A Fits in ~440px — no scroll

The Leak Report

Diagnosis first. The funnel compresses to five thin rows on the left — enough to see the shape — and the right half ranks where you are losing people and money, worst first. You read the answer before you read the data. Best if this page's job is to tell you what to go fix on Monday.

Funnel steps · Aug 14 – Aug 24
Landing page views
998100%
Application starts
15015.0%
Contact step
949.4%
Applications
828.2%
Qualified applications
303.0%
—not wired

Bars are share of landing page views, so every row is comparable to the top.

Where it is leaking
Views → Application starts −848
85% lost · ≈$8,562 of spend attributed
Applications → Qualified −52
63% lost · a quality problem, not a volume one
Starts → Contact step −56
37% lost · mid-form drop
Contact → Applications −12
13% lost · healthy

Ranked by rate, not headcount — otherwise every small step looks fine next to the top of the funnel. Spend is attributed pro-rata to the traffic lost, so treat it as an order of magnitude, not an invoice.

Option B Fits in ~480px — no scroll

True Funnel

An actual funnel. Each band's width is its real share of traffic and the taper between two bands is the loss, so the cliff between view and application start is physically visible rather than stated. It is brutal on purpose: that is what an 85% first-step loss genuinely looks like. Best if this page is ever shown to NetRevenue.

From view to booked call · Aug 14 – Aug 24
Landing page views 100% · $10 per view Application starts 15.0% of views · $67 each Contact step 9.4% of views · $107 each Applications 8.2% of views · $123 each Qualified applications 3.0% of views · $336 each 998 150 94 82 30 −848 lost (85%) ≈$8,562 attributed −56 lost (37%) −12 lost (13%) −52 lost (63%) lead quality Booked calls — not wired —

Band width is the true share of traffic, which is why the qualified band is a sliver — 30 people out of 998. Nothing is scaled up to look better.

Option C Fits in ~400px — no scroll

Unit Economics Ladder

The same funnel priced. One dense table, one row per step, and the column that matters is the last one: what each step costs you. $10 a view becomes $336 a qualified application, and the jump from $10 to $67 is the whole story in a single number. Best if this page's job is to feed budget and CAC decisions.

Cost to reach each step · Aug 14 – Aug 24 · $10,076 spend
StepCountOf viewsOf priorLostCost each
Landing page views
998100%— —$10
Application starts
15015.0%15.0% −848 $67
Contact step
949.4%62.7% −56 $107
Applications
828.2%87.2% −12 $123
Qualified applications
303.0%36.6% −52 $336
Booked calls

“Of views” is the absolute survival rate; “of prior” is the step-to-step rate the current page shows. Both matter, and only showing the second is what makes 87.2% look like good news when it is 8% of the people who arrived.

Two things worth deciding alongside the layout.
1. Booked calls is not wired. The page is titled “From view to booked call” but booked is NULL on every NR row, so the funnel stops at qualified. Either wire it from the call log or retitle the page — right now it promises a step it cannot show.
2. Ranking by rate vs by headcount tells different stories. By headcount the second worst leak is Starts → Contact (−56). By rate it is Applications → Qualified (63%) — a lead-quality problem that headcount hides. Option A ranks by rate. Say the word if you would rather it ranked by people or by dollars.