Skip to main content
The Revenue Report provides comprehensive analytics for tracking e-commerce revenue, transactions, and financial performance. This report is essential for understanding your business’s financial health and optimizing for revenue growth.

What is a Revenue Report?

The Revenue Report tracks monetary transactions on your website, showing:
  • Total revenue over time
  • Number of transactions
  • Average order value
  • Revenue by geographic location
  • Revenue trends and patterns
Revenue tracking requires sending revenue data to Umami through custom events with monetary values.

Key Metrics

Total Revenue

Sum of all transaction values in the selected period

Transaction Count

Number of individual transactions completed

Average Order Value

Average revenue per transaction (Total Revenue / Transactions)

Unique Customers

Number of unique sessions that generated revenue

Revenue Report Components

The Revenue Report provides three main data views:

Time-Series Revenue Analysis

The revenue chart shows revenue trends over time, broken down by revenue event.What it includes:
  • Revenue plotted over time (day, week, or month)
  • Breakdown by event name (e.g., ‘purchase’, ‘subscription’, ‘upgrade’)
  • Visual trends and patterns
Use cases:
  • Identify seasonal trends
  • Measure impact of marketing campaigns
  • Compare revenue from different product lines
  • Spot anomalies or issues
{
  "x": "purchase",
  "t": "2024-01-15",
  "y": 12450.50
}

Setting Up Revenue Tracking

1

Install Umami Tracking

Ensure Umami tracking script is installed on your website.
2

Send Revenue Events

When a transaction occurs, send a revenue event to Umami with the transaction details.
3

Include Required Data

Each revenue event must include the revenue amount and currency code.
4

Test Implementation

Complete a test transaction and verify it appears in your Revenue Report.

Tracking Revenue Events

Basic Revenue Tracking

// Track a purchase
umami.track('purchase', {
  revenue: 99.99,
  currency: 'USD'
});

E-commerce Implementation

// After successful checkout
function handleCheckoutSuccess(orderData) {
  // Track the revenue
  umami.track('purchase', {
    revenue: orderData.total,
    currency: orderData.currency,
    // Optional: additional metadata
    orderId: orderData.id,
    productCount: orderData.items.length
  });
}

Multiple Revenue Events

Track different types of revenue separately:
// One-time purchase
umami.track('purchase', {
  revenue: 49.99,
  currency: 'USD'
});

// Subscription
umami.track('subscription', {
  revenue: 29.99,
  currency: 'USD'
});

// Upgrade
umami.track('upgrade', {
  revenue: 19.99,
  currency: 'USD'
});
Using different event names for different revenue types allows you to see revenue breakdown by source in the chart.

API Usage

curl -X POST https://your-umami-instance.com/api/reports/revenue \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "websiteId": "your-website-id",
    "parameters": {
      "startDate": "2024-01-01T00:00:00Z",
      "endDate": "2024-01-31T23:59:59Z",
      "unit": "day",
      "timezone": "America/New_York",
      "currency": "USD"
    },
    "filters": {}
  }'

Parameters

  • unit: Time grouping (day, week, month)
  • timezone: Timezone for date calculations
  • currency: Currency code (ISO 4217 format: USD, EUR, GBP, etc.)

Response Format

{
  "chart": [
    {
      "x": "purchase",
      "t": "2024-01-15",
      "y": 12450.50
    }
  ],
  "country": [
    {
      "name": "United States",
      "value": 45230.75
    }
  ],
  "total": {
    "sum": 125430.50,
    "count": 1523,
    "average": 82.36,
    "unique_count": 1401
  }
}

Use Cases and Insights

Maximize Revenue per Visitor

Analyze revenue data to identify optimization opportunities.Key questions:
  • What’s the average order value?
  • Which products/categories drive the most revenue?
  • Are there seasonal trends?
  • Which traffic sources generate the most revenue?
Actionable insights:
  • Focus on high-value customer segments
  • Optimize pricing strategies
  • Plan promotions during low-revenue periods
  • Double down on high-performing products
Combine Revenue Reports with Attribution Reports to see which marketing channels drive the highest revenue.

Revenue Metrics to Track

Revenue Growth Rate

Month-over-month or year-over-year revenue growth percentage

Average Order Value

Track trends in AOV to measure pricing and upselling effectiveness

Revenue per Visitor

Divide total revenue by total visitors to measure site effectiveness

Repeat Customer Rate

Compare unique customers to total transactions

Multi-Currency Support

Umami stores revenue in the currency you specify with each event.

Best Practices for Multi-Currency

1

Use Customer's Currency

Send revenue in the currency the customer paid in for accurate geographic analysis.
2

Consistent Currency for Reporting

Query the Revenue Report with one currency at a time for accurate totals.
3

Convert for Comparison

If you need to compare revenue across currencies, convert to a base currency in your analytics layer.
// Store in customer's currency
if (customer.country === 'UK') {
  umami.track('purchase', { revenue: 79.99, currency: 'GBP' });
} else if (customer.country === 'EU') {
  umami.track('purchase', { revenue: 89.99, currency: 'EUR' });
} else {
  umami.track('purchase', { revenue: 99.99, currency: 'USD' });
}
The Revenue Report filters by a single currency at a time. To see all revenue, you’ll need to query each currency separately and convert to a base currency.

Best Practices

  1. Track all revenue sources: Include purchases, subscriptions, upgrades, and other monetization
  2. Use consistent event names: Standardize naming conventions across your team
  3. Include transaction IDs: Add order IDs to event data for reconciliation
  4. Monitor data quality: Regularly verify revenue tracking is working correctly
  5. Set up alerts: Monitor for sudden drops or spikes in revenue
Compare your Umami revenue data with your payment processor regularly to ensure accuracy.

Troubleshooting

Common causes:
  • Tracking code not firing on all success pages
  • Failed transactions being tracked
  • Refunds not being accounted for
  • Ad blockers preventing tracking
Solutions:
  • Implement server-side revenue tracking
  • Only track on confirmed success pages
  • Implement refund tracking
  • Compare blocked vs tracked percentages
Check:
  • Tracking code loads before checkout success page
  • JavaScript errors aren’t preventing tracking
  • Currency parameter is included
  • Revenue values are numbers, not strings

Next Steps

Attribution Analysis

See which traffic sources drive revenue

Funnel Analysis

Optimize your checkout funnel to increase revenue

Build docs developers (and LLMs) love