Understanding your analytics

Wassla splits operational reporting across two surfaces. The Reports page in your workspace shows conversation volume, AI resolution rate, response time, sentiment, and per-agent performance for any 7-, 30-, or 90-day window. The Billing page shows credit balance, this month's spend, the immutable per-transaction ledger, and your monthly spend cap. This page explains what each chart and number means, where the data comes from, and how to use it to ship weekly improvements.

Where to find each report

Open your workspace, then look at the sidebar. The two analytics surfaces sit in different sections by design — operational performance lives next to your work, financial usage lives with billing.

  • Reports lives under the operations group and opens at /<your-workspace>/reports. This is the page most teams visit daily.
  • Evals sits next to Reports and tracks rubric pass rates over time. Open it from the "Open evals" quick link at the top of Reports, or directly at /<your-workspace>/evals.
  • Billing lives under the workspace settings group. Credit balance, spend, ledger, and caps all live here, not on the Reports page.

If a teammate asks "where do I see how many credits we burned this week," the answer is Billing. If they ask "how many conversations did the AI close," the answer is Reports.

What the Reports page shows

The Reports page is the home for operational analytics. At the top sit four headline stat cards, followed by a volume-over-time chart and a per-agent breakdown table. Use the chip row in the top right to switch the time window between Last 7 days, Last 30 days (the default), and Last 90 days. Every chart on the page recalculates immediately when you change the range.

Conversation volume

The first stat card, Conversations, counts every conversation opened in the selected window across every connected channel — WhatsApp, Instagram, Facebook Page, the web widget, Twilio SMS, and voice. Playground test conversations are deliberately excluded so internal testing does not inflate your numbers.

Below the stat cards, the Volume over time chart plots the same total day by day so you can see traffic patterns — Sunday peaks, Ramadan dips, marketing-campaign spikes. The area underneath the line is shaded in your accent color and the y-axis auto-scales to the busiest day in the window, so a quiet week and a record week both look readable.

AI resolution rate

The Resolved by AI card shows the percentage of conversations in the window that closed without a human teammate taking over. A conversation counts as resolved when its status is closed and no one used the AI Active / Human Active toggle in the inbox to take it over. The number is rounded to a whole percent and shows an em-dash when there is no data yet.

Watch this number weekly. A rising resolution rate means your training, knowledge base, and handoff rules are tightening. A falling rate is usually a knowledge-gap signal — open the Evals page and check whether any rubric scores dipped in the same window.

Response time

The Avg response card shows the median time between the customer's first message and the first outbound reply, whether that reply came from the AI or a teammate. The label says "average" because that is the everyday English word, but the underlying value is a median — it is more representative when one or two slow nights would otherwise drag a mean up.

Response time is formatted compactly: seconds when under a minute, minutes when under an hour, and Xh Ym for longer. If you operate under a written response-time SLA with your customers, this is the number to track against it. A dedicated SLA-breach view with per-channel thresholds is coming soon.

Sentiment

The Positive sentiment card shows the share of analyzed conversations classified as positive by Wassla's sentiment scoring. Sentiment scoring runs on closed conversations in the demo and live billing modes and is gated to zero spend in infra-only mode, so workspaces still in pre-launch will see an em-dash here until they switch billing mode.

The card complements rather than replaces post-conversation CSAT. Use it as an early-warning signal between formal surveys.

Per-agent performance

The By agent table at the bottom of the page lists every agent that handled a conversation in the window, sorted by volume. For each agent it shows the conversation count and its share of the total. Agents that did not handle anything in the window are hidden so the table stays compact.

Use this table to spot lopsided routing. If your Support agent is at 90 percent share while Sales sits at 4 percent, your routing rules may be sending sales-shaped questions to support. Open Using the unified inbox for the routing controls that govern who gets what.

Exporting a CSV

The Export CSV button next to the time range writes one row per day in the selected window, with that day's conversation count plus the period totals for context — total conversations, resolved count, resolution rate, and average duration. The file is named wassla-report-<range>-<date>.csv and opens cleanly in Excel, Numbers, or any BI tool. The button stays disabled until there is at least one conversation in the window, with a tooltip explaining the empty state.

Where the Reports data comes from

Every number on the Reports page is computed live by the tenant_analytics Postgres function over your workspace's conversations and messages. There is no nightly aggregation layer, so a conversation you just closed shows up the next time you reload the page. The function honors your time window exactly, excludes playground traffic, and reads only your tenant's rows — your data never mixes with other workspaces.

If the page shows a red retry banner, the function call failed. Click Retry once. If it fails twice in a row, check your network and reach out via the Support page.

Credit usage analytics

Credit accounting is intentionally separated from conversation analytics. Credits are the unit Wassla uses to meter AI work, and the canonical view lives on the Billing page.

Open Billing from the workspace sidebar. The top of the page shows your current balance, this month's spend to date, and a breakdown by spend type — text replies, voice turns, knowledge searches, sentiment analysis, and tool calls. Click the Ledger tab below for the per-transaction view: every credit debit is logged immutably with timestamp, amount, balance after, and the action that triggered it. The ledger is the auditable source of truth — Reports tells you what happened operationally, the ledger tells you what it cost.

You can also set a monthly cap from the Billing page. Wassla pauses AI spend automatically when the cap is reached and notifies the workspace owner immediately. For the full mechanics of what each action costs and how to top up, read Plans and how credits work.

Evals: tracking quality over time

The Evals page, opened from the "Open evals" quick link at the top of Reports, is where you score conversations against rubrics — "Cited a source," "Used the customer's name," "Offered a refund when policy allows." Each rubric run produces a pass rate, and the headline cards show your latest overall score, total rubric count, runs in the last seven days, and how many recent runs scored below 80 percent.

Evals catch regressions that conversation-volume numbers never will. A workspace can be handling more traffic at a steady resolution rate while quietly drifting on a critical rubric — Evals surfaces that drift before customers do.

When numbers look wrong

A few common situations look like a bug but are not:

  • The numbers do not match the inbox. The inbox counts threads in real time; Reports excludes Playground traffic. Switch the inbox queue chip to All (not Playground) and recount.
  • Resolution rate is lower than expected. A conversation only counts as AI-resolved if no teammate touched the Human Active toggle. One quick nudge from a teammate flips the conversation to human-handled for reporting purposes even if the AI sent every other reply.
  • Sentiment shows an em-dash. Your workspace is in infra-only billing mode, so AI scoring including sentiment is gated off. Switch to demo or live billing mode from the Billing page to start collecting sentiment data.
  • A channel is missing from per-agent totals. Agents only appear in the By agent table when they handled at least one conversation in the selected window. Widen the range to 90 days to see your full roster.