Skip to main content

Insights

Generate weekly and daily insights from App Store data sources
The insights command generates actionable metrics and comparisons from App Store analytics and sales data, helping you track app performance over time.

Overview

Insights commands analyze your app’s data to provide:
  • Week-over-week comparisons - Compare current week metrics to previous week
  • Day-over-day comparisons - Track daily changes in subscription renewals
  • Multiple data sources - Combine analytics metadata and sales reports
  • App-scoped metrics - Automatically filter for your app and linked in-app purchases

Weekly Insights

Compare metrics between the current week and the previous week.
Required Flags:
  • --app - App ID (or ASC_APP_ID env)
  • --source - Data source: analytics or sales
  • --week - Week start date (YYYY-MM-DD, Monday)
Source-Specific Requirements:
  • sales: Requires --vendor (or ASC_VENDOR_NUMBER env)
Optional Flags:
  • --output - Output format: json (default), table, markdown
  • --pretty - Pretty-print JSON output

Analytics Source

Provides metadata-based insights from analytics report requests: Metrics:
  • completed_requests - Number of completed analytics requests
  • reports_available - Number of unique reports available
  • instances_available - Number of report instances available
  • business_conversion_rate - Not derivable (marked unavailable)
Example:
Output:

Sales Source

Provides transaction-level insights from sales reports: Metrics:
  • download_units - App downloads (free or paid)
  • monetized_units - Units with revenue (app + IAP/subscriptions linked to app)
  • units - Total units across all transaction types
  • developer_proceeds - Total developer proceeds
  • customer_price - Total customer price
  • report_rows - Number of sales report rows processed
  • active_devices - Not derivable (marked unavailable)
App Scoping: Sales insights automatically scope to:
  • Rows where Apple Identifier matches the app ID (for downloads)
  • Rows where Parent Identifier matches the app SKU or app ID (for IAP/subscriptions)
Example:
Output:

Daily Insights

Track day-over-day changes in subscription renewal metrics.
Required Flags:
  • --app - App ID (or ASC_APP_ID env)
  • --vendor - Vendor number (or ASC_VENDOR_NUMBER env)
  • --date - Report date (YYYY-MM-DD)
Optional Flags:
  • --output - Output format: json (default), table, markdown
Metrics:
  • renewal_rows - Count of rows where Subscription contains “Renewal”
  • renewal_units - Units from renewal rows
  • renewal_developer_proceeds - Developer proceeds from renewals
  • subscription_rows - Count of rows with subscription data
  • subscription_units - Units from subscription rows
  • subscription_developer_proceeds - Developer proceeds from subscriptions
  • monetized_units - Total units with revenue (app + linked IAP/subscriptions)
  • report_rows - Total rows processed
Example:
Output:

Understanding Metrics

Metric Status

  • ok - Metric calculated successfully with both current and previous period data
  • unavailable - Metric cannot be calculated (with reason in reason field)

Delta Calculations

  • delta - Absolute difference: thisWeek - lastWeek or thisDay - previousDay
  • deltaPercent - Percentage change: ((thisWeek - lastWeek) / lastWeek) * 100

Week Windows

Weeks run from Monday (start) through Sunday (end):
  • Week of 2026-02-16: 2026-02-16 (Mon) to 2026-02-22 (Sun)
  • Previous week: 2026-02-09 (Mon) to 2026-02-15 (Sun)

Data Availability

Analytics Source:
  • Requires existing analytics report requests for the app
  • Only counts completed requests within the week window
  • Reports unavailable if API key lacks analytics permissions
Sales Source:
  • Requires valid vendor number
  • Reports must be available for both the current and previous period
  • Weekly reports use the Sunday end date (e.g., 2026-02-22 for week ending Sunday)
  • Daily reports use the exact date specified
Handling Missing Data: If data is unavailable for one or both periods, metrics will show:

Subscription Renewal Tracking

Daily insights identify renewal transactions by matching the Subscription column: Recognized renewal states:
  • Exact match: “Renewal” (case-insensitive)
  • Partial match: Any value containing “renew” (e.g., “Auto-Renew Subscription”)
Example sales report row:
This row contributes to both subscription_* and renewal_* metrics.

Output Formats

JSON (Default)

Deterministic, machine-readable output for automation:

Table

Human-readable table format:

Markdown

Markdown tables for documentation:

Common Workflows

Weekly Performance Dashboard

Daily Subscription Monitor

  • Analytics - Download raw analytics and sales reports
  • Finance - Financial reports and payment data
  • Subscriptions - Manage subscription products and pricing

API Reference