Analyzes revenue trends, purchase frequency, and product performance from transaction data.
─────────────────────────────────────────────────Here is the generated skill body:
Analyze revenue trends, purchase frequency, and product performance from Braze transaction data. Use this skill when working with purchase event metrics, time-series revenue data, product-level performance, or purchase funnel analysis across any time range.
This skill covers the Braze Purchases API surface, which exposes three primary data streams:
| Endpoint | What It Returns |
|---|---|
GET /purchases/revenue_series |
| Total money spent over a time range |
GET /purchases/quantity_series | Number of purchase events over a time range |
GET /purchases/product_list | Paginated list of product IDs with purchase history |
Together, these enable revenue attribution, conversion rate analysis, product performance ranking, and purchase funnel evaluation without requiring access to raw event exports.
Apply a revenue attribution and purchase funnel lens when using this skill:
quantity_series as the top of the funnel (purchase events) and revenue_series as the outcome metric. Average order value (AOV) = revenue ÷ quantity — compute this whenever both series are available for the same window.product_list as a discovery step before drilling into product-specific revenue or quantity slices. Products not appearing in recent windows may signal inventory, catalog, or campaign gaps.Use GET /purchases/revenue_series to retrieve total monetary value of purchases over a time range.
Key parameters:
length (required): Number of days in the series, max 100unit: day (default) or weekending_at: ISO 8601 timestamp for the series endpoint (defaults to now)app_id: Scope to a single app; omit to aggregate across all appsproduct: Filter to a specific product IDWhen analyzing revenue trends:
ending_at explicitly when the analysis covers a fixed historical window — relying on the default "now" produces non-reproducible results.unit=week for trend analysis spanning more than 4 weeks to reduce noise.app_id is omitted, the response aggregates all apps — flag this in any report to avoid misattribution.Use GET /purchases/quantity_series to retrieve the count of purchase events over a time range. The parameters are identical to revenue_series.
When analyzing purchase frequency:
revenue[i] / quantity[i] for each time unit — a rising AOV with flat quantity signals upsell success; a falling AOV with rising quantity signals volume growth at lower price points.quantity = 0 as data gaps, not confirmed zero-purchase days, unless the time range is recent and operational status can be confirmed.Use GET /purchases/product_list to discover all product IDs that have been purchased. This endpoint is paginated.
Key parameters:
page: Zero-indexed page numberproduct_count: Products per page (default 255, max 1000)When using the product list:
revenue_series or quantity_series calls filtered by product.Ensure the API key in use has the following permissions before making requests:
| Operation | Required Permission |
|---|---|
| Revenue time series | purchases.revenue_series |
| Quantity time series | purchases.quantity_series |
| Product list | purchases.product_list |
If a 403 is returned, diagnose permissions before assuming the data is unavailable.
revenue_series for the current period (e.g., 30 days)revenue_series for the prior equivalent periodquantity_series for both periodsproduct_list (all pages)revenue_series with product filter over the target windowquantity_series per product to compute per-product AOVquantity_series (event volume at top of funnel)revenue_series (monetary outcome)ending_at offsets are aligned precisely to avoid gaps or overlaps.product parameter on time-series endpoints filters by a single product ID per request — batch multiple product lookups across separate calls.When presenting purchase analytics: