Skip to main content
Astral gives you a layered view of performance data: individual athlete profiles, per-athlete fitness and running stats, and organization-wide group dashboards. All of these are available in the web app at app.nexrex.ai and through the API.

Athlete profile analytics

The athlete profile is the most complete view of a single runner. It combines their user profile, current training plan, goal race, recent activities, and cached fitness metrics into one response.
Click an athlete’s name anywhere in the app to open their profile. The profile page surfaces:
  • Current training plan — name, current week, and total weeks
  • Goal race — target event and goal finish time
  • Connected integrations — Strava, Garmin, and Apple Health connection status
  • AI insights — Rex-generated summaries for recent activities and the weekly summary
  • Attention signals — flags when an athlete’s HRV, recovery score, or VO2 Max has changed significantly week-over-week
  • Data quality score — a 0–100 score reflecting how complete the athlete’s setup is (pace zones, HR zones, VDOT, integrations, timezone, unit system)

Coach athlete metrics (batch view)

The coach_athletes_metrics endpoint returns profile and metrics data for every athlete in your organization in a single call. This is what powers the Athletes list in the dashboard.
The Athletes list in the left sidebar shows all your athletes with their current training plan, most recent activity, labels, and key fitness indicators. Use the search bar and filters to narrow by name, email, label, or assigned coach.

Fitness stats

Fitness stats give you a summary of an athlete’s training output over a rolling time window.
GET /api/v1/analytics/fitness_stats?days=30
The days parameter accepts values from 1 to 365. The response includes:
  • total_activities — number of runs completed
  • total_distance — total distance in meters
  • total_duration — total time in seconds
  • avg_pace — average pace across all activities
  • avg_heart_rate — average heart rate (when available from a connected device)
Running stats let you analyze an athlete’s training history at daily, weekly, monthly, or yearly granularity. You can switch between distance, duration, and training load as the primary metric.
GET /api/v1/analytics/running_stats
  ?from_timestamp=1743465600
  &to_timestamp=1746057600
  &range_type=weekly
  &metric_type=distance
  &user_id={athlete_user_id}
Parameters:
ParameterValuesDescription
from_timestampUnix timestampStart of the reporting window
to_timestampUnix timestampEnd of the reporting window
range_typedaily, weekly, monthly, yearlyGranularity of returned data points
metric_typedistance, duration, training_loadPrimary metric to return
timezoneIANA timezone stringUsed for day/week boundary calculations
Each data point in the response includes: distance (meters), duration (seconds), nexrex_training_load (NR ETE+), runs (count), calories, and pace zone breakdowns (pace_z1_time through pace_z5_time).

Activity stats (v2)

The activity_stats endpoint provides aggregated activity metrics from PostgreSQL and supports both daily and monthly granularity. It is faster and covers all metrics in a single response.
GET /api/v1/analytics/activity_stats?from=2026-03-01&to=2026-04-30&timezone=Asia/Tokyo&granularity=day
The granularity parameter accepts day or month. The date range cannot exceed 400 days.

Health metrics

Health metrics track resting heart rate, HRV, and VO2 Max over time.
GET /api/v1/analytics/health_metrics?from=2026-01-01&to=2026-04-30&granularity=week
The granularity parameter accepts day, week, or month.

Group-level analytics (GroupDashboard)

The Group Dashboard in the web app shows organization-wide and per-group performance. It is organized into three tabs: Overview tab
  • Weekly overview: total group distance, activities, and engagement rate for the selected week
  • Group insight: AI-generated summary for the group
  • Member activity matrix: per-athlete activity snapshot for the top members
Groups tab
  • Cross-group comparison with a configurable analytics period (7, 14, or 30 days, or a custom date range)
  • Per-group totals for distance, activities, and engagement
  • Click any group to drill into that group’s stats
Plans tab
  • Active training plans across the organization
  • Plan progress by group and by individual athlete
The Group Dashboard is available when you have at least one group in your organization. Navigate to Analytics in the left sidebar of the web app to access it.

Running streaks

Running streak data shows current and longest streak, plus a calendar view of active days.
POST /api/v1/analytics/running_streaks
{
  "user_id": "{athlete_user_id}",
  "days": 90,
  "timezone": "America/New_York"
}

Metrics charts

Metrics charts return time-series data ready for visualization, including daily distance with trends, weekly training load (NR ETE+) with a 4-week trend, and resting heart rate with a 30-day trend.
GET /api/v1/analytics/user_metrics_charts?user_id={athlete_user_id}
For a compact summary version suitable for dashboard tiles:
GET /api/v1/analytics/user_metrics_summary?user_id={athlete_user_id}