Cohort study · 588 new users · Mar 1 — Apr 18 2026

RC Local is bleeding
at the front door.

A SaaS conversion review of every user that signed up for Rating Captain Local in March–April 2026, stitched together from production database, Pipedrive, GA4 (RATING LOCAL SEO), Sentry (rc-local), and Microsoft Clarity. Signup volume is healthy — but only 28% engage in-app, only 15% return the next day, and 98% of trials never become customers.

Cohort: 588 new users (335 Mar / 253 Apr) — incl. 24 coworkers, 1 soft-deleted Period: 2026-03-01 → 2026-04-18 Sources: google_profiles.users, user_usages, locations, keywords, subscriptions / Pipedrive RC Local + FB / GA4 396020608 / Sentry rc-local / Clarity
Signed up
588
335 Mar · 253 Apr
Finished onboarding
283 48.1%
▼ 305 dropped
Connected GBP account
297 50.5%
▼ 291 never connected
Reached "aha moment"
244 41.5%
tracking ≥1 keyword
Returned after day 0
88 15.0%
85% never log in again
Finished guided tour
2 0.3%
essentially zero
Trial → Paid
12 2.0%
target ≥ 5% — 2.5× gap
Active Stripe subs
9 1.5%
9 active · 4 churned/expired

01The conversion funnel

Each row is a step from the user's perspective. The bar shows what fraction of signups got there. The drop between consecutive bars is where the user gave up or got blocked.

1. Visit /register page (GA4: 1,127 unique users)
1,127
192%
2. Account created (DB row)
588
100%
3. Verified email (GA4: /verify-email · 115 users)
~330
56%
4. Answered "owner / agency" Q1
254
43.2%
5. Onboarding marked finished
283
48.1%
6. Connected Google account
297
50.5%
7. Pulled in a location (GBP profile loaded)
328
55.8%
8. Tracking a keyword (the "aha moment" — auto-seeded for many; incl. coworker access)
244
41.5%
9. Did anything in-app at all (reply / post / scan / refresh)
167
28.4%
10. Came back any later day
88
15.0%
11. Came back D2–D7 (week-1 retention)
45
7.7%
12. Finished guided tour
2
0.3%
13. Ever started a Stripe subscription (active or churned)
12
2.0%
14. Currently paying (active Stripe sub)
9
1.5%

02Where they fall off — and what was happening on the screen

Step transitionPass-throughLost
Register page → Account created52%−539
Account → Q1 answered (owner/agency)43%−334
Onboarding finished → Google connected105%*+gain
Location pulled → Tracking a keyword74%−84
Tracking keyword → Did any in-app action68%−77
Did action → Returned after D053%−79
Returned → Started Stripe sub14%−76
Started sub → Still paying today75%−3

*Some users connect Google but don't tick the final onboarding box; the funnel is non-monotonic, indicating broken state tracking.

Two kill-zones

Kill-zone 1 Q1 → 57% of signups never even answer the first onboarding question ("owner or agency?"). 334 of 588 users have account_type = NULL. They open the app, see the first card, and leave.

Kill-zone 2 Tracking a keyword → Did anything → Came back collapses from 244 → 167 → 88. Even users that get auto-seeded with keywords don't engage; only 36% of "activated" users ever return.

Kill-zone 3 88 returned users yielded only 12 paid — a 14% return-to-paid rate. The product is failing to monetize the people who actually do come back, which is far more diagnostic than the top-of-funnel leak.

Locale gap Polish users finish onboarding at 35.1% (80/228) vs English 56.0% (188/336) — a 21-pt gap that should not exist on the home market.

03Drop-off vs. signups, by half-month

Signed up Finished onboarding Did any in-app action Returned after day 0

04What the cohort actually does in the app

From user_usages — the only reliable in-product activity log — across all 588 cohort users, ever:

In-app actionUsers (of 588)ShareRead
Ran a Quick Scan / competition map7312.4%"Spy on competitors" pulls people in.
Replied to a review6911.7%The single most-used feature for new users.
Created post content (AI Posts)447.5%The flagship "magic" feature is barely used.
Refreshed keyword data406.8%Only 40 users actually engage with keyword tracking.
Reached the "aha moment" (tracking a keyword)24441.5%Includes 2 coworkers with access via parent working group. Keywords are auto-seeded on Google connect — most users never come back to use them.

Of 2,160 keywords ever created by this cohort, 51% (1,101) are already disabled. Either users abandon their tracking before it matures, or trials end and silently disable everything — both stories are bad.

