Time to go live
Split by template order — these are fundamentally different journeys
First template (cold start)
7.4 wks
▲ 85% above 4-wk target
Subsequent templates (warm)
2.8 wks
✓ Within 4-wk target
Sandbox → UAT time
8.4 days
Baseline
Sandbox → UAT conversion
42%
Baseline
UAT → Prod conversion
64%
Target: 100%
UAT → Prod time
18.2 days
Baseline
% apps meeting SLA
72%
↓ −4pp vs last month
Click any step to expand sub-funnel
Columns:
Count
Avg time at step
Drop-off
Sandbox
Exploration → UAT activation · 148 accounts created
Exploration → UAT activation · 148 accounts created
StepCompletionCountAvg timeDrop
Sub-flow: URL accessed → OTP → Landing page
URL accessed
148
—
—
OTP triggered
142
12 sec
−4%
OTP confirmed
133
1.4 min
−6%
Landing page reached
132
4 sec
−1%
2First login
132
—
−11%
▾
Note: Account created and first login are the same event for sandbox
3Template details page
96
2.1 min
−27%
▾
Sub-flow: Dashboard → Template list → Template detail
Dashboard viewed
132
—
—
Template list viewed
113
1.2 min
−14%
Template detail clicked
96
54 sec
−15%
4Template added
59
3.4 min
−39%
▾
Sub-flow: Template detail view → Confirm add to account
Template detail viewed
96
—
—
Add to account clicked
68
4.2 min
−29%
Confirmed (template in use)
59
22 sec
−13%
5Master config completed
33
3.2 hrs
−44%
▾
Sub-flow: Template use → 9 config steps → Publish clicked
Template in use
59
—
—
Categories added
53
18 min
−10%
Subcategories added
49
12 min
−8%
Op. capabilities selected
46
9 min
−6%
Forms setup completed
42
38 min
−9%
Roles setup confirmed
35
22 min
−17%
Workflow setup completed
32
41 min
−9%
Notification setup done
36
8 min
+13%
Payment setup done
33
19 min
−8%
Publish clicked + confirmed
33
3 min
0%
⚠ Roles and Workflow setup are the stall points — 17% and 9% drop-off respectively. Workflow averages 41 min, the longest config step.
6Go-live checklist done
16
1.4 hrs
−52%
▾
Sub-flow: Users created → Theme → Boundary → Go live
Checklist started
33
—
—
Users created
29
11 min
−12%
Theme confirmed
20
24 min
−31%
Boundary confirmed
17
8 min
−15%
Checklist completed
16
2 min
−6%
7Emp/Citizen URL accessed
12
—
−25%
▾
Terminal step — sandbox account considered activated. This event triggers the Sandbox → UAT conversion clock.
Sandbox → UAT conversion
42%
12 of 148 sandbox accounts
→
Avg. time sandbox → UAT created
8.4 days
From acct created to UAT provisioned
→
Fastest conversion
2.1 days
Best case observed
UAT
Partner-provisioned → Emp URL accessed · 14 accounts · Same funnel steps as Sandbox
Partner-provisioned → Emp URL accessed · 14 accounts · Same funnel steps as Sandbox
UAT account creation sub-flow differs from Sandbox. UAT accounts are partner-provisioned: invitation email triggered → link accessed → password set. There is no OTP step.
StepCompletionCountAvg timeDrop
1Account created
14
—
—
▾
Sub-flow: Invite email → link accessed → password set
Invitation email sent
14
—
—
Invite link accessed
13
6.2 hrs
−7%
Password set
13
2.1 min
0%
2First login
13
—
−7%
▾
First login coincides with password set — same session. Time here is negligible.
3Template details page
13
1.8 min
0%
▾
Sub-flow: Dashboard → Template list → Template detail
Dashboard viewed
13
—
—
Template list viewed
13
1.1 min
0%
Template detail clicked
13
42 sec
0%
4Template added
12
2.8 min
−8%
▾
Sub-flow: Template detail view → Confirm add to account
Template detail viewed
13
—
—
Add to account clicked
13
1.9 min
0%
Confirmed (template in use)
12
18 sec
−8%
5Master config completed
9
5.8 hrs
−25%
▾
Sub-flow: Template use → 9 config steps → Publish clicked
Template in use
12
—
—
Categories added
12
21 min
0%
Subcategories added
12
14 min
0%
Op. capabilities selected
12
11 min
0%
Forms setup completed
11
52 min
−8%
Roles setup confirmed
11
28 min
0%
Workflow setup completed
9
68 min
−18%
Notification setup done
9
9 min
0%
Payment setup done
9
24 min
0%
Publish clicked + confirmed
9
3 min
0%
⚠ Workflow setup averages 68 min in UAT vs 41 min in Sandbox — real account complexity is significantly higher. Primary driver of 4-week miss.
6Go-live checklist done
7
1.8 hrs
−22%
▾
Sub-flow: Users created → Theme → Boundary → Go live
Checklist started
9
—
—
Users created
8
14 min
−11%
Theme confirmed
7
31 min
−13%
Boundary confirmed
7
12 min
0%
Checklist completed
7
2 min
0%
7Emp/Citizen URL accessed
5
—
−28%
▾
Terminal step for UAT. This event starts the UAT → Production conversion clock.
UAT → Prod conversion
64%
9 of 14 UAT accounts → production
→
Avg. UAT → Prod time
18.2 days
UAT created → Emp URL accessed (prod)
→
5 UAT accounts not yet converted
2 stalled
>28 days in UAT, no progress
Production
Activation + SLA · 9 live accounts
Activation + SLA · 9 live accounts
Activation
License issuance
Apply flow
Payment flow
Account created → First citizen application
StepCompletionCountAvg timeDrop
1Account created
9
—
—
▾
Production account created by partner after go-live checklist completed.
2First employee login
9
4.1 hrs
0%
▾
All 9 accounts have had at least one employee login. 4.1 hrs avg reflects same-day setup.
3First citizen login
8
3.2 days
−11%
▾
1 account has had no citizen login yet. 3.2 days avg to first citizen login — depends on partner publicising the service.
4First citizen application
7
18.4 days
−13%
▾
18.4 days avg from account created to first application. 2 accounts live but no application submitted yet.
Other functionality
One-time configuration tasks · Measured by time at step + completion, not conversion rate
Boundary setup
Create boundary → Boundary live · Upload data is the friction point
Create boundary
2 min
0% errors
Select source
3 min
4% retry
Upload data
18 min
31% errors ⚠
Confirm data
5 min
12% go back
Task completion
StepCompletionCountAvg timeDrop
1Create boundary
42
2 min
—
▾
Partner names the boundary and selects the account it applies to. Fast and error-free.
2Select source
40
3 min
−5%
▾
Chooses between OSM, Shape File, or Excel upload. 4% retry suggests some partners select the wrong source type initially.
3Upload data
34
18 min
−15%
▾
Highest friction step — 18 min avg and 31% error rate. Errors are predominantly file format mismatches. Track boundary.upload_data.failed with error_code to distinguish format vs size vs processing errors.
4Confirm data
30
5 min
−12%
▾
12% who reach the preview go back — they've seen something wrong in the boundary preview. This is a data quality signal from the upload step, not a UX problem at confirmation.
✓Boundary live
30
—
0%
▾
30 of 42 boundary setups have completed successfully. 12 accounts have not completed — either in progress or abandoned at upload.
Add new language
Add language → Language live · Provide translations is expected to take hours
Add language
1 min
0% errors
Provide translations
4.2 hrs
Expected — manual work
Confirm translations
8 min
24% go back ⚠
Task completion
StepCompletionCountAvg timeDrop
1Add language
28
1 min
—
▾
Partner selects a language to add from the available list. Fast and reliable.
2Provide translations
26
4.2 hrs
−7%
▾
4.2 hrs is expected — translating all UI strings is manual work. An unusually short time (<30 min) may indicate incomplete translations. Flag sessions where provide translations takes <30 min for review.
3Confirm translations
24
8 min
−8%
▾
24% who reach confirm go back to revise translations — they spotted errors or gaps during review. This is the translation quality signal. Track localization.confirm_translations.rejected per account as a quality score.
✓Language live
20
—
−17%
▾
20 of 28 language additions have gone live. 8 accounts started but have not completed — likely still in the translations step. Alert if not completed within 7 days of initiation.
Integration configuration — OOB vs custom
How many accounts have configured each integration type, and which path did they choose
SMS
Amazon SNS (OOB)
11 accounts
Custom (partner-built)
3 accounts
Email
Amazon SES (OOB)
11 accounts
Custom (partner-built)
3 accounts
USSD
OOB provider
7 accounts
Custom (partner-built)
7 accounts
Feature usage
Click any row to expand · Avg uses = avg number of times an account uses this feature per month · Journey status = product decision, not calculated
On journey
Off journey
Understand
| Feature / Sub-feature | Journey | Avg uses / account / month | Accounts using |
|---|
Avg uses / account / month = total events ÷ accounts that triggered the feature at least once · Baseline data — thresholds for high/low will be set after 60 days of instrumentation
Total accounts
8
Across 3 partners
Accounts in UAT
4
Active in UAT environment
2 stalled >28d
Accounts in prod
6
Live in production
↑ +1 this month
Total templates
21
Avg 2.6 per account
↑ +3 this month
Templates stalled >28d
3
UAT started, not live
Needs attention
Total templates activated
9
First citizen click received
75% of live templates
Account pipeline — template view
Each row = one template · An account may have multiple rows · Click account name to group
Live + activated
Live, not yet activated
Stalled
In progress
| Account | Template | Template ID | Partner | Pipeline stage | Days | Status |
|---|---|---|---|---|---|---|
| Lagos PartnerCo W. Africa |
Trade License | TI-0041 | PartnerCo W. Africa | 26d | Activated | |
| Business Permit | TI-0048 | PartnerCo W. Africa | 19d | Live, 0 citizens yet | ||
| Market License | TI-0052 | PartnerCo W. Africa | 12d | Configuring | ||
| Accra PartnerCo W. Africa |
Sanitation Permit | TI-0031 | PartnerCo W. Africa | 31d | Activated | |
| Health License | TI-0055 | PartnerCo W. Africa | 8d | Live, 0 citizens yet | ||
| Nairobi PartnerCo E. Africa |
Business Permit | TI-0038 | PartnerCo E. Africa | 34d ⚠ | UAT stalled | |
| Trade License | TI-0044 | PartnerCo E. Africa | 22d | Activated | ||
| Kampala PartnerCo E. Africa |
Health License | TI-0039 | PartnerCo E. Africa | 29d ⚠ | UAT stalled | |
| Dar es Salaam PartnerCo E. Africa |
Building Permit | TI-0042 | PartnerCo E. Africa | 18d | Configuring | |
| Trade License | TI-0053 | PartnerCo E. Africa | 14d | Activated |
Complete
Current stage
Not started
Stages: Sandbox · UAT active · Master config · Go-live checklist · Live
Account pipeline design note: Rows are templates, not accounts. An account may appear multiple times with different templates at different stages. "Activated" = first citizen click received on that template. The template activation deep-dive is on the Template activation tab.
1 · Template views
How many times has each template details page been viewed, across all accounts and environments
Sandbox
UAT
| Template type | Total views | Unique accounts | Avg views per account | Trend (6 wks) |
|---|---|---|---|---|
| Trade License | 1,840 | 14 | 131 | |
| Sanitation Permit | 642 | 8 | 80 | |
| Building Permit | 510 | 7 | 73 | |
| Health License | 388 | 6 | 65 | |
| Business Permit | 290 | 5 | 58 | |
| Market License | 174 | 4 | 44 |
2 · Time to activation
Template details page viewed → Go-live checklist completed · How long does it take a partner to configure and go live with a template
Sandbox
UAT
Configuration funnel — per template
StepCompletionCountAvg time at stepDrop
1Template details viewed
96
—
—
Starting point — partner opens a template detail page for the first time.
2Template added
59
3.4 min
−39%
39% who viewed the detail page did not add the template. Largest single drop — decision point between exploring and committing.
3Master config completed
33
3.2 hrs
−44%
3.2 hrs avg across all 10 master config steps. Workflow setup is the longest individual step. 44% who added the template did not complete configuration.
4Go-live checklist done
16
1.4 hrs
−52%
Only 16 of 96 template detail views resulted in a completed go-live checklist. Theme confirmation is the stall point within the checklist.
Overall: 17% of templates viewed reach go-live checklist completion. The biggest loss is at template added (−39%) and master config (−44%).
Time from template details viewed → go-live checklist completed
<1 day
2 templates
1–3 days
4 templates
4–7 days
5 templates
8–14 days
4 templates
>14 days
1 template
Median
5d
Average
6.8d
Fastest
0.4d
Slowest
18d
Of the 16 templates that completed go-live checklist. Note: 80 templates viewed but never reached go-live are not included in this distribution.
3 · Template view → use %
Of accounts that viewed a template detail page, what % went on to add it to their account
Sandbox
UAT
| Template type | Views | Added to account | View → use % | Avg time view → add |
|---|---|---|---|---|
| Trade License | 1,840 | 128 | 7.0% | 3.4 min |
| Sanitation Permit | 642 | 38 | 5.9% | 4.1 min |
| Building Permit | 510 | 24 | 4.7% | 5.8 min |
| Health License | 388 | 16 | 4.1% | 6.2 min |
| Business Permit | 290 | 10 | 3.4% | 7.1 min |
| Market License | 174 | 5 | 2.9% | 8.4 min |
View → use % is low by design — most sandbox users are exploratory. This metric becomes more meaningful once segmented by accounts that went on to activate UAT.
4 · Configuration changes per template
How many times has a template's configuration been edited after initial setup
This metric needs a definition decision before instrumentation.
A "configuration change" could mean any of the following — and each requires a different event:
A
Post-publish edits — changes made to any master config step (form, workflow, roles, etc.) after the template has gone live. Tracked via existing master_config.* events with a flag indicating the template was already published.
B
Version increments — if the product supports versioning of templates, track template.version.published with a version number. Count of versions > 1 = number of post-launch changes.
C
Checklist restarts — if a partner re-enters the go-live checklist after a template is live, that's a proxy for a significant configuration change. Tracked via template.go_live_checklist.started where template is already in live state.
Decision needed: which definition matches how configuration changes actually work in the product? Once agreed, the event and this panel can be built out.
1 · Geography
Auto-captured · PostHog
Sessions by country and city
All user roles · last 30d · hover to inspect · accounts may map to city or department within a city
View
Country · low → high sessions
City · bubble size = session volume
Segment by role in PostHog to distinguish accounts where citizens are engaging vs. accounts with only admin activity. Sessions in cities with no live account may indicate sandbox exploration or VPN usage.
2 · Devices
Auto-captured · PostHog
Employee app
How employees access the product
Desktop 58%
Mobile 34%
Tablet 8%
Chrome
Safari
Firefox
34% mobile — employees are processing applications on phones. Direct UX priority signal for inbox, forms, and payment collection.
Citizen app
How citizens access the service
Mobile 82%
Desktop 11%
Tablet 7%
Chrome Android
Safari iOS
Samsung Internet
82% mobile-first. Document upload is the highest drop-off step and most painful on mobile — strongest UX improvement candidate.
3 · Session patterns
Auto-captured · filterable by account
Usage by hour of day
Sessions per hour · separated by role
Account
Role
Employee sessions
12am6am12pm6pm11pm
Citizen sessions
12am6am12pm6pm11pm
Peak employee usage 9am–11am and 2pm–4pm. Citizen peak 11am and 4pm–6pm. Maintenance window: 10pm–6am local time.
4 · Error and friction signals
Requires session replay enabled
Rage clicks and JS errors — PostHog session replay automatically flags rage clicks and JavaScript errors. Once enabled at 50% sampling, this panel will show: top screens by rage click frequency, JS error rate by page, and a direct link from any data point to the relevant session recordings. No additional instrumentation needed — just enable session replay before launch so the first real usage is captured.