Skip to main content

How does value flow — and where does time die?

VALUE STREAM MAP: IDENTITY & ACCESS — USER ONBOARDING
════════════════════════════════════════════════════════════

[TRIGGER: New user needs access to the platform]


┌──────────────────┐
│ 1. SIGN UP │ C/T: 2min Wait: 0 %C&A: 95%
│ Clerk handles │
│ OAuth/email flow │
└────────┬──────────┘


┌──────────────────┐
│ 2. AUTO-PROVISION│ C/T: 2sec Wait: 0 %C&A: 60%
│ Create user + │ (No Admin role assigned.
│ "Personal Org" │ No role seeded. 60% because
└────────┬──────────┘ identity resolves but
│ authz data missing.)
│ ░░░░░░░ (instant — but silent failure)

┌──────────────────┐
│ 3. ACCESS PAGE │ C/T: 0 Wait: 0 %C&A: 0%
│ Dashboard or │ (22P02: query passes Clerk
│ Admin route │ userId where UUID expected.
└────────┬──────────┘ Redirect loop: 789 errors/30min)
│ ░░░░░░░░░░░░░░░░░░░░░░░░ (1-24h: waiting for developer)

┌──────────────────┐
│ 4. MANUAL FIX │ C/T: 30min Wait: 1-24h %C&A: 50%
│ Developer inserts│ (DB insert or Clerk dashboard.
│ role in database │ Error-prone. Not repeatable.)
└────────┬──────────┘


┌──────────────────┐
│ 5. VERIFY ACCESS │ C/T: 5min Wait: 0 %C&A: 80%
│ Owner retries │ (May need cache clear.
│ login │ 80% because intermittent.)
└────────┬──────────┘


[OUTPUT: User has access — but only because a developer intervened]

Cycle Time: ~37 min (of actual human work)
Wait Time: 1-24 hours (waiting for developer availability)
Lead Time: 1-25 hours
Flow Efficiency: 37min / ~6h average ≈ 10%

World-class: >40% Good: 20-40% Typical: 5-15% CURRENT: ~10%

════════════════════════════════════════════════════════════

Second User Flow

Inviting a second person is worse:

  [TRIGGER: Admin wants to add a team member]


┌──────────────────┐
│ 1. DECIDE │ C/T: 1min Wait: 0 %C&A: 100%
│ Admin identifies │
│ who to add │
└────────┬──────────┘
│ ░░░░░░░░░░░░░░░░░░ (1-24h: no self-serve invite)

┌──────────────────┐
│ 2. MANUAL INSERT │ C/T: 15min Wait: 1-24h %C&A: 40%
│ Developer does │ (Wrong org? Wrong role?
│ DB insert or │ No invite flow exists.)
│ Clerk dashboard │
└────────┬──────────┘


┌──────────────────┐
│ 3. USER SIGNS UP │ C/T: 2min Wait: varies %C&A: 30%
│ But lands in │ (Auto-provisions into
│ "Personal Org" │ Personal Workspace, NOT
└────────┬──────────┘ the org they were invited to)


[OUTPUT: DEAD END — no way to join existing org]

Flow Efficiency: N/A — the flow doesn't complete

Bottlenecks

RankStepWaitRoot CauseFix
1Access page0 (instant crash)22P02 query + redirect loopTier 0: fix query, show error page
2Manual fix1-24hDeveloper intervention requiredTier 1: auto-bootstrap Admin on first login
3Second user inviteDead endNo invite flow, no org joiningTier 3: invite-by-email + org membership
4Auto-provisionSilent failCreates user but no roleTier 1: assign Admin role during provision
5Access verificationIntermittentCache, session stateTier 0: clear error messaging

Seven Wastes

WasteCurrent StateAfter Fix
Waiting1-24h for developer to fix accessAuto-bootstrap: zero developer intervention
ReworkMultiple attempts to get access workingOne sign-up = one working session
MotionSwitch between Vercel logs, DB console, Clerk dashboardSingle onboarding flow handles everything
Over-processingDeveloper manually inserts what should be automaticProvisioning service handles atomically
Defects22P02 crash on every role checkCorrect query uses correct ID type

Target State

  After Tier 1:
Cycle Time: ~2 min (sign up + auto-provision + access)
Wait Time: 0 (no developer intervention)
Lead Time: ~2 min
Flow Efficiency: 2min / 2min = 100%

After Tier 3 (invite flow):
Second user: Admin sends email → user clicks → signs up → lands in right org
Lead Time: minutes, not hours

Gate

Before moving to Dependency Map:

  • All steps documented with cycle time — YES (5 steps for owner, 3 for second user)
  • Wait time measured between each step — YES (0 to 24h)
  • Flow efficiency calculated — YES (~10% current, 100% target)
  • Bottlenecks identified and ranked — YES (5 ranked)
  • Waste types categorized — YES (5 of 7 present)
  • Improvement opportunities prioritized — YES (mapped to tiers)

Context