05Friction map — what's actually breaking

Sentry · last 48h on rc-local

IssueUsersWhere
Page not found: ./Pages/undefined.vue25Vue route resolution returns undefined → blank page.
TypeError: …reading 'scrollToItem'18SelectLocation.vue — the "pick your GBP" dropdown.
TypeError: …reading '0'9App bundle, generic.
TypeError: nodeType, k is null7App bundle.
Attempt to read property "id" on null/onboarding/callback — the Google OAuth return.
count() error · null array/api/guided-tour/status — guided tour state endpoint.
QueryException: actionable_insights.location_id missing/mcp/local — DB schema drift.

Sentry retention here is short — these are last 48h only and already touch 60+ unique users.

Clarity · Mar 20 → Apr 18

SignalCount
JS error: Cannot read properties of undefined (reading '0')69
Cloudflare Turnstile error 300030 (captcha fail)32
can't access property 0, u[h] is undefined24
Cannot read properties of null (reading '$el')5

Dead clicks (clicks that did nothing)

PageDead clicksRage clicks
/dashboard/keywords4,414153
/dashboard/reviews1,39612
/dashboard/keywords/quick-scan1,27417
/settings89543

The most-rage-clicked screen is the same screen most users exit on (6,433 sessions). Users get stuck on the keyword dashboard and start hammering things that don't respond.

"The app's only meaningful conversion event — adding a keyword — happens behind a Vue page that throws null-pointer errors and a UI surface where users rage-click 153 times in a month."

06The sales side — Pipedrive (RC Local + FB pipeline)

Stage-to-stage conversion

Stage→ next
1 · Rejestracja RC Local → 2 · WENET71.1%
2 · WENET → 3 · Leady Looker71.3%
3 · Leady Looker → 4 · Import FB74.3%
4 · Import FB → 5 · Contact72.3%
5 · Contact → 6 · SQL89.7%
6 · SQL → 7 · Ostatnie formalności93.6%
7 · Ostatnie formalności → 8 · Umowa92.4%
8 · Umowa → 9 · Klient93.9%
Pipeline win rate (deals that enter)21.3%
Pipeline lost rate78.7%

Once a human gets a deal past stage 5 (Contact → SQL), conversion is excellent — every subsequent stage clears 89%+. The leak is entirely top-of-funnel and at the human handoff.

What's actually happening with the deals

  • Every new RC Local signup auto-creates a deal in Pipedrive (origin: API) titled "Szansa sprzedaży {email}", value 0 PLN.
  • Sample deals from this cohort: 0 activities, 0 emails, 0 notes, 0 followers (besides the API user). They are sitting untouched in stage 239 (Rejestracja).
  • 36% of signups (211 / 588) don't even have a pipedrive_id stored back on the user — a sync gap.
  • Implication: the 78.7% "lost" rate is not lost deals — they're untouched deals. Sales has no qualification signal to know which of yesterday's 30 trials is worth a call.

07SaaS conversion expert read

Industry benchmarks for a freemium / free-trial PLG SaaS in this space (local SEO, GBP tooling, ~Birdeye / GMB Crush adjacent):

MetricRC Local Mar–AprSaaS benchmarkVerdict
Visitor → Signup (registration page)52%35–55%OK — top of funnel works
Signup → Real activation (any in-app action)28.4%40–55%Below benchmark
Day-1 return rate15.0%35–45%3× below benchmark
Week-1 retention (D2–D7)7.7%25–35%Catastrophic
Trial → Paid (ever)2.0%5–10% (PLG) · 15–25% (sales-led)2.5–5× below
Trial → Currently paying1.5%4–8%3–5× below
Guided tour completion0.3%40–60%Tour is broken or invisible

The product has a classic "leaky funnel + dead activation" shape: marketing brings traffic → signup converts decently → product fails to deliver any value before the user leaves. That's not a pricing problem or a sales problem. It's an onboarding + activation problem, made measurably worse by JS errors on the exact pages the new users land on.

08What to fix — prioritized

P1 · Week 1 · biggest single lever

Fix the engagement cliff: get users to a value moment in their first session

244 users have a tracked keyword but only 167 ever did anything in-app and only 88 came back. Keywords are auto-seeded on Google connect — that's bait, not value. Replace the static keyword list with a 60-second guided "see your first ranking" path: pre-fill 3 keywords from GBP category + city, scan area 1×1km, language auto-detected, one "Start tracking" button, and render a position map immediately.

