refresh Checking access…
Not authorized — redirecting…
← Return to dashboard ·

Customer Health

{{ user && user.email }}
{{ loadStage }} · {{ elapsed_seconds }}s
Average per active org help
Collecting average customer data… first run of a new period rebuilds this from BigQuery and can take a minute.
Averages unavailable.
Plan distribution {{ kpi.total_count }} subscribed orgs
{{ t.label }} {{ kpi.plan_counts[t.key] || 0 }}
Org{{ filters.sort_dir === 'asc' ? '↑' : '↓' }} Plan{{ filters.sort_dir === 'asc' ? '↑' : '↓' }} {{ filters.sort_dir === 'asc' ? '↑' : '↓' }} Members {{ filters.sort_dir === 'asc' ? '↑' : '↓' }} Logins (mo) help {{ filters.sort_dir === 'asc' ? '↑' : '↓' }} Active (mo) help {{ filters.sort_dir === 'asc' ? '↑' : '↓' }} Publ. total Last login{{ filters.sort_dir === 'asc' ? '↑' : '↓' }} Last published / updated{{ filters.sort_dir === 'asc' ? '↑' : '↓' }}
No orgs match these filters.
{{ o.org_name || o.org_slug }}
{{ o.org_slug }}
{{ planLabel(o) }} {{ o.member_count != null ? o.member_count : '—' }} {{ o.login_count }} {{ formatHours(o.total_active_minutes) }} {{ o.published_count }} {{ formatRelative(o.last_login_at) }} {{ formatRelative(o.last_published_at || o.last_saved_at) }} chevron_right
Page {{ page }} of {{ page_count }} · {{ filtered_orgs.length }} orgs

{{ history_period === 'month' ? 'Month by month' : 'Week by week' }}

help
No completed {{ history_period === 'month' ? 'months' : 'weeks' }} recorded yet. The job writes one row per completed {{ history_period === 'month' ? 'month' : 'week' }}; months accrue from June 2026.
{{ history_period === 'month' ? 'Month' : 'Week' }} Active orgs Logins / org Time / org help Views / org Publishes / org Total logins Total views Total publishes
{{ row.w.window_label }} {{ row.w.active_org_count }} {{ row.w.avg_logins }} {{ row.d_logins.text }} {{ formatHours(Math.round(row.w.avg_active_minutes)) }} {{ row.w.avg_opens }} {{ row.d_views.text }} {{ row.w.avg_publishes }} {{ row.d_publishes.text }} {{ row.w.totals.logins.toLocaleString() }} {{ row.w.totals.opens.toLocaleString() }} {{ (row.w.totals.publishes || 0).toLocaleString() }}
No data for {{ selected_org_slug }}.

{{ detail.metrics.org_name || selected_org_slug }}

{{ planLabel(detail.metrics) }}
{{ selected_org_slug }} · {{ detail.metrics.member_count }} members · customer since {{ customerSinceLabel }}
Logins ({{ formatMonthLabel(month) }})
{{ detail.metrics.login_count }}
{{ detail.metrics.active_login_users }} users
Active users
{{ detail.metrics.active_users }}
{{ detail.metrics.active_span_count }} spans
Active time
{{ formatHours(detail.metrics.total_active_minutes) }}
this month
Published
{{ detail.metrics.published_count }}
all-time

Recent logins

No recorded logins yet.
{{ l.name || l.email || l.user_id }}
{{ [l.city, l.region, l.country].filter(Boolean).join(', ') || '—' }}
{{ formatRelative(l.logged_in_at) }}

Recent activity

No recorded sessions yet.
{{ a.email || a.user_id }}
{{ a.path }} · {{ formatDuration(a.active_seconds) }}
{{ formatRelative(a.started_at) }}

Recent reports

No published reports.
{{ r.title || r.slug }}
{{ r.url }}
{{ formatRelative(r.published_at || r.last_saved) }}
UserEmailLocationDeviceTime
No logins recorded for this org yet.
{{ l.name || '—' }} {{ l.email }} {{ [l.city, l.region, l.country].filter(Boolean).join(', ') }} {{ l.using_mobile_device ? 'Mobile' : 'Desktop' }} {{ formatRelative(l.logged_in_at) }}

Top users by active time

No activity recorded.
{{ u.email || u.user_id }} {{ formatHours(Math.round(u.total_seconds / 60)) }}

Top paths

No activity recorded.
{{ p.path }} {{ formatHours(Math.round(p.total_seconds / 60)) }}
UserPathStartedDuration
No activity spans recorded.
{{ a.email || a.user_id }} {{ a.path }} {{ formatRelative(a.started_at) }} {{ formatDuration(a.active_seconds) }}
Title Preview URL Last saved
No reports.
{{ r.title || '(untitled)' }} · draft {{ previewUrl(r) }} {{ formatRelative(r.last_saved) }}
Title URL Last saved Views Insights
No published reports.
{{ r.title || r.slug }} {{ r.url }} {{ formatRelative(r.last_saved) }} {{ r.views || 0 }} View Insights ↗

Subscription

Plan
{{ planLabel(detail.metrics) }}
Members
{{ detail.metrics.member_count != null ? detail.metrics.member_count : '—' }}
Customer since
{{ customerSinceLabel || '—' }}