Skip to main content
BeginnerAnalytics and Reporting

Dashboard Overview

Navigate the NimbusOS analytics dashboard, understand the core metrics that matter, and filter by client, campaign, date range, and ICP tier.

8 min read
Updated April 23, 2026
1,800 words

The analytics dashboard at /analytics is the rollup of everything happening in your workspace. It aggregates campaigns, contacts, sequences, enrichment, and deliverability into a single view with common filters. Agencies use it to track performance across clients; in-house teams use it to track performance across campaigns. This article walks through the three dashboard views, the core metrics, the filter controls, and the common mistakes new users make when reading the numbers.

The Three Views

The dashboard has three top-level views selectable from the left sidebar.

Agency view. Cross-client rollup. Shows per-client performance and the aggregate across all clients. Available only in agency mode.

Client view. Single-client scope. Defaults to the logged-in user's primary client.

Workspace view. The full workspace, without client scoping. Default for non-agency workspaces.

The views share the same underlying metrics but differ in how they segment the data.

The Core Metrics

Seven metrics show up on every dashboard. They are the minimum useful set for reading outbound performance.

Sends sent

Total messages sent in the time window. Includes all campaigns and sequences. The raw number matters less than the trend.

Delivery rate

Percentage of sent messages the receiving server accepted. A healthy fleet is over 99 percent. Below 97 percent signals a bounce or reputation problem.

Open rate

Percentage of delivered messages opened. Caveat: Apple Mail Privacy Protection inflates open rates by prefetching tracking pixels. The reported open rate is higher than the real open rate if a significant portion of recipients use Apple Mail.

Benchmark: a healthy cold outreach campaign to a tier A segment should see 45 to 60 percent open rate. Nurture campaigns to engaged contacts should see 30 to 50 percent.

Reply rate

Percentage of delivered messages that generated a reply. The single most important positive metric. A healthy cold outreach campaign sees 3 to 8 percent reply rate.

Positive reply rate

Percentage of delivered messages that generated a reply classified as interested or meeting_request. The conversion-ready metric. A healthy campaign sees 0.5 to 2 percent positive reply rate.

Bounce rate

Percentage of sent messages that bounced. Cold outreach should stay under 2 percent. Above 2 percent, the campaign auto-pauses.

Unsubscribe rate

Percentage of delivered messages that generated an unsubscribe. Should stay under 1 percent. Above 2 percent triggers auto-pause for cold outreach.

The Filter Controls

Five filters above the metric grid.

Date range. Defaults to last 30 days. Common ranges: 7 days, 30 days, 90 days, year to date, custom.

Campaign. Select one or more specific campaigns. Omit to see all campaigns.

Campaign type. Cold outreach, nurture, re-engagement, warmup. Warmup is hidden by default.

Client. Agency only. Select one or more clients to scope the view.

ICP tier. Filter to sends against tier A, B, C, or D contacts.

Filter state is URL-encoded, so sharing a filtered dashboard link works.

Metric Cards

Each metric card shows:

  • The current value
  • Change versus the previous period (absolute and percentage)
  • A sparkline for the last 30 days
  • A click-through to the underlying detail view

The change-versus-previous-period comparison is the most actionable element. A 10 percent drop in open rate week over week is a signal to investigate; a small fluctuation is normal noise.

Trend Chart

Below the metric cards is a trend chart. Default metric is reply rate, but you can switch to any of the seven core metrics plus a few derived ones (cost per reply, cost per meeting, NDS score).

The chart supports two modes. Line mode shows raw values over time. Normalized mode shows values indexed to 100 at the start of the window, which makes multiple metrics with different scales comparable.

Per-Campaign Breakdown

Below the trend chart is a table of campaigns with per-campaign metrics. Sortable by any column. The table is most useful for spotting outliers: a campaign with a much higher or much lower reply rate than its peers deserves attention.

Reply Intent Distribution

The Reply Intelligence chart shows the breakdown of reply intents across the filtered sends: interested, not interested, objection, OOO, bounce (inbound), question, meeting request, neutral, negative, spam.

A healthy distribution skews toward interested, question, and OOO with low not-interested. A skew toward negative or spam is a signal that the targeting or copy is off.

Cost and ROI

If you have configured cost tracking, the dashboard shows:

  • Total send cost (calculated from volume times per-send cost)
  • Enrichment cost
  • Verification cost
  • Cost per reply
  • Cost per meeting (if CRM integration is configured)
  • ROI (pipeline value divided by total cost)

Cost per reply is often the most useful number. It normalizes across campaigns with different volumes and surfaces which campaigns are efficient.

Deliverability Band

A banner at the top of the dashboard shows the current NDS (Nimbus Deliverability Score) and the band (Excellent, Good, Moderate, Poor, Critical). Click-through opens the full Deliverability dashboard.

A moderate or worse NDS band on the dashboard is a signal that fleet health needs attention before scaling campaigns.

Client Comparison (Agency View)

In agency mode, a cross-client comparison table shows per-client metrics side by side. Sort by any metric. Useful for agency account reviews.

Scheduled Snapshots

You can save a filtered dashboard state as a named snapshot and schedule it to be emailed or delivered to a client portal weekly or monthly.

Snapshots are stored as ScheduledReport objects with a defined filter set and cadence. The report renders as a PDF with the dashboard sections in order.

Common Mistakes

Three things new users frequently misread.

Treating open rate as the primary metric

Open rate is noisy because of Apple Mail tracking prefetch and bot scanners. Reply rate is the signal that correlates with pipeline.

Comparing small samples

A campaign with 20 sends and 1 reply shows a 5 percent reply rate, but the confidence interval is enormous. Ignore metrics on campaigns below 100 sends per step.

Ignoring the reply intent breakdown

Reply rate alone does not tell you if replies are good. A campaign with 10 percent reply rate where 9 of 10 replies are "not interested" is not a healthy campaign. Always read reply intent alongside reply rate.

Exporting the Dashboard

The dashboard supports three exports.

CSV of the current filtered view. Raw metrics per campaign for the time range.

PDF of the dashboard as rendered. Useful for client meetings.

Data-only JSON via API. Access through GET /api/v1/analytics/dashboard with the same filter parameters as the UI.

Frequently Asked Questions

How often do the metrics update?

Metrics refresh every 5 minutes. Some derived metrics (cost per reply, ROI) update hourly because they depend on CRM sync.

Can I add custom metrics to the dashboard?

Not on the default dashboard, but you can build a custom report that includes any computed metric. The custom report appears in the Reports section.

Does the dashboard respect workspace time zone?

Yes. All time-of-day aggregations (for example, sends per hour) use the workspace time zone by default. Individual campaigns with different time zones are shown in their own time zones on their detail pages.

Is there a mobile-friendly version?

The dashboard is responsive and works on tablet and phone. Some charts degrade to simpler visuals on small screens.

Useful next pages after this one: Campaign Reports for per-campaign detail views, Reply Intelligence for the classification that drives reply intent, and A/B Testing for experiment results visible in the dashboard.

Related articles

Still stuck?

Our team answers every support ticket. If the answer is not in the docs, open a ticket and we will write the missing page.