Expected lift: real activation 28% → 45%+, D1 return 15% → 25%+
P1 · This week · cheap and immediate

Stop the registration leaks: Turnstile + /onboarding/callback

Clarity recorded 32 Cloudflare Turnstile 300030 errors on the registration screen and Sentry shows "Attempt to read property 'id' on null" at /onboarding/callback — the Google OAuth return. Both silently kill new users.

Expected lift: +5–8% finished-onboarding
P1 · 2 weeks

Make the guided tour actually fire

2 of 588 users finished it (0.3%). The plan's spotlight overlay + sidebar panel exist on paper — verify /api/guided-tour/status isn't returning 500s (Sentry RC-LOCAL-18A confirms it is), then make the tour start automatically on first dashboard load instead of waiting for ?guided_tour=true in the URL.

Expected lift: tour completion 0.4% → 35–50%
P2 · 2 weeks

Fix the Polish funnel

PL: 35.1% finish onboarding (80/228) · EN: 56.0% (188/336). Same product, 21-point gap on your largest single language. Likely culprits: translation gaps in the goals step, copy that doesn't match the audience, or a payment / Turnstile issue specific to PL traffic. Run a 2-day session-recording review (Clarity, filter lang=pl) and a translation QA on the entire onboarding flow including error states.

Expected lift: +6–8% overall onboarding
P2 · 2 weeks

Wire Pipedrive into a real PQL signal

Today every signup creates an identical 0-PLN deal that nobody touches. Send Pipedrive a signal field per deal: did the user activate? how many keywords? trial day? — so SDRs can sort by "highest-intent unqualified" instead of by date. The 89.7% Contact→SQL rate proves: when sales actually contacts an activated user, the deal moves.

Expected lift: trial→paid 2.0% → 5–7% from sales-assist alone
P2 · sprint

Kill dead clicks on /dashboard/keywords

4,414 dead clicks + 153 rage clicks on the single most important screen. This is not a styling issue — users are clicking things that look interactive but aren't. Run a Clarity recording session filter (visitedUrls contains "/dashboard/keywords", deadClickPresent=true, userType=NewUser) and ship a fix sprint covering: tooltips that look like buttons, disabled CTAs that don't say why they're disabled, and the keyword row's expand affordance.

Expected lift: D1 return 15% → 22–25%
P3 · 4 weeks

Trial-summary screen → growth surface

Only ~70 users (12%) ever saw /dashboard/trial-summary — and the people who do see it are on the wrong side of the value gap. Move the summary into the app on day 3 as a "you're halfway through your trial" interstitial showing tracked keywords, posts, and what they'll lose. Add the "Get 7 more days" CTA from the existing Stage 4 plan.

Expected lift: trial→paid +1.5–3pp
P3 · 4 weeks

Lifecycle email tied to activation events, not days

MailerLite groups today are TRIAL_PL / TRIAL_EN + day-based. Switch to event triggers: "signed up but didn't connect Google in 24h", "connected Google but didn't add a keyword in 48h", "added keyword but didn't return in 72h". Each gets a 1-step CTA email with a magic-link straight back to the next required action.

Expected lift: D2–D7 return 7.7% → 18–22%

09If you only do three things

  1. Skip the maze. First-time users see one screen: connected GBP + 3 pre-suggested keywords + one "Start tracking" button. Real activation (any in-app action) goes from 28% → 45%+.
  2. Stop the silent failures. Fix Turnstile error 300030, fix /onboarding/callback, fix /api/guided-tour/status. These three errors are losing more users than any product decision.
  3. Sell to activated users, not to all signups. Wire activation status to Pipedrive. The pipeline math (89.7% Contact→SQL) shows the sales team is good — they're just calling the wrong people, or nobody at all.

Data sources used in this report:
· production Aurora MySQL — google_profiles.users, onboarding_accounts, locations, keywords, health_checks, planned_posts, user_usages, subscriptions
· GA4 property 396020608 "RATING LOCAL SEO" — page paths, events, host filter local.ratingcaptain.com for in-app traffic only
· Sentry org ratingcaptain project rc-local — last 48h issue list (longer retention not configured)
· Microsoft Clarity (RC project) — JS errors, dead/rage clicks, smart events, exit pages, 2026-03-20 → 2026-04-18
· Pipedrive — pipeline 21 (RC Local + FB), stage conversion stats and stage-239 deal sample, 2026-03-01 → 2026-04-18