Skip to main content
Pro Plan10 minutesIntermediate

MRR Tracking for SaaS

Track Monthly Recurring Revenue in Zenovay - connect a payment provider to monitor MRR, revenue trends, ARPU, and which traffic sources drive sales.

mrrsaassubscriptionrevenue
Last updated:
Pro Plan

Zenovay links your payment data to visitor analytics, so you can see your recurring revenue alongside the traffic, campaigns, and journeys that produced it. This article covers how to get MRR into Zenovay and what the Revenue tab shows.

How MRR tracking works

Zenovay doesn't process payments. Instead, it reads transaction data from your billing provider and joins it to the visitor who made the purchase. Once a provider is connected, Zenovay computes revenue metrics (including a recurring-revenue view) automatically from the synced transactions.

There are two ways to get revenue into Zenovay:

MethodBest for
Payment provider (Stripe, Lemon Squeezy, Polar, PayPal, Paddle)Most SaaS businesses, automatic sync via webhooks
Client-side tracking (zenovay('revenue', ...))Custom checkouts where you want to send revenue from your own code

For subscription businesses, connecting your payment provider is the recommended path, since it keeps MRR in sync without any extra code.

Connect a payment provider

  1. Open your domain's Revenue settings

    Go to Domains, open the website you want, then open its settings and select the Revenue tab.

  2. Choose your provider

    Pick one of the supported providers: Stripe, Lemon Squeezy, Polar, PayPal, or Paddle.

  3. Paste your API key

    Enter the provider API key (for PayPal, also your Client ID). Zenovay validates the key with the provider before saving.

  4. Let Zenovay set up the webhook

    For Stripe, Paddle, and PayPal, Zenovay creates the webhook on your account automatically so new transactions sync in. If auto-creation isn't possible, the form explains how to create the webhook manually and paste the signing secret.

Once connected, payments flow in and the Revenue tab populates over the next few minutes.

Info

Zenovay never stores card numbers and never processes payments. It reads aggregate transaction data (amount, currency, customer email, timestamps) from your provider to build revenue analytics.

The Revenue tab

Open your website's dashboard and select the Revenue tab to see your revenue analytics. The main chart plots daily revenue over your selected time range, with summary cards above it.

CardWhat it shows
TotalNet revenue for the period (captures minus refunds)
Avg/DayAverage daily revenue
Best DayHighest single-day revenue
TrendRecent direction vs. the prior period
RefundsRefunded amount (only appears when there are refunds)

The chart can overlay visitors against revenue, so you can see how traffic correlates with sales.

Recurring revenue metric

Zenovay's MRR view compares this month's recurring revenue to last month's and reports:

  • MRR for the current month
  • MRR growth (absolute and percentage vs. last month)
  • ARPU (average revenue per paying customer)
  • LTV (a simple estimate based on current ARPU)

This gives you a fast read on whether recurring revenue is growing or contracting month over month.

Info

Detailed MRR movement breakdowns (new vs. expansion vs. churned MRR) and trial-conversion analytics are not built-in metrics today. Track those in your billing provider's own dashboards. Zenovay focuses on connecting revenue to acquisition: which channels, campaigns, and journeys produce paying customers.

Revenue by source and campaign

The real strength of Zenovay's revenue analytics is attribution: it shows which traffic sources and campaigns actually generated revenue, not just clicks.

  • Revenue by source breaks revenue down by traffic source, with transactions, conversion rate, revenue per visitor, and average order value per source.
  • Revenue by campaign does the same by UTM campaign.

This is how you tell whether your best-converting channel is also your highest-revenue channel. See Revenue by source for details.

LTV cohorts

Pro Plan

The Retention tab includes lifetime-value cohort analysis, grouping customers by when they first paid and tracking cumulative revenue per cohort over time. Use it to see whether newer cohorts are worth more or less than older ones.

Sending revenue from your own code

If you have a custom checkout and prefer to send revenue directly, the tracker exposes a client-side API:

// Send a revenue event when a purchase completes
zenovay('revenue', 99.99, 'USD', {
  order_id: 'ORD-12345'
});

You can also attach a value to a goal:

zenovay('goal', 'purchase', {
  value: orderTotal
});

Both attribute the revenue to the visitor's current session, so it shows up in revenue-by-source and campaign reports. See Revenue tracking overview for the full client API.

Recording a payment manually

For one-off or non-provider payments, you can record a conversion through the API with an amount, currency, and optional visitor ID. Zenovay backfills attribution from the linked visitor. See Revenue attribution setup.

Best practices

Connect the provider, don't hand-roll events

For subscription businesses, connecting Stripe (or your provider) is far more reliable than sending revenue from client code, since it captures upgrades, downgrades, refunds, and renewals automatically.

Use consistent values

Decide up front whether your tracked amounts include tax, shipping, or discounts, and stick to it so your Zenovay numbers reconcile with your accounting.

Reconcile regularly

Compare Zenovay's revenue totals against your billing provider periodically. If they drift, check the webhook is still connected (the Revenue settings tab shows the last verification status).

Common issues

Revenue not appearing

  • Confirm the provider shows Connected and verified in the Revenue settings tab.
  • Check that the webhook exists on your provider account.
  • For client-side events, verify the tracking code is installed and the value is passed as a number, not a string.

Attribution looks off

  • Confirm UTM parameters are present on your inbound links.
  • Review the customer journey in the visitor's profile to see the recorded touchpoints.

Next steps

Was this article helpful?