Generated 2026-06-04 UTC · Read-only aggregate evidence · Secrets redacted

Runbear Signup Funnel & Landing Conversion Analysis — 2026-06-04 재검증

Executive summary

CVR caveat: production landing traffic is measurable, but final landing→signup CVR is not yet trustworthy until anonymous landing sessions are joined to DB users. Treat same-distinct_id overlap as a diagnostic proxy only.

Evidence source status (public-safe)

SourceStatus in this reportPublic-safe evidence summary
Signup database (PostgreSQL)UsedRead-only aggregate signup counts and monthly trends were queried; connection details omitted
Product analytics (PostHog)UsedRead-only landing, pageview, journey, event, and traffic-quality aggregates were queried; project/account identifiers omitted
Landing code history (git)UsedLanding-related commits and file-level stats were inspected for timeline evidence
Issue tracker / LinearNot usedNot needed for DB + analytics + git-first funnel analysis
LLM observability / LangfuseNot usedNot needed for signup/landing funnel question

Signup truth from PostgreSQL

Source: public."User", signup completion truth = "createdAt". Default external filter: (email NOT ILIKE '%runbear%' OR email IS NULL).

MetricValue
Total users9,483
Internal/runbear-like emails188
External/non-runbear users9,295
First user createdAt2023-11-14 14:47:54+00
Latest user createdAt2026-06-03 05:02:29.031+00
Total signups last 365d3,498
Internal/runbear-like signups last 365d91
External signups last 365d3,407
External signups 2026 YTD933

Monthly signup trend — recent external signups:

MonthExternalInternalTotal
2025-065619570
2025-074014405
2025-0836211373
2025-093352337
2025-103126318
2025-112813284
2025-122672269
2026-0125720277
2026-0221911230
2026-031807187
2026-041204124
2026-0513110141
2026-06 partial26228

Interpretation: signup velocity declined through 2025 H2 → 2026 Apr and recovered slightly in May/early June, but traffic/channel denominator and identity join are required before attributing movement to landing changes.

PostHog production landing coverage

Production host coverage exists and is large. A fixed 365-day snapshot (2025-06-04 01:30:002026-06-04 01:30:00 UTC) returned 729,230 pageviews / 333,619 visitors across runbear.io and www.runbear.io. Both hosts are present; www.runbear.io is tiny at 9 pageviews, so production traffic is effectively runbear.io.

Top hosts over last 365d:

HostPageviewsVisitors
runbear.io729,221333,602
app.runbear.io537,9746,480
docs.runbear.io112,17935,465
auth.runbear.io88,78339,973
cal.com545463

Recent production landing volume:

WindowPageviewsVisitors
last 30d123,79937,514
last 90d excluding last 30d137,59975,309
last 365d excluding last 90d467,832221,386

Top production landing paths:

PathPageviewsVisitors
/84,14848,874
/pricing20,37212,184
/use-cases15,8719,105
/posts/4,9524,360
/solutions/integrations/slack/mcp/servers7,1053,927
/changelog/4,8703,919
/integrations3,7163,139
/ai-agent-for-account-managers3,5502,889
/demo/2,8692,583

Top referrers:

Referrer domainPageviewsVisitors
$direct610,574277,559
www.google.com70,84536,729
syndicatedsearch.goog4,2533,496
www.reddit.com4,5722,952
www.bing.com2,6951,666
www.youtube.com3,3821,447
www.producthunt.com1,538838
chatgpt.com1,316584
www.perplexity.ai703323

Signup event reconciliation

Candidate signup-like events over last 365d:

EventEventsActorsReconciliation vs DB
create_user4,5154,177Over DB total signups 3,498 by ~19% actors / ~29% events; not exact truth
user_signed_up571571Under DB external signups by ~83%
user_signup286286Under DB external signups by ~92%
build_agent_signup_button_clicked2724CTA click only, not signup completion

Conclusion: DB User.createdAt remains signup truth. PostHog signup-like events are useful as behavior proxies, but not final signup truth until a canonical signup-completed event reconciles to DB within an agreed tolerance.

Landing-to-signup conversion analysis

Production landing denominator is available, but final landing→signup CVR is blocked by identity/order mismatch.

MetricValueInterpretation
Production landing visitors last365333,619Good denominator exists
Same-distinct_id visitors with signup-like event342Proxy overlap only, not true conversion
Proxy overlap rate~0.103%Lower bound / diagnostic signal, not final CVR
Visitors where first_signup >= first_landing0Strong evidence that anonymous→identified stitching or event ordering is broken
DB external signups last3653,407Truth source; much higher than PostHog landing-overlap proxy

Do not present 0.103% as the business conversion rate. It is the measurable same-id overlap under current instrumentation. The actual production landing conversion rate requires joining anonymous landing sessions to DB users after auth.

Converted vs non-converted journey patterns

Because true landing→signup identity join is weak, “converted” below means same distinct_id has one of create_user, user_signed_up, user_signup in the last 365 days. It is a behavior proxy, not final attribution.

