# 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).