Overview
DASHBOARD GUIDE

Behavioral Insights dashboard

Read your server's behavioural state. The Insights dashboard surfaces the BIE engine's per-dimension scores, collective spikes, the activity heatmap, member snapshots, and the controls for retention, export, and policy tuning.

Path
DashboardInsightsBehavioral Insights
Module
insights
Required permission
insights.view

Before you start

The engine needs some history before scores stabilise. A bit of patience pays off.

  • The Insights module is enabled and the BIE engine has run at least once for this server.
  • Your role has insights.view to read scores, plus insights.policy.manage to tune policy.
  • For member look-ups, the bot has access to the user roster (default for any server it is in).
  • For data export and purge actions you have insights.data.manage. Purge is irreversible.
  • If the server is brand new, scores show “—” until the first analysis cycle completes.

What you'll see

Seven tabs run across the top. The Overview is the daily landing tab; the others zoom into specific surfaces.

Overview
Dimensions
Collective events
Activity heatmap
Members
Data controls
Audit
Overview
Server state, health confidence, KPIs, dimension states card, the BIE engine status, and quick actions.
Dimensions
The five behavioural dimensions on dedicated cards with averages and 95th percentiles.
Collective events
Detected spikes and shifts — collective events, user anomalies, health shifts.
Activity heatmap
Hour-by-day grid of activity intensity over a recent week.
Members
Search a member to open their per-user behavioural profile.
Data controls
Export the overview, list retention windows, and run a server-scoped purge.
Audit
Engine refresh and configuration events with system-actor entries.

Overview tab

Everything you usually need at a glance \u2014 build muscle memory here.

The KPI strip

Server state
Computed label: HEALTHY, STRESSED, AT_RISK, or RECOVERING. The chip beside it reads Live when the engine is running.
Health confidence
A 0\u2013100 ring with a trend arrow (improving, stable, degrading) and the time of the last refresh.
Active users (24h)
Count of distinct users observed in the last 24 hours.
24h activity
Two stacked stats: collective spikes and user anomalies in the last day, with the time of the last cycle.

BIE engine status

A five-stat row that summarises the engine itself \u2014 cadence, last refresh, dimension count, active users, and a sparkline of the recent trend.

States grid

A five-tile board showing the current score for each dimension (activity, social, friction, quality, stability), each with its own progress bar and accent colour.

Quick actions

  • Run on-demand analysis kicks off a fresh cycle without waiting for the cadence.
  • The Policy tuning card links out to DashboardInsightsPolicy for advanced configuration.
  • System-info footer shows the engine version, cadence, dimension count, and an advisory-only badge.

Dimensions tab

The five behavioural dimensions broken out so you can compare averages and tails.

Dimension cards

Activity
Volume signal \u2014 messages, voice minutes, joins, and reactions.
Social
Reciprocity and reach \u2014 conversations, mentions, replies.
Friction
Negative signal \u2014 reports, deletes, mod actions, ratio of helpful to combative messages.
Quality
Content health \u2014 thread depth, image vs text balance, attachment hygiene.
Stability
Variance \u2014 how steady the above signals are over time.
Reading the numbers
Each card shows the average score and a faint p95 beside it. A wide gap between average and p95 usually means a small set of users or moments dominates that dimension.

Collective events tab

The incidents the engine has flagged in the recent past.

Incident types

Collective spike
A burst of activity that exceeds the dimension's normal range \u2014 raid-like volume, mass joins, etc.
User anomaly
A specific member's behaviour deviates from their own baseline.
Health shift
Server state moved between HEALTHY \u2192 STRESSED \u2192 AT_RISK \u2192 RECOVERING.

Severity

Each row carries a severity chip. Lower-confidence events still appear so you can scan, but high-confidence rows are highlighted.

Activity heatmap tab

A 7-day grid of activity intensity by hour of day.

What you'll see

  • Rows are days, columns are hours. Darker cells mean more activity.
  • The card uses the same insights accent so it slots into the rest of the dashboard.
  • Hover a cell to see the exact bucket count and time window.

Members tab

Look up an individual member to inspect their behavioural profile.

Searching

  • Type a nickname, username, or user ID. Two characters minimum to trigger a search.
  • Results render as a list of clickable rows with avatar, display name, handle, and ID.
  • Click any row to open DashboardInsightsMembers{userId} for the full profile.
No raw IDs in the snippet
The dashboard always tries to resolve display name first; the raw ID stays in the meta line for copy-paste.

Data controls tab

Export, retention, purge, and a list of what's stored.

Exports

  • Server overview \u2014 full JSON of the current overview payload.
  • Incidents \u2014 JSON of detected events.
  • Confidence histogram \u2014 the per-bucket distribution shown in Overview.
  • All exports save with a filename that includes the server ID.

Retention windows

SettingTypeDefaultDescription
Redis countersWindow14 daysShort-term rolling counts used to score behaviour.
User / server rollupsWindow24 monthsAggregated facts for long-term trend analysis.
IncidentsWindow90 daysDetected collective events and anomalies.
Score cachesWindow2 hoursCached per-cycle scores; refreshed on the cadence.

Purge

  • The danger button opens a confirm prompt before anything is deleted.
  • Confirming clears stored Insights data scoped to this server.
  • A success banner replaces the button while the purge is acknowledged.

What's stored

A collapsible list explains exactly which signals BIE keeps about your server, in plain English. Use it when answering data-handling questions from members.

Audit tab

Engine and dashboard activity. Currently surfaces refresh events keyed by the system actor.

Columns

When (relative time), Actor (system or user), Action (refresh, configure, purge), and Details. A footer note explains that richer audit entries are on their way.

Common tasks

Three flows you'll repeat regularly.

1

Diagnose a stressed server

Open DashboardInsightsBehavioral InsightsOverview.

  • Look at the Server state KPI. If it reads STRESSED or AT_RISK, note the dimension scores.
  • Switch to Dimensions and find the dimension with the lowest score and largest gap to p95.
  • Open Collective events and look for spikes or anomalies in the last 24h on that dimension.
  • Cross-reference with Activity heatmap to find when the spike happened.
  • If a specific user keeps appearing in the spike, search them in Members.
2

Run an on-demand analysis

Open DashboardInsightsBehavioral InsightsOverview.

  • Find the Run on-demand analysis card on the right side of the Overview.
  • Click Run now. The button shows a spinner while the cycle runs.
  • The KPI cards refresh once the cycle completes; check Last refresh updated.
3

Export and purge insights data for a member request

Open DashboardInsightsBehavioral InsightsData controls.

  • Click Server overview, Incidents, and Confidence histogram in turn to download a snapshot.
  • Hand the JSON files over with a note about the retention table on the same tab.
  • If a deletion request follows, click Purge, confirm, and wait for the success banner.

Troubleshooting

What to check when the dashboard reads zero, stale, or empty.

Everything shows dashes or 'Awaiting first analysis cycle'
The engine hasn't run for this server yet. Either it just got enabled, the cadence hasn't ticked, or the server is too quiet to score. Click Run on-demand analysis on the Overview to force a cycle.
Scores haven't moved in hours
The cadence is fixed and the engine de-duplicates near-identical inputs. Confirm Last refresh in the BIE engine card is recent. If it's stale, run an on-demand analysis. If that fails, check the Audit tab for a system error row.
Purge button is disabled
You don't hold insights.data.manage. Ask a server admin to grant the permission via DashboardRBACRoles & grants or have them run the purge themselves.
Member search returns nothing
The minimum query is two characters. Try the user's exact handle or paste their numeric ID. If nothing returns, the user has likely left the server \u2014 reach for the audit log instead.