Analytics & Reporting
Olyron CRM turns the records you already keep — leads, deals, tasks, commissions, communications, and commerce orders — into live performance metrics. This page covers where each number comes from, how it is aggregated, and how to export the underlying data.
#Where analytics live
Reporting is spread across a few purpose-built surfaces in the dashboard. Each pulls from your tenant's own rows in Supabase, scoped by tenant_id, so you only ever see your organization's data.
| Surface | Route | What it shows |
|---|---|---|
| Analytics | /dashboard/analytics | Live KPI snapshot of leads, deals, tasks, and members |
| Reports hub | /dashboard/reports | Template gallery and the 2026 CRM reporting suite |
| 2026 reporting suite | /dashboard/reports/2026/{annual|quarterly|monthly} | Query-backed revenue, conversion, and activity reports |
| Communications analytics | /api/communications/analytics | Call and meeting volume, answer rate, completion rate |
| Commerce stats | /api/commerce/stats | Order counts and revenue by connected store |
| Commission summary | /api/commissions/summary | Pending / approved / paid payouts per agent or tenant |
#The Analytics dashboard
/dashboard/analytics is the fastest read on how the business is doing. It fetches leads, deals, tasks, and members for your tenant in parallel and computes headline metrics client-side. The date-range selector in the header (7d / 30d / 90d / all) limits leads, deals, completed tasks and task completion rate to records created in that window. Active and expiring members and pending and overdue tasks are always counted as of today, over every record, whatever the range.
Metrics you get
- Leads by status (new, contacted, qualified, converted) and by
source. - Deals: total count, total value (sum of
amount), weighted value (amountxprobability/ 100), and deals by pipeline stage. - Tasks: total, completed, pending, and overdue (pending tasks with a
due_datein the past). - Members: total, active, and expiring soon (active members whose
renewal_datefalls within 30 days). - Performance: conversion rate and task completion rate.
#The 2026 reporting suite
The Reports hub groups deeper reports into annual, quarterly, and monthly cadences. These pages query live tenant data through the Supabase client rather than showing samples.
- Annual: revenue trend, lead trend, source distribution, conversion by rep.
- Monthly: revenue and closed sales, lead source breakdown, conversion rates, rep activity, individual performance, activity log vs. targets, in-house vs. self-generated, outside advisor production.
- Quarterly: target tracking backed by the
quarterly_targetstable.
- 1Open the Reports hubGo to /dashboard/reports and filter templates by category (Sales, Marketing, Team, Operations, Finance, Productivity).
- 2Jump into the 2026 suiteFollow the 2026 CRM reporting suite link to reach the annual, quarterly, and monthly report groups.
- 3Pick a cadence and reportChoose, for example, Monthly then Revenue and Closed Sales, or Annual then Revenue Trend, to load numbers computed from your live records.
#Commissions, communications & commerce
Beyond the CRM dashboard, three domain APIs expose aggregated metrics you can pull directly. All require an authenticated tenant user.
Commission summary
GET /api/commissions/summary aggregates rows from commission_records. Non-admins always see only their own agent summary; org owners and agency admins can pass agentId for a single agent or omit it for a tenant-wide roll-up. Optional periodStart and periodEnd filter by the record period.
{
"type": "agent",
"summary": {
"agentId": "…",
"agentName": "Jane Advisor",
"totalPending": 4200,
"totalApproved": 1800,
"totalPaid": 9500,
"recordCount": 37,
"avgCommissionRate": 8.5
}
}totalPending / totalApproved / totalPaidnumber- Sum of
final_amountfor records in each status bucket. recordCountnumber- Number of commission records in the period.
avgCommissionRatenumber- Mean of
rate_appliedacross all records in the period. agentCountnumber- Tenant summaries only — count of distinct
agent_idvalues.
Communications analytics
GET /api/communications/analytics accepts period (7d, 30d, 90d, 1y — default 30d) and type (calls, meetings, all). It aggregates the daily call_analytics and meeting_analytics tables and derives answer rate, completion rate, and average durations, plus a today quick count from communications and video_meetings.
Commerce stats
GET /api/commerce/stats returns order counts and revenue (in cents) for today, this week, and this month, plus a byProvider breakdown across connected stores (for example Shopify or WooCommerce).
#Exporting data
Anywhere you see an Export button, Olyron calls POST /api/exports, fetches up to 10,000 matching rows for your tenant (newest first), and hands them to a client-side exporter that produces CSV, XLSX, or PDF. If more rows match, the response sets metadata.truncated with the full totalCount and the app tells you the file stopped at 10,000. Every export is written to the audit log.
{
"type": "deals",
"format": "csv",
"filters": {
"status": "won",
"dateFrom": "2026-01-01",
"dateTo": "2026-06-30"
},
"columns": ["name", "amount", "stage", "created_at"],
"title": "H1 Won Deals"
}| Field | Accepted values |
|---|---|
| type | leads, contacts, deals, tasks, enrollments, vendors, vendor_changes |
| format | csv, xlsx, pdf |
| filters | status, vendorId, dateFrom, dateTo (all optional) |
| columns | Optional array to restrict exported fields |
#How aggregation works & limits
- Every query is scoped by
tenant_id, enforcing tenant isolation across all reports and exports. - Dashboard metrics are computed in the browser from freshly fetched rows, so they reflect the current state each time you load or change the date range.
- Rep activity counts leave out inbound (customer) WhatsApp messages. Every WhatsApp message still appears on the contact or lead timeline, but only messages the team sent count as a rep's activity.
- Communications and marketing analytics roll up pre-aggregated daily tables (
call_analytics,meeting_analytics,landing_page_events) — expect a short lag until a day's activity is fully captured. - Role matters: on the commission summary, only org owners and agency admins can view tenant-wide or other agents' numbers; everyone else is limited to their own.