Analytics
Last updated on 2026-08-27
The analytics suite provides comprehensive email marketing intelligence across seven dedicated screens. From high-level KPI dashboards to granular deliverability monitoring, every metric is visualized with Recharts and backed by typed seed data.
Analytics Overview (/analytics)
The analytics overview is the entry point for all marketing intelligence.
KPI Cards
| Metric | Description | Format |
|---|---|---|
| Total Subscribers | Current subscriber count | Compact number (e.g., 28.4K) |
| Monthly Growth | Net subscriber growth this month | Percentage with trend |
| Average Open Rate | Open rate across all campaigns | Percentage |
| Average Click Rate | Click rate across all campaigns | Percentage |
| Total Revenue | Revenue attributed to email campaigns | Currency (USD) |
| Active Automations | Number of automations currently running | Count |
Data Model
interface DashboardMetrics {
totalSubscribers: number;
monthlyGrowth: number;
avgOpenRate: number;
avgClickRate: number;
totalRevenue: number;
activeAutomations: number;
}
Campaign Analytics (/analytics/campaigns)
Detailed performance analysis across all campaigns.
Features
- Campaign comparison table -- side-by-side open rates, click rates, and revenue
- Time range filtering -- filter by 7 days, 30 days, 90 days, or 12 months
- Performance charts -- bar and line charts showing campaign metrics over time
- Top performers -- highlight the best-performing campaigns by open rate, click rate, or revenue
Data Model
interface CampaignPerformanceData {
campaignId: string;
name: string;
openRate: number;
clickRate: number;
revenue: number;
}
Audience Analytics (/analytics/audience)
Track subscriber growth and engagement trends.
Features
- Growth chart -- time-series chart showing new subscribers, unsubscribes, and net growth by month
- Engagement distribution -- breakdown of subscribers by engagement tier (hot, warm, cold)
- Geographic data -- subscriber distribution by country with open rates per region
- Churn analysis -- unsubscribe rate trends and potential churn indicators
Data Models
interface SubscriberGrowthData {
month: string;
subscribers: number;
unsubscribes: number;
netGrowth: number;
}
interface EngagementDistribution {
hot: number;
warm: number;
cold: number;
}
interface GeoData {
country: string;
countryCode: string;
subscribers: number;
openRate: number;
}
Revenue Analytics (/analytics/revenue)
Track email-attributed revenue over time.
Features
- Revenue chart -- monthly revenue trend line
- Revenue per campaign -- ranked list of campaigns by revenue generated
- Revenue per automation -- ranked list of automations by revenue generated
- Total attribution -- aggregate revenue across all email touchpoints
Data Model
interface RevenueData {
month: string;
revenue: number;
}
Click Map (/analytics/click-map)
Visual email overlay showing click density on each link.
Features
- Email overlay -- rendered email with click percentage annotations on each link
- Heat-zone highlighting -- color-coded zones based on click density (high, medium, low)
- Click counts -- total clicks and unique clicks per link
- Device breakdown -- click distribution across desktop, mobile, and tablet
- Top clicked links -- ranked list with URLs, click counts, and percentages
Data Models
interface TopClickedLink {
url: string;
clicks: number;
uniqueClicks: number;
percentage: number;
}
interface DeviceBreakdown {
desktop: number;
mobile: number;
tablet: number;
}
Deliverability Dashboard (/analytics/deliverability)
Monitor email deliverability health across all sending domains.
Metrics
| Metric | Description | Healthy Range |
|---|---|---|
| Inbox Placement | Percentage of emails landing in inbox | > 95% |
| Spam Rate | Percentage flagged as spam | < 0.1% |
| Bounce Rate | Percentage of bounced emails | < 2% |
| Hard Bounce Rate | Permanent delivery failures | < 0.5% |
| Soft Bounce Rate | Temporary delivery failures | < 2% |
| Complaint Rate | Percentage of spam complaints | < 0.1% |
| Domain Reputation | Overall sending reputation score | > 90 |
ISP Breakdown
Per-provider deliverability metrics:
interface IspBreakdownItem {
provider: string; // "Gmail", "Outlook", "Yahoo", etc.
inboxRate: number;
spamRate: number;
bounceRate: number;
}
Authentication Status
Domain authentication verification:
interface AuthStatus {
spf: boolean | AuthStatusDetail;
dkim: boolean | AuthStatusDetail;
dmarc: boolean | AuthStatusDetail;
}
interface AuthStatusDetail {
verified: boolean;
recordValue: string;
}
Full Data Model
interface DeliverabilityMetrics {
inboxPlacement: number;
spamRate: number;
bounceRate: number;
hardBounceRate?: number;
softBounceRate?: number;
complaintRate: number;
domainReputation: number;
ispBreakdown: IspBreakdownItem[];
authStatus: AuthStatus;
}
Domain Authentication (/analytics/domains)
Manage and verify sending domain authentication.
Features
- Domain list -- all configured sending domains with verification status
- DNS records -- SPF, DKIM, and DMARC record details with values to add
- Verification status -- per-record verification with timestamps
- Custom tracking domain -- CNAME record for branded tracking links
Data Model
interface DomainAuth {
domain: string;
spf?: boolean;
dkim?: boolean;
dmarc?: boolean;
customTracking?: boolean;
records: DnsRecord[];
verifiedAt?: string;
}
interface DnsRecord {
type: string;
name: string;
value: string;
verified: boolean;
verifiedAt?: string;
}
Bounce Management (/analytics/bounces)
Track and manage email bounces.
Features
- Bounce log -- table of all bounce events with email, type, reason, campaign, and date
- Bounce type filtering -- filter by hard bounces or soft bounces
- Bounce reasons -- categorized reasons (mailbox full, invalid address, domain not found, etc.)
- Campaign association -- link bounces to the campaign that triggered them
- Export -- download bounce data for further analysis
Bounce Types
| Type | Description | Action |
|---|---|---|
hard |
Permanent failure (invalid address, domain not found) | Auto-suppress the address |
soft |
Temporary failure (mailbox full, server down) | Retry delivery later |
Data Model
interface BounceEntry {
id: string;
email: string;
type: 'hard' | 'soft';
reason: string;
campaignId?: string;
date?: string;
bouncedAt?: string;
}
Related Docs
- Screens -- complete screen catalog
- Campaigns -- campaign management
- Audience -- subscriber management
- Design Tokens -- chart and status colors