# Analytics
> See the health of your customer conversations at a glance — volume, response time, agent performance, and a satisfaction indicator — all pre-computed, cached, and refreshable on demand.
> **TL;DR**
>
> * **What it is —** a read-only dashboard with 8 KPI cards, 3 charts (response-time-by-hour, satisfaction donut, daily-volume bars), and a top-10 agent performance table. Pre-aggregated, cached, with a manual refresh.
> * **Who it's for —** team leads and admins reviewing performance; agents checking their own contribution. Not a deep BI tool — use [Reports](reports.md) for exports and drill-down.
> * **Top outcome —** answer *"is the team keeping up?"* in seconds.
## At a glance
| | |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Plan tier** | All paid tiers. |
| **Who can use it** | All roles can view. Every team member sees every colleague's numbers in this view. |
| **Channels** | Organisation-wide across every channel. No per-channel filter in this release. |
| **Integrations** | Reads from the live inbox, chat states, contacts, and team members. |
| **Top limits** | 5 preset date periods — last 7 / 30 / 90 days, current month, previous month. No custom range. Agent performance table: top 10. Cache refreshes automatically after 24 hours or on-demand. |
| **API** | Yes — partner API for fetching and refreshing analytics payloads. |
## How to find it
**Sidebar → Analytics.**
**Direct URL:** `https://lodgestory.com/crm/analytics`
📸 `[SCREENSHOT: analytics-nav.png — sidebar with Analytics highlighted]`
## What is Analytics?
### The problem it solves
You have 45 agents, 12 channels, 60,000 conversations a month. How fast are first responses? Which agents are carrying the load? Is volume trending up or down week over week? Answering these from the raw data requires a data team and a never-stale dashboard. For non-technical managers and team leads, "open the dashboard" needs to be a one-second action, not a data-engineering project.
Analytics pre-computes and caches the answers. The dashboard reads from a cached snapshot that's regenerated when stale; a **Refresh** button regenerates on demand. For anything the dashboard doesn't cover, [Reports](reports.md) exports raw CSVs for Excel or BI work.
### What you get
* **8 KPI cards** with trend indicators (up / down vs the previous period). Typical metrics include message volume, chat volume, average first response time, average resolution time, active contacts, pending chats, resolution rate, and a satisfaction indicator.
* **3 charts** — response-time-by-hour line, satisfaction donut, daily-volume bar chart.
* **Top-10 agent performance table.** Per-agent: messages sent, chats handled, average first response time.
* **5 preset date periods** — last 7 days, last 30 days, last 90 days, current month, previous month.
* **Refresh button** — regenerates the whole bundle on click.
### How it's different
* **Cached-regenerate model, not live.** Dashboards aren't real-time. Metrics are a snapshot — manually refreshable — not streamed. This is deliberate: organisation-wide aggregates don't benefit much from sub-second latency, and refreshing them constantly would drag the rest of your inbox.
* **Satisfaction isn't a survey score.** The satisfaction indicator is derived from resolution rate and reopen rate, not from a formal customer-satisfaction survey. If you need true survey-based scores, plan to wire a survey campaign into the workflow.
### Customer scenarios
* **Daily standup KPI check.** Team lead opens the dashboard each morning. Scans the KPI cards for yesterday. Drills into the agent table to spot anyone whose first-response time spiked.
* **Monthly management review.** Operations manager opens the dashboard in *previous month* range, screenshots the charts, pastes them into the monthly report. Detailed breakdowns come from a Reports CSV exported the same day.
* **Regression check after a policy change.** Support rolled out a new SLA on Friday. Monday morning, compare *last 7 days* to *last 30 days* to see whether the new policy is moving numbers.
### How it fits with the rest of Lodgestory
This module is a consumer, not a producer. Every metric is derived from data owned by other modules: message volumes from [Home](home-unified-inbox.md), chat states from [Workflow Lifecycle Stages](../settings/workflow-lifecycle-stages.md), assignments from [Team Members](../settings/team-members.md), active contacts from [Contacts](contacts.md). Downstream: [Reports](reports.md) exports the raw data when the dashboard isn't enough.
📸 `[SCREENSHOT: analytics-landing.png — analytics dashboard with KPI cards and charts]`
## Core concepts
| Term | What it means |
| ------------------------- | ------------------------------------------------------------------------------------------- |
| **KPI card** | A metric with a current value, a previous-period value, and a trend arrow. |
| **Preset period** | One of five static date ranges. Each selection is a new snapshot. |
| **Chart** | A visualisation reading from the cached snapshot. |
| **Agent performance row** | One row in the top-10 table, ranked by message volume for the period. |
| **Derived satisfaction** | A 0 – 100 score computed from resolution rate minus reopen rate. Not a formal survey score. |
## Quick Start — read the dashboard in 1 minute
### Step 1 — Open Analytics
Sidebar → **Analytics**.
### Step 2 — Pick a date range
Top-right of the page — 5 preset buttons. Default is last 7 days.
### Step 3 — Scan the KPI cards
Each card shows the current value and a coloured arrow vs the previous period of the same length.
### Step 4 — Review the charts
* **Response time by hour** — line chart of average first-response time for each hour of the day. Spikes identify shifts where coverage is thin.
* **Satisfaction** — donut showing satisfied vs reopened chat ratios.
* **Daily volume** — bar chart of daily new chats.
### Step 5 — Drill into the agent table
Top 10 by message volume. Sort by response time to find fastest or slowest.
### Step 6 — Refresh if needed
Click **Refresh** at the top. Takes a few seconds on typical organisations.
## How it works
On page load, the dashboard reads from a cached snapshot. If the snapshot is older than 24 hours, it's regenerated automatically and the fresh version is served.
Clicking **Refresh** forces regeneration regardless of cache age. Regeneration scans message volume, chat volume, state transitions, active contacts, assignment counts per agent, and team member names — then writes a fresh snapshot for the selected period.
## Features in depth
### KPI cards (8)
1. Total messages (period).
2. Total chats (period).
3. Average first-response time.
4. Average resolution time.
5. Active contacts.
6. Pending chats.
7. Resolution rate (%).
8. Derived satisfaction (0 – 100).
Each card shows the current value, the previous-period value, and a trend arrow with percent change.
### Charts
* **Response time by hour** — line chart; horizontal axis is hours 0 – 23, vertical axis is average first-response time in minutes.
* **Satisfaction donut** — two slices: satisfied vs reopened.
* **Daily volume** — bar chart; horizontal axis is date, vertical axis is new chats that day.
### Agent performance table
Top 10 by message volume. Columns: agent name, messages sent, chats handled, average first-response time, assigned team.
Sortable by each column; no pagination — it's a hard top-10.
### Refresh button
At the top of the page. Regenerates the whole snapshot. Disabled while a refresh is in flight.
### Date range picker
Five preset buttons — the current selection is highlighted. Changing a preset triggers a new fetch.
## Roles and permissions
| Action | Account Owner | Admin | User |
| ---------------------------------------- | :-----------: | :---: | :--: |
| View Analytics | ✓ | ✓ | ✓ |
| See colleagues' stats in the agent table | ✓ | ✓ | ✓ |
| Trigger a refresh | ✓ | ✓ | ✓ |
Every user in the organisation sees every other user's numbers in this view. If your organisation wants agents to see only their own metrics, request it as a feature — the current posture is transparency-by-default.
## Cross-module workflows
### "Is response time getting worse?" review
Manager opens Analytics on *last 30 days*; notices first-response time trending up. Switches to *last 7 days*; sees Tuesday 2 – 5 PM is the worst hour. Checks the agent table; one agent's first-response time is three times the team average. Opens [Team Members](../settings/team-members.md) to investigate their schedule.
**Modules involved:** Analytics → Team Members → Reports (if deeper data needed).
### "Did the new template improve conversions?"
Analytics shows daily volume spiking in the last week (ran a campaign); resolution rate holding. Open [Reports](reports.md) to export the per-chat CSV filtered on the campaign to slice conversion by response-time bucket in Excel.
## Limits a user will run into
| Limit | Value |
| ------------------ | ------------------------------------------------ |
| Date range | 5 presets only (no custom range in this release) |
| Agent table size | Top 10 |
| Cache auto-refresh | Every 24 hours |
| Metrics per card | 1 |
| Charts | 3 |
## Errors & FAQ
| You see | Likely reason | What to do |
| ----------------------------- | ----------------------------------------------------------------------- | --------------------------------------------- |
| *Failed to load analytics* | Network or session | Reload; sign in again if the session is stale |
| *Failed to refresh analytics* | Regeneration took too long on a very large organisation | Retry; escalate if consistent |
| Page spinner never resolves | Very large organisation + stale cache forcing an expensive regeneration | Wait a minute and reload |
### Frequently asked
**Why are numbers slightly different from Reports?**
Reports recompute from raw data on export; Analytics reads from the cached snapshot. If the cache is stale and raw data has moved, they'll differ until you refresh.
**Why can't I pick a custom date range?**
This release has five presets. Use Reports for anything outside them.
**Why is there no per-channel breakdown?**
Dashboard is organisation-wide. Use Reports for per-channel analysis.
**Why does the Analytics page say "satisfaction" but we don't run formal surveys?**
The metric here is derived from resolution and reopen rates, not from a survey. For true customer-satisfaction scores you'd need to wire survey campaigns into the workflow.
**Why don't I see my colleague's calls in the agent table?**
The agent table counts message volume across chat channels. Calls are tracked separately in the [Calls](calls.md) module.
**Why does the refresh take several minutes on our largest organisation?**
On very large data sets the computation is slow. If this is consistent for you, request the roadmap item that makes it incremental.
## Related modules & next steps
* [Reports](reports.md) — raw CSV export for anything beyond the dashboard.
* [Home (Unified Inbox)](home-unified-inbox.md) — the primary data source.
* [Team Members](../settings/team-members.md) — drill-down on individual agents.
* [Campaigns](campaigns.md) — broadcast-level progress (separate from this page).