Top app/auth paths among signup-like actors:

HostPathPageviewsVisitors
app.runbear.io/overview24,8282,932
auth.runbear.io/en/post_login11,5752,720
app.runbear.io/assistants42,5912,177
app.runbear.io/integrations9,6281,605
app.runbear.io/assistants/new4,2181,297
app.runbear.io/billing8,5591,281
auth.runbear.io/en/login/confirm_email1,297991
auth.runbear.io/en/login4,440954
auth.runbear.io/en/login/create_org1,297755
auth.runbear.io/en/signup778418

Production landing entry paths among signup-like actors:

Entry pathSignup-like visitors
/166
/use-cases74
/use-cases/How-to-Build-an-AI-Chatbot-for-Member-Onboarding20
/use-cases/Boosting-Customer-Service-with-AI-Streamlining-Support-Operations16
/pricing11
/posts/how-ai-assistants-work9

Top non-converted production entry paths:

Entry pathVisitors
/45,332
/use-cases4,068
/ai-agent-for-account-managers2,840
/posts/How-to-Integrate-Chat-GPT-into-Teams-in-10-Minutes--No-Coding-Required2,159
/posts/gpt-5-explained2,145
/solutions/integrations/slack/mcp/servers2,007
/pricing1,937
/use-cases/Building-AI-Teammates-That-Actively-Join-Conversations1,859
/integrations1,488

Path-level same-id signup overlap:

PathVisitorsSignup-overlap visitorsOverlap rate
/48,8742220.454%
/pricing12,184610.501%
/use-cases9,1051291.417%
/solutions/integrations/slack/mcp/servers3,927180.458%
/integrations3,13930.096%
/ai-agent-for-account-managers2,88930.104%
/use-cases/How-to-Build-a-Slack-Daily-Digest-using-Gen-AI-Without-Coding1,680140.833%
/use-cases/Boosting-Customer-Service-with-AI-Streamlining-Support-Operations1,591251.571%

Interpretation:

1. /use-cases and some concrete use-case pages have stronger signup-overlap rates than homepage/pricing. This suggests problem-specific landing journeys may be more qualified.

2. App/auth paths are well-instrumented after signup/login, but pre-auth landing identity is not joined reliably.

3. Blog/integration pages bring volume, but their observed signup overlap is weak unless they bridge users into auth/app flows.

Bot / noise / low-intent estimate

Production host visitor diagnostics over last 365d:

SignalVisitorsShare
Production-host visitors in event diagnostic query330,464100%
Pageview-only once190,90757.8%
Low-event visitors (events <= 2)244,80074.1%
High-pageview visitors (pageviews >= 10)12,3363.7%
Zero-span visitors207,30362.7%
Single-path visitors245,24474.2%

Estimated non-human / low-intent reporting ranges:

ScenarioEstimated shareRationale
Conservative35–45%Only obvious one-off / zero-engagement traffic treated as noise
Moderate55–65%Pageview-only once and zero-span visitors dominate
Aggressive70–75%Low-event and single-path visitors treated as low-intent/noise

This is not a pure bot classifier. It is a reporting filter recommendation: dashboards should show raw, engaged, and qualified denominators side-by-side.

Landing-change timeline and correlation

Verified git commits:

