Stats

Subscription stats summarize the subscriptions currently shown by the Subscriptions page filters. When you apply a subscriber search or column filter, stat cards appear above the subscriptions table. The page opens to Subscription Growth by default.

Use the Dimension selector to switch between three views:

DimensionUse it for
Message ActivityEmail delivery and engagement metrics
Subscription GrowthSubscription gains and losses
Campaign PerformanceCampaign traffic, conversions, revenue, and revenue efficiency metrics

Date Ranges

Stats can be filtered by date range:

  • Today
  • Yesterday
  • Last 7 days
  • Last 30 days
  • Last 90 days
  • Last 6 months
  • Last year
  • All time

Click any stat card to open a daily trend chart for that metric.

The same filtered subscription set is used for all dimensions. Campaign stats can also be scoped by campaign or effort filters when viewed from a campaign page.

Message Metrics

Message metrics are based on message activity for the matching subscriptions.

MetricAPI keyCount typeHow it is counted
SentsendsTotalCounts send rows from mail.subscribers_mailings.
OpensopensUnique subscription-message pairsCounts each subscription once per mailing with an Open event.
Open %open_rateRateopens / sends.
ClickersclicksUnique subscription-message pairsCounts each subscription once per mailing with a Click event.
Clicker %click_rateRateclicks / opens.
ComplaintscomplaintsUnique subscription-message pairsCounts each subscription once per mailing with an FBL event.
List-Unsubscribeslist_unsubscribesUnique subscription-message pairsCounts each subscription once per mailing with a ListUnsubscribe event.
UnsubscriptionsunsubscribesUnique subscription-message pairsCounts each subscription once per mailing with an Unsubscribe event.

Message metrics are not unique subscriber counts. The same subscription can count multiple times across different messages, but only once per message for each metric.

Subscription Growth Metrics

Subscription growth metrics count unique subscriptions gained or lost in the selected period, not raw event totals. They are grouped into Subscription Gains (+) and Subscription Losses (-) in the UI.

Gain metrics are counted from subscription history events:

MetricAPI keyCount typeHow it is counted
NewnewUnique subscriptionsCounts subscriptions with at least one New subscription history event.
DuplicateduplicateUnique subscriptionsCounts subscriptions with at least one Duplicate subscription history event.
ReactivationreactivateUnique subscriptionsCounts subscriptions with at least one Reactivate subscription history event.
RenewalrenewUnique subscriptionsCounts subscriptions with at least one Renew subscription history event.

Loss metrics use the source that best represents the final loss category:

MetricAPI keyCount typeHow it is counted
UnsubscriptionsunsubscriptionsUnique subscriptionsCounts subscriptions whose unsubscribe reason is Unsubscribe.
List Unsubscribeslist_unsubscribesUnique subscriptionsCounts subscriptions whose unsubscribe reason is List-Unsubscribe.
PrunesprunesUnique subscriptionsCounts subscriptions whose unsubscribe reason is Prune.
Hard Bounceshard_bouncesUnique subscriptionsCounts subscriptions with at least one HardBounce subscription history event.
InvalidsinvalidsUnique subscriptionsCounts subscriptions whose email has at least one verification record marked invalid or trap.
ComplaintscomplaintsUnique subscriptionsCounts subscriptions whose unsubscribe reason is FBL.

The daily stats API also supports subscribers, which counts unique subscriptions with at least one New, Duplicate, Reactivate, or Renew event for each day. It is not shown as a card in the current Subscriptions page.

Daily charts count unique subscriptions per day. Gain and hard-bounce charts use subscription history dates, reason-based loss charts use the subscription end date, and invalid charts use email verification dates.

If the Slack integration does not have a Publication Net Growth Report channel configured, the stats area includes a link to enable daily churn/net growth reports in Slack.

Campaign Metrics

Campaign metrics are shown as the Campaign dimension on the Subscriptions page and as the stats cards on campaign detail pages.

MetricAPI keyCount typeHow it is counted
Clickscampaign_clicksMixedWith campaign or effort filters, counts total campaign traffic from effort click totals or effort_visits. Without effort filters, counts unique subscription + effort visit pairs.
ConversionsconversionsTotalCounts New, Duplicate, Reactivate, and Renew subscription history events.
Conversion %conversion_rateRateconversions / campaign_clicks.
EPCepcDerived currencyrevenue / campaign_clicks.
RPMrpmDerived currency(revenue / conversions) * 1000.
RevenuerevenueTotal currencySums Angel transaction price for matching subscriptions and efforts. Returns zero or no data when Angel reporting is not configured.

Campaign Clicks are campaign traffic/visits. They are different from message Clickers, which count unique message click events.

API Reference

Subscription stats are available through two endpoints:

EndpointPurpose
GET /subscriptions/statisticsAggregated stat cards for one dimension.
GET /subscriptions/statistics/dailyDaily trend data for one metric.

Common query parameters:

ParameterDescription
dimensionmessage, subscription, or campaign. Defaults to subscription. For daily stats, this tells the API how to interpret shared metric keys such as list_unsubscribes.
metricFor daily stats: one metric key, such as opens, new, list_unsubscribes, campaign_clicks, or conversion_rate. Defaults to new for subscription, opens for message, and campaign_clicks for campaign.
date_rangetoday, yesterday, all, or a day range such as 7d, 30d, 90d, 180d, or 365d.
advanced_queryJSON subscriber search rules, using the same structure as subscriber search and dynamic segments.
publication_idFilter subscriptions by one or more publications.
activeFilter subscriptions by true, false, or lead.
campaign_filtersJSON effort filters for campaign stats, commonly {"campaign_id":123}.

Example campaign-scoped request:

GET /subscriptions/statistics?dimension=campaign&date_range=30d&campaign_filters={"campaign_id":123}

Aggregated responses include totals, rates, signup, and campaign groups. Only the selected dimension is populated; unused groups are returned empty.