---
title: "Get Business Stats"
method: GET
path: "/api/admin/business"
tags: ["admin"]
---

# Get Business Stats

`GET /api/admin/business`

## Request

- Base URL: `https://api.retirementlab.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.retirementlab.app/api/admin/business`
- Auth: HTTP bearer

## Query parameters

- `gate_window_days` integer: Reporting window, in days, for the Pro-gate funnel and breakdowns.

## Response `200`

Successful Response

- BusinessStatsResponse
  - `generated_at` string, required
  - `users` UserMetrics, required
    - `total` integer, required
    - `dau` integer, required
    - `wau` integer, required
    - `mau` integer, required
    - `wau_mau_ratio` number, required
    - `visitors_30d` DailySignup[], required
      - `date` string, required
      - `count` integer, required
      - `activated` integer, required
    - `simulations_30d` SimulationsByTierDay[]
      - `date` string, required
      - `anonymous` integer, required
      - `free` integer, required
      - `pro` integer, required
  - `activation` ActivationMetrics, required
    - `activation_rate_30d` number, required
    - `median_time_to_first_value_hours` number
    - `signup_conversion_rate_30d` number, required
    - `funnel` ActivationFunnel, required
      - `visited` integer, required
      - `created_config` integer, required
      - `first_successful_run` integer, required
      - `signed_up` integer, required
  - `acquisition` AcquisitionMetrics, required
    - `sources` AcquisitionSourceMetrics[], required
      - `source` string, required
      - `traffic_type` 'paid' | 'organic' | 'unknown', required
      - `sessions` integer, required
      - `activations` integer, required
      - `sign_ups` integer, required
      - `activation_rate` number, required
    - `quality` AcquisitionQualityMetrics
      - `trailing_7d` AcquisitionQualityCohort, required
        - `window_days` integer, required
        - `cohort_start_at` string, required
        - `cohort_end_at` string, required
        - `users` integer, required
        - `open_window_users` integer, required
        - `campaign_attribution_users` integer, required
        - `landing_page_attribution_users` integer, required
        - `rows_by_dimension` object, required
      - `trailing_30d` AcquisitionQualityCohort, required
        - `window_days` integer, required
        - `cohort_start_at` string, required
        - `cohort_end_at` string, required
        - `users` integer, required
        - `open_window_users` integer, required
        - `campaign_attribution_users` integer, required
        - `landing_page_attribution_users` integer, required
        - `rows_by_dimension` object, required
    - `daily` AcquisitionDailyMetricsResponse
      - `by_traffic_type` AcquisitionDailyBySegment[], required
        - `date` string, required
        - `segments` object, required
      - `by_source` AcquisitionDailyBySegment[], required
        - `date` string, required
        - `segments` object, required
      - `top_sources` string[], required
  - `engagement` EngagementMetrics, required
    - `runs_per_user_7d` UserEngagement[], required
      - `user_display_name` string, required
      - `run_count` integer, required
      - `sweep_count` integer, required
    - `configs_per_user` UserConfigCount[], required
      - `user_display_name` string, required
      - `config_count` integer, required
    - `runs_histogram` EngagementHistogramBucket[], required
      - `bucket` string, required
      - `user_count` integer, required
    - `configs_histogram` EngagementHistogramBucket[], required
      - `bucket` string, required
      - `user_count` integer, required
    - `avg_runs_per_active_user_7d` number, required
    - `repeat_run_rate_7d` number, required
    - `edit_rerun_rate_7d` number, required
  - `feature_adoption` FeatureAdoptionMetrics
    - `entries_7d` FeatureAdoptionEntry[], required
      - `feature` string, required
      - `anonymous` integer
      - `free` integer
      - `pro` integer
      - `total` integer
    - `entries_30d` FeatureAdoptionEntry[], required
      - `feature` string, required
      - `anonymous` integer
      - `free` integer
      - `pro` integer
      - `total` integer
  - `feature_usage` FeatureUsageMetrics, required
    - `run_type_breakdown` object, required
    - `country_distribution` CountryCount[], required
      - `country` string, required
      - `config_count` integer, required
    - `sweep_variable_distribution` SweepVariableCount[], required
      - `variable` string, required
      - `count` integer, required
  - `retention` RetentionMetrics, required
    - `weekly_cohorts` WeeklyCohort[], required
      - `cohort_week` string, required
      - `cohort_size` integer, required
      - `retained` integer[], required
    - `return_rates` ReturnRateMetrics
      - `d1_eligible` integer, required
      - `d1_returned` integer, required
      - `d1_pct` number, required
      - `d7_eligible` integer, required
      - `d7_returned` integer, required
      - `d7_pct` number, required
      - `d14_eligible` integer, required
      - `d14_returned` integer, required
      - `d14_pct` number, required
    - `depth_slices` RetentionDepthSliceMetrics
      - `cohort_window_days` integer, required
      - `cohort_start_at` string, required
      - `cohort_end_at` string, required
      - `slices` RetentionDepthSlice[], required
        - `bucket` string, required
        - `users` integer, required
        - `complete_window_users` integer, required
        - `open_window_users` integer, required
        - `d1_eligible` integer, required
        - `d1_returned` integer, required
        - `d1_pct` number, required
        - `d7_eligible` integer, required
        - `d7_returned` integer, required
        - `d7_pct` number, required
        - `converted_users` integer
        - `conversion_rate` number
        - `d1_returned_or_converted_pct` number
        - `d7_returned_or_converted_pct` number
      - `anonymous_slices` RetentionDepthSlice[]
        - `bucket` string, required
        - `users` integer, required
        - `complete_window_users` integer, required
        - `open_window_users` integer, required
        - `d1_eligible` integer, required
        - `d1_returned` integer, required
        - `d1_pct` number, required
        - `d7_eligible` integer, required
        - `d7_returned` integer, required
        - `d7_pct` number, required
        - `converted_users` integer
        - `conversion_rate` number
        - `d1_returned_or_converted_pct` number
        - `d7_returned_or_converted_pct` number
      - `anonymous_conversion_rate` number
  - `device_mix` DeviceMixEntry[]
    - `device_type` string, required
    - `count` integer, required
  - `geo_distribution` UserGeoCount[]
    - `country` string, required
    - `user_count` integer, required
  - `feedback` FeedbackMetrics
    - `recent_submissions` FeedbackEntry[], required
      - `text` string, required
      - `email` string
      - `page` string
      - `user_type` string, required
      - `submitted_at` string, required
  - `monetization` MonetizationMetrics
    - `gate_funnel` GateFunnel, required
      - `window_days` integer, required
      - `window_start_at` string, required
      - `window_end_at` string, required
      - `cohort_users` integer, required
      - `cohort_label` string, required
      - `cohort_description` string, required
      - `stages` GateFunnelStage[], required
        - `stage` string, required
        - `label` string, required
        - `description` string, required
        - `users` integer, required
        - `denominator_stage` string
        - `denominator_label` string, required
        - `denominator_users` integer, required
        - `converted_users` integer, required
        - `rate` number, required
    - `most_seen_features` GatedFeature[], required
      - `feature` string, required
      - `users` integer, required
    - `most_attempted_features` GatedFeature[], required
      - `feature` string, required
      - `users` integer, required
    - `gate_breakdowns` GateBreakdowns, required
      - `feature` GateBreakdownRow[], required
        - `key` string, required
        - `scope` string, required
        - `origin` string
        - `impression_users` integer, required
        - `intent_users` integer, required
        - `blocked_users` integer, required
        - `attempt_users` integer, required
      - `surface` GateBreakdownRow[], required
        - `key` string, required
        - `scope` string, required
        - `origin` string
        - `impression_users` integer, required
        - `intent_users` integer, required
        - `blocked_users` integer, required
        - `attempt_users` integer, required
    - `legacy_gate_signal` LegacyGateSignal, required: Pre-cutover ``pro_gate_hit`` rows, reported as their own series.
      - `event_name` string, required
      - `label` string, required
      - `users` integer, required
      - `events` integer, required
      - `first_seen_at` string
      - `last_seen_at` string
      - `contract_cutover_at` string
      - `window_contract_period` 'undeclared' | 'pre_cutover' | 'crosses_cutover' | 'post_cutover', required
    - `subscriber_health` SubscriberHealth, required
      - `active_subscribers` integer, required
      - `monthly_subscribers` integer, required
      - `annual_subscribers` integer, required
      - `new_subscribers_30d` integer, required
      - `churned_30d` integer, required
      - `mrr` number, required
      - `arr` number, required
      - `active_passes` integer, required
      - `pass_revenue_30d` number, required
    - `depth_slices` MonetizationDepthSliceMetrics
      - `cohort_window_days` integer, required
      - `cohort_start_at` string, required
      - `cohort_end_at` string, required
      - `slices` MonetizationDepthSlice[], required
        - `bucket` string, required
        - `users` integer, required
        - `complete_window_users` integer, required
        - `open_window_users` integer, required
        - `pro_gate_users` integer, required
        - `pro_gate_rate` number, required
        - `upgrade_click_users` integer, required
        - `upgrade_click_rate` number, required
        - `signup_users` integer, required
        - `signup_rate` number, required
  - `exploration_depth` ExplorationDepthMetrics
    - `trailing_7d` ExplorationDepthCohort, required
      - `window_days` integer, required
      - `cohort_start_at` string, required
      - `cohort_end_at` string, required
      - `users` integer, required
      - `complete_window_users` integer, required
      - `open_window_users` integer, required
      - `journey_stages` object, required
      - `exploration_buckets` object, required
      - `median_time_to_first_result_hours` number
      - `median_active_first_session_duration_minutes` number
      - `first_result_users` integer, required
      - `meaningful_exploration_users` integer, required
      - `meaningful_exploration_rate` number, required
      - `top_depth_drivers` ExplorationDepthDriver[], required
        - `driver` string, required
        - `users` integer, required
      - `segments` object, required
    - `trailing_30d` ExplorationDepthCohort, required
      - `window_days` integer, required
      - `cohort_start_at` string, required
      - `cohort_end_at` string, required
      - `users` integer, required
      - `complete_window_users` integer, required
      - `open_window_users` integer, required
      - `journey_stages` object, required
      - `exploration_buckets` object, required
      - `median_time_to_first_result_hours` number
      - `median_active_first_session_duration_minutes` number
      - `first_result_users` integer, required
      - `meaningful_exploration_users` integer, required
      - `meaningful_exploration_rate` number, required
      - `top_depth_drivers` ExplorationDepthDriver[], required
        - `driver` string, required
        - `users` integer, required
      - `segments` object, required
  - `mcp_funnel` McpFunnelMetrics: MCP-originated funnel counts — see storage.repository.get_mcp_funnel_metrics.
    - `tool_calls_by_tier` object, required
    - `active_users` McpActiveUserWindows, required: Distinct non-test MCP users in rolling activity windows.
      - `last_24h` integer, required
      - `last_7d` integer, required
      - `last_30d` integer, required
    - `active_users_by_auth` object, required
    - `share_opens` integer, required
    - `signups` integer, required
    - `chatgpt_plugin_growth` ChatGPTPluginGrowthWindows, required
      - `last_24h` ChatGPTPluginGrowthCounts, required
        - `new_connections` integer, required
        - `new_account_connections` integer, required
        - `signups_during_oauth` integer, required
        - `called_tool` integer, required
        - `no_tool_after_24h` integer, required
        - `got_result` integer, required
        - `eligible_24h_connections` integer, required
        - `activated_24h_connections` integer, required
        - `opened_web_link` integer, required
        - `paid` integer, required
      - `last_7d` ChatGPTPluginGrowthCounts, required
        - `new_connections` integer, required
        - `new_account_connections` integer, required
        - `signups_during_oauth` integer, required
        - `called_tool` integer, required
        - `no_tool_after_24h` integer, required
        - `got_result` integer, required
        - `eligible_24h_connections` integer, required
        - `activated_24h_connections` integer, required
        - `opened_web_link` integer, required
        - `paid` integer, required
      - `last_30d` ChatGPTPluginGrowthCounts, required
        - `new_connections` integer, required
        - `new_account_connections` integer, required
        - `signups_during_oauth` integer, required
        - `called_tool` integer, required
        - `no_tool_after_24h` integer, required
        - `got_result` integer, required
        - `eligible_24h_connections` integer, required
        - `activated_24h_connections` integer, required
        - `opened_web_link` integer, required
        - `paid` integer, required
    - `checkout_starts` integer, required
    - `paid_conversions` integer, required
    - `measurement_availability` 'available' | 'not_enabled' | 'invalid_configuration', required
    - `measurement_cutover_at` string
    - `surface_windows` McpSurfaceMetrics[], required
      - `surface` 'run_result' | 'funnel_attribution' | 'run_export' | 'share_link', required
      - `windows` McpSurfaceWindow[], required
        - `window` 'last_24h' | 'last_7d', required
        - `emissions` integer, required
        - `opens` integer, required
        - `emission_to_open_proxy_ratio` number
    - `recipient_windows` McpRecipientWindow[], required
      - `window` 'last_24h' | 'last_7d', required
      - `share_opens` integer, required
      - `cta_landings` integer, required
      - `scenario_starts` integer, required
      - `signups` integer, required
      - `checkout_starts` integer, required
      - `paid_conversions` integer, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/retirementlab/apis/income-simulator-api.md) · [All operations](https://skmtc.dev/retirementlab/apis/income-simulator-api/llms.txt) · [OpenAPI document](https://skmtc.dev/retirementlab/apis/income-simulator-api/revisions/b0f00a0333fd?raw)
