Skip to Content
Dashboard

Dashboard

The Dashboard is the admin analytics hub for TA training programs. It returns a single bundled response — header summaries, primary and secondary metric panels, rubric breakdowns, simulation overviews, and inline attempt history — so program coordinators can evaluate how TAs are performing in office-hours simulations.

Dashboard is a view on the attempt artifact — one endpoint (POST /attempt/dashboard) that takes a filter body and returns a DashboardBundleResponse. It is not its own artifact, so there is no /dashboard/... URL space; sibling operations (attempt search, export, refresh) live at the attempt root.

Dashboard overview showing aggregate scores by rubric standard across all cohorts

What is Dashboard?

Dashboard aggregates training data across all TAs, cohorts, and simulations into a single analytics surface. It answers questions like:

  • How are TAs scoring on Communication Skills and De-escalation rubrics this semester?
  • Which simulations (e.g., Confused Student, Aggressive Student) have the lowest pass rates?
  • What is the overall completion percentage across departments?
  • How has average score trended over the past 30 days?

Dashboard chart showing score trends over time for each rubric standard group

Dashboard returns header_metrics (total attempts, average score, completion percentage, first-attempt pass rate), primary_metrics and secondary_metrics panels, rubric/parameter/scenario breakdowns, score thresholds, AI-generated insights, and inline history with pagination.

Header metrics at a glance

Quick Start

CLI

Calls below use $GLOW_INSTANCE_URL + $GLOW_TOKEN — see Authentication to export them once.

# Fetch the full dashboard bundle (all metrics, rubrics, simulations) glow attempts dashboard # Scope to a specific cohort and date range (body merges into the request) glow attempts dashboard --body '{"cohort_ids": ["cohort-abc"], "start_date": "2025-01-01", "end_date": "2025-06-30"}' # Sibling operations on the attempt artifact (NOT under /dashboard) glow attempts search --body '{"page_size": 25, "sort_by": "score", "sort_order": "desc"}' glow attempts export glow attempts refresh

API

# Get dashboard bundle — single endpoint, filters in the body curl -X POST $GLOW_INSTANCE_URL/attempt/dashboard \ -H "Authorization: Bearer $GLOW_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "department_ids": ["dept-cs"], "start_date": "2025-01-01", "end_date": "2025-06-30" }' # Search attempt history (separate endpoint on the attempt artifact) curl -X POST $GLOW_INSTANCE_URL/attempt/search \ -H "Authorization: Bearer $GLOW_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "page_size": 20, "sort_order": "desc" }'

Filtering and Scoping

Dashboard supports composable filters in the body so you can drill down to exactly the data you need:

FilterFieldExample
Date rangestart_date, end_date"start_date": "2025-01-01"
Cohortscohort_ids["fall-2025-cs101"]
Departmentsdepartment_ids["dept-cs", "dept-math"]
Simulationssimulation_ids["sim-confused-student"]
Rolesroles["ta", "lead-ta"]
Rubric pickerrubric_ids, rubric_search"rubric_search": "de-escalation"
Scenario pickerscenario_ids, scenario_search"scenario_search": "passive"
Parameter pickerparameter_ids, parameter_search"parameter_search": "policy"
Single TAtarget_profile_idUUID of the TA profile

When target_profile_id is provided, the response includes profile_name, profile_emails, profile_primary_email, and profile_role for the scoped TA.

Rubric breakdown

Understanding the Response

The DashboardBundleResponse is organized into sections:

  • header_metrics — Top-line summary cards: total attempts, average score, completion percentage, first-attempt pass rate.
  • primary_metrics / secondary_metrics / footer_metrics — Detailed metric panels with trend data, hover tooltips, and breakdowns.
  • simulations — Metadata for each simulation (name, scenario count, rubric mappings).
  • scenarios — Per-scenario metadata for drill-down.
  • rubrics / parameters / fields — Rubric and parameter breakdowns (e.g., Communication Skills, Policy Knowledge, De-escalation).
  • thresholds — Score threshold configuration for pass/fail determination.
  • insights — AI-generated insights per section, highlighting patterns and anomalies.
  • history — Inline paginated attempt history with HistoryItem rows.
  • analytics — Filter facets (department options, cohort options, role options, date range boundaries) for rendering dropdowns.

For larger paginated history tables, use the attempt search endpoint directly — it returns the same HistoryItem shape with full pagination:

curl -X POST $GLOW_INSTANCE_URL/attempt/search \ -H "Authorization: Bearer $GLOW_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "target_profile_id": "ta-profile-uuid", "scenario_ids": ["scenario-confused-student"], "sort_by": "date", "sort_order": "desc", "page_size": 10 }'

Each HistoryItem includes attempt_id, simulation_name, score, score_status (pass/fail), persona_names_junction, num_scenarios_completed, and action flags like show_view and show_continue.

Exporting

# Export attempts as a denormalized ZIP (sibling endpoint, not under dashboard) glow attempts export

The export endpoint returns a base64-encoded ZIP with content, file_name, mime_type, and row_count.

Common Operations

TaskCLIAPI Endpoint
Dashboard metric bundleglow attempts dashboardPOST /attempt/dashboard
Attempt history searchglow attempts searchPOST /attempt/search
Export attemptsglow attempts exportPOST /attempt/export
Refresh MV cachesglow attempts refreshPOST /attempt/refresh
  • Attempt API Reference — every endpoint on the attempt artifact
  • Attempts CLI Reference — every glow attempts ... command
  • Reports — aggregate training reports (sibling view, POST /attempt/report)
  • Leaderboard — score rankings (sibling view, POST /attempt/leaderboard)
  • Practice — practice-mode view (sibling view, POST /attempt/practice)
Last updated on