DateCommitChangeGit evidence
2025-12-19ad88d2690Meta-ad landing page publish; homepage touchedpage.tsx: 51 insertions
2026-02-12f338523e3New landing page releasepage.tsx: +7/-7
2026-03-13c44a1f8fdHomepage A/B testinglanding-ab-switch, landing-v1, landing-v2: +613/-51
2026-03-167f4932961Website reorg / V2 reductionlanding-v2.tsx: +3/-313
2026-05-1254942151eV3 main landing redesign/defaultlanding-v3/*: +4,150/-3

Pre/post correlation windows. DB external signup/day is truth; PostHog signup overlap is diagnostic only.

ChangeWindowPeriodDaysDB external/dayPH landing visitors/dayPH same-id overlap rate
Meta-ad landing 2025-12-1914dpre1410.86264.90.378%
Meta-ad landing 2025-12-1914dpost145.29269.50.053%
Meta-ad landing 2025-12-1930dpre3010.13299.60.234%
Meta-ad landing 2025-12-1930dpost307.27334.50.130%
New landing 2026-02-1214dpre1410.36548.60.039%
New landing 2026-02-1214dpost145.86245.20.291%
New landing 2026-02-1230dpre309.40746.30.063%
New landing 2026-02-1230dpost306.07272.30.245%
A/B testing 2026-03-1314dpre146.57310.50.184%
A/B testing 2026-03-1314dpost145.43653.30.055%
A/B testing 2026-03-1330dpre306.10284.90.234%
A/B testing 2026-03-1330dpost305.37859.70.047%
V2 reduction 2026-03-1614dpre146.43334.90.149%
V2 reduction 2026-03-1614dpost145.50629.10.068%
V2 reduction 2026-03-1630dpre305.70273.80.207%
V2 reduction 2026-03-1630dpost305.401,072.00.047%
V3 redesign 2026-05-1214dpre144.361,550.90.023%
V3 redesign 2026-05-1214dpost144.571,397.60.015%
V3 redesign 2026-05-1230dpre303.701,818.90.020%
V3 redesign 2026-05-12observed 23d postpost234.481,304.10.020%

Interpretation:

Prioritized signup-rate experiments

ICE score = Impact × Confidence × Ease / 10, directional. Priority is strategic/manual: attribution repair stays #1 because it unlocks trustworthy measurement even though its rounded ICE is slightly below the dashboard cleanup item.

PriorityExperimentEvidence tieImpactConfidenceEaseICEVerification metric
1Fix canonical signup attribution: emit one signup-completed event with DB User.id, email hash, anonymous/session id, and first landing/session metadatafirst_signup >= first_landing = 0; DB 3,407 external vs PH overlap 3421010550PH canonical signup count within ±5–10% of DB, first landing path coverage >80%
2Build raw/engaged/qualified funnel dashboard rather than one raw CVR57.8% pageview-only once; 74.1% low-event visitors89750.4daily dashboard with raw, engaged, qualified visitors and signup joins
3Strengthen use-case path as homepage CTA/segmentation/use-cases overlap 1.417% vs / 0.454%; concrete use-case pages up to 1.571%87739.2homepage → use-case click rate, use-case → auth-start, joined signup rate
4Pricing-page intent bridge: clearer “start in Slack” / “book demo” bifurcation/pricing has 12,184 visitors and 0.501% overlap; pricing no-auth path is likely high-intent leakage76729.4pricing CTA CTR, auth-start, demo-booked, joined signup rate
5Blog/integration CTA redesign by intentBlog/integration traffic is large but signup overlap weak66621.6content → auth/app transition, assisted signup rate
6Experiment governance: minimum qualified sample and fixed measurement window before hero narrative changesFrequent landing narrative changes make learning hard; March traffic rose without proportional DB signup movement77524.5variant-level qualified sample, CI, decision log

Blockers / next data needed

1. Canonical identity join: Need a DB-reconciled signup-completed event and anonymous→identified stitching. Without this, true landing CVR remains blocked.

2. Attribution metadata: Store first landing host/path/referrer/UTM/session id on signup or user profile analytics payload.

3. Bot/quality labeling: Add dashboard filters for raw vs engaged vs qualified traffic. Current low-event share is too high for a single raw denominator.

4. Experiment metadata: Keep variant assignment, start/end, hero copy, and sample sizes queryable so landing changes can be evaluated before the next redesign.

Evidence query snippets

-- DB signup truth
SELECT count(*) AS total,
       count(*) FILTER (WHERE email ILIKE '%runbear%') AS internal_like_runbear,
       count(*) FILTER (WHERE email NOT ILIKE '%runbear%' OR email IS NULL) AS external,
       min("createdAt") AS first_created_at,
       max("createdAt") AS latest_created_at
FROM public."User";
-- Production landing coverage
SELECT properties.$host AS host, count() AS pageviews, uniq(distinct_id) AS visitors
FROM events
WHERE timestamp >= toDateTime('2025-06-04 01:30:00')
  AND timestamp < toDateTime('2026-06-04 01:30:00')
  AND event = '$pageview'
  AND properties.$host IN ('runbear.io','www.runbear.io')
GROUP BY host;
-- Candidate signup events
SELECT event, count() AS events, uniq(distinct_id) AS actors
FROM events
WHERE timestamp >= toDateTime('2025-06-04 01:30:00')
  AND timestamp < toDateTime('2026-06-04 01:30:00')
  AND event IN ('create_user','user_signed_up','user_signup')
GROUP BY event;
-- Production landing visitors with signup-like event on the same distinct_id
SELECT uniq(l.distinct_id) AS landing_visitors_with_signup_same_id
FROM (
  SELECT distinct_id
  FROM events
  WHERE timestamp >= toDateTime('2025-06-04 01:30:00')
    AND timestamp < toDateTime('2026-06-04 01:30:00')
    AND event = '$pageview'
    AND properties.$host IN ('runbear.io','www.runbear.io')
  GROUP BY distinct_id
) AS l
INNER JOIN (
  SELECT distinct_id
  FROM events
  WHERE timestamp >= toDateTime('2025-06-04 01:30:00')
    AND timestamp < toDateTime('2026-06-04 01:30:00')
    AND event IN ('create_user','user_signed_up','user_signup')
  GROUP BY distinct_id
) AS s ON l.distinct_id = s.distinct_id;
# Landing commit verification examples
git show --stat --oneline --date=short ad88d2690 -- apps/landing/app/'(site)'
git show --stat --oneline --date=short 54942151e -- apps/landing/app/'(site)'