Runbear Signup Funnel & Landing Conversion Analysis — 2026-06-03
Executive summary
- PostgreSQL and PostHog query access are working. GitHub CLI is authenticated and the plugbear repo is readable.
- DB
public."User"."createdAt"is usable as signup truth: 9,483 total users, 9,295 non-Runbear-email users, from 2023-11-14 to 2026-06-03. - PostHog project currently does not contain production
runbear.io/www.runbear.io$pageviewdata for the last 365 days. Production landing conversion rate is therefore blocked. - PostHog signup-like events are not reconciled with DB signups: last 365 days DB has 3,413 external signups, while PostHog has only 182
create_userevents and 42user_signupevents. - Landing-change correlation can only be done against DB signup counts, not true landing conversion. Signup velocity declined from late 2025 through Apr 2026 and modestly recovered after the May 12 V3 redesign, but causality is not provable without production landing denominator.
Access status
| Source | Status | Evidence |
|---|---|---|
| PostgreSQL | Accessible | SELECT current_database(), current_user; → postgres, analysis |
| PostHog CLI | Accessible | SELECT 1 AS ok → [1], project/environment 60607 |
| Git / plugbear | Accessible | repo root /home/djh10209/codes/plugbear; landing git log readable |
| GitHub CLI | Accessible | logged in as junhodo; scopes include repo/workflow/read:org/gist |
| Linear/OpenCode MCP | Configured, not used as evidence | OpenCode config has Linear remote MCP enabled; not needed for this funnel analysis |
Signup truth from DB
Source: public."User", columns include id, email, createdAt, updatedAt, profile fields. Default exclusion: email ILIKE '%runbear%'.
| Metric | Value |
|---|---|
| Total users | 9,483 |
| Internal/runbear-like emails | 188 |
| External/non-runbear users | 9,295 |
| First user createdAt | 2023-11-14 14:47:54+00 |
| Latest user createdAt | 2026-06-03 05:02:29.031+00 |
| External signups last 365d | 3,413 |
| External signups 2026 YTD | 933 |
Monthly external signups:
| Month | External | Internal | Total |
|---|---|---|---|
| 2025-06 | 561 | 9 | 570 |
| 2025-07 | 401 | 4 | 405 |
| 2025-08 | 362 | 11 | 373 |
| 2025-09 | 335 | 2 | 337 |
| 2025-10 | 312 | 6 | 318 |
| 2025-11 | 281 | 3 | 284 |
| 2025-12 | 267 | 2 | 269 |
| 2026-01 | 257 | 20 | 277 |
| 2026-02 | 219 | 11 | 230 |
| 2026-03 | 180 | 7 | 187 |
| 2026-04 | 120 | 4 | 124 |
| 2026-05 | 131 | 10 | 141 |
| 2026-06 partial | 26 | 2 | 28 |
PostHog landing coverage
Production landing coverage check:
SELECT properties.$host AS host, count() AS pageviews, uniq(distinct_id) AS visitors
FROM events
WHERE timestamp >= now() - INTERVAL 365 DAY
AND event = '$pageview'
AND properties.$host IN ('runbear.io','www.runbear.io')
GROUP BY host;
Result: no rows.
Host categories over last 365d $pageview events:
| Category | Pageviews | Visitors |
|---|---|---|
| plugbear_personal | 57,165 | 503 |
| staging | 10,157 | 368 |
| other | 3,655 | 310 |
| vercel_preview | 3,492 | 310 |
| localhost | 2,207 | 25 |
Implication: this PostHog project is dominated by personal/staging/preview/local traffic. It is not safe to compute production landing-to-signup conversion from this project.
Signup event reconciliation
Candidate signup-like events over last 365d:
| Event | Events | Actors |
|---|---|---|
$identify | 1,245 | 182 |
create_user | 182 | 171 |
user_signup | 42 | 35 |
build_agent_signup_button_clicked | 1 | 1 |
DB external signups over same period: 3,413. Therefore PostHog signup events undercount DB signups by an order of magnitude and should not be used as signup truth.
Observed journey patterns — limited to non-production analytics
Because production landing traffic is missing, these are only staging/preview/development observations.
Converted users, defined in PostHog as distinct_ids with create_user or user_signup, commonly show auth/app paths:
| Pattern | Evidence |
|---|---|
| Auth login/post-login dominates | 615384319.propelauthtest.com /en/post_login 115 visitors; /en/login 100 visitors |
| Create-org step appears in converted paths | /en/login/create_org 60 visitors |
| Post-auth app paths appear | staging.app.runbear.io /overview 50 visitors; /billing 38 visitors; /assistants 27 visitors |
| Personal dev hosts dominate app behavior | bale.plugbear.io and shuwn*.plugbear.io paths have very high repeat pageviews |
Non-converted users commonly show landing/pricing/auth entry but do not progress to signup-like events:
| Pattern | Evidence |
|---|---|
| Staging landing homepage | staging.runbear.io / 67 visitors |
| Pricing interest | staging.runbear.io /pricing 25 visitors |
| Vercel landing home | runbear-landing-* / 16–175 visitors depending preview host |
| Auth login without conversion | auth login paths remain common among non-converted users |
Bot/noise estimate
Only non-production landing-like hosts were measurable. Signals: pageview-only single-event visitors, low-event visitors, and high-pageview visitors.
| Segment | Visitors | PV-only once | Low-event visitors | High-PV visitors | Interpretation |
|---|---|---|---|---|---|
| staging_landing | 292 | 192 (65.8%) | 203 (69.5%) | 24 (8.2%) | high low-intent/noise share; mix of testing and bots |
| vercel_landing | 190 | 132 (69.5%) | 140 (73.7%) | 18 (9.5%) | previews are heavily one-off/test traffic |
Suggested ranges for this PostHog project's landing-like traffic, not production:
| Scenario | Estimated noise/non-human/low-intent share |
|---|---|
| Conservative | 45–55% |
| Moderate | 60–70% |
| Aggressive | 70–80% |
Do not apply these percentages directly to production until production analytics is fixed.
Landing change timeline and DB-signup correlation
Verified git commits:
| Date | Commit | Change | Git evidence |
|---|---|---|---|
| 2025-12-19 | ad88d2690 | Meta-ad landing page; homepage touched | page.tsx: +51 |
| 2026-02-12 | f338523e3 | New landing release | page.tsx: +7/-7 |
| 2026-03-13 | c44a1f8fd | Landing A/B testing | switch + V1/V2 components; +613/-51 |
| 2026-03-16 | 7f4932961 | Website reorg / V2 reduction | landing-v2.tsx: +3/-313 |
| 2026-05-12 | 54942151e | V3 main landing redesign | landing-v3/*: +4,150/-3 |
Pre/post DB external signup velocity:
| Change | 14d pre/day | 14d post/day | 30d pre/day | 30d post/day |
|---|---|---|---|---|
| Meta-ad landing, 2025-12-19 | 10.86 | 5.29 | 10.13 | 7.27 |
| New landing release, 2026-02-12 | 10.36 | 5.86 | 9.40 | 6.07 |
| A/B testing, 2026-03-13 | 6.57 | 5.43 | 6.10 | 5.37 |
| V2 reorg/reduction, 2026-03-16 | 6.43 | 5.50 | 5.70 | 5.40 |
| V3 redesign, 2026-05-12 | 4.36 | 4.57 | 3.70 | 4.51 observed through 2026-06-03 |
Interpretation:
- DB signup velocity was already declining before several changes; the post-change decreases around Dec/Feb/Mar should not be interpreted as caused by landing changes without traffic/channel denominator.
- V3 is the only checked change with a small positive 14d and observed post30 signup/day movement, but the evidence is still weak because production landing traffic is missing.
Prioritized experiments
ICE score = Impact × Confidence × Ease / 10, rough directional score.
| Priority | Experiment | Evidence tie | Impact | Confidence | Ease | ICE | Verification metric |
|---|---|---|---|---|---|---|---|
| 1 | Fix production landing analytics first: ensure runbear.io/www.runbear.io $pageview, CTA, auth redirect events flow into one PostHog project | Current project has 0 prod landing pageviews over 365d | 10 | 10 | 7 | 70 | prod landing visitors, CTA clicks, signup joins visible daily |
| 2 | Reconcile signup instrumentation: emit one canonical signup-completed event tied to DB User id and anonymous/session id | PostHog create_user 182 vs DB external 3,413 last365 | 9 | 9 | 6 | 48.6 | monthly event count within ±5–10% of DB User count |
| 3 | Add explicit landing CTA funnel events: hero CTA, pricing CTA, demo CTA, auth-start, auth-complete | Existing CTA events sparse/inconsistent; only one signup button click | 8 | 8 | 7 | 44.8 | CTA→auth-start→signup-complete funnel available |
| 4 | Preserve anonymous-to-user identity across auth redirect | Converted journey mostly starts at auth/app paths, not landing; likely identity join gap | 8 | 7 | 5 | 28 | share of signups with known first landing path/referrer |
| 5 | Pricing-page intent experiment: clearer pricing CTA + proof/FAQ on high-intent pages | Non-converted staging shows pricing visits; production unknown | 6 | 4 | 7 | 16.8 | pricing CTA CTR and signup completion rate |
| 6 | Bot/noise filtering dashboard for landing reporting | Preview/staging landing has 60–70% low-event visitors | 5 | 6 | 6 | 18 | dashboard with raw vs filtered visitors |
Blockers / next data needed
- Production landing analytics is missing from the accessible PostHog project. Need to confirm whether production uses another PostHog project, GA, Vercel Analytics, Segment, or missing instrumentation.
- Signup identity join is unresolved. Need canonical event or mapping from anonymous visitor/session to DB User id/email after auth.
- Current PostHog data is mostly internal/dev/staging, so journey and bot estimates are diagnostic only.
Queries used
Key query patterns:
-- 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
FROM public."User";
-- Production landing coverage
SELECT properties.$host AS host, count() AS pageviews, uniq(distinct_id) AS visitors
FROM events
WHERE timestamp >= now() - INTERVAL 365 DAY
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 >= now() - INTERVAL 365 DAY
AND (lower(event) LIKE '%sign%' OR lower(event) LIKE '%signup%'
OR lower(event) LIKE '%register%' OR lower(event) LIKE '%user%'
OR lower(event) LIKE '%account%' OR lower(event) LIKE '%auth%'
OR lower(event) LIKE '%login%' OR event = '$identify')
GROUP BY event ORDER BY events DESC;