Authenticate first. The API decides whether this account can view usage analytics or payment analytics.
Usage analytics require an active admin or super_admin. Payment data requires super_admin.
Exam Companion › Admin workspace ›Overview
Authenticated operatorEC
Your platform, at a glance.
Understand what your learners do, from practice to progress.
Reporting window LIVE API DATA
Active learners♙
—
Unique learners · selected period
Learning interactions▥
—
MCQs · flashcards · AI tutor
Practice items generated✧
—
MCQs + flashcards created
Active access◎
—
Distinct learners with current entitlement
Audience and access
Account and subscription totals
Current aggregates from the authenticated analytics API
N/ATotal user accounts
N/ATotal learner accounts
N/AActive subscriptions
N/AActive access
Active subscriptions exclude historical plan terms and pending claims. Active access includes every current entitlement source.
Subscription health
Active subscription state
Canonical recurring subscriptions currently granting access
N/Asubscriptions
No subscription state data.
This is a current-state chart. Historical subscription trends require persisted lifecycle history.
Engagement over time
How learners are using Exam Companion
Completed learning interactions, grouped by day
MCQ attemptsFlashcard reviewsAI tutor messages
Dates use UTC · today may be incomplete
Feature distribution
Where learning happens
Share of tracked interactions
—interactions
Generated content is tracked separately from practice interactions to avoid double counting.
Learner trends
Daily active learners
Distinct learners with a qualifying learning action on each date
Period unique users ≠ sum of daily active users
Generation pipeline
AI content jobs
Persisted generated items; job outcomes are not exposed by the usage API
N/ACompleted jobs
N/AFailed jobs
Job outcome metrics are unavailable from the current analytics endpoint.
▣MCQ generationDistinct generated items, not attempts—
▤Flashcards generatedPersisted content items—
Learner support
Recent learner activity
Authenticated learner records from the selected window
Active learners · period
—
Distinct learners with presence
Average DAU
N/A
Daily series not exposed by API
New learner registrations
—
Learner accounts created in the selected period
Online now
—
Current heartbeat window
Registration trend
New learner registrations
New learner accounts created on each UTC date
New registrations are distinct from active learners.
Source of truth
What counts as active?
A learner is active when the server records presence during the selected window. Online now is a separate current-heartbeat metric.
Presence values can be provisional while a session is still open. The API exposes presence_estimated for that case.
Learner support
Recent learner activity
Live learner rows from the authenticated analytics endpoint
MCQ attempts
—
Submitted answers
Flashcard reviews
—
Recorded review actions
AI tutor messages
—
Accepted learner messages
Interactions total
—
Sum of the three categories
Product engagement
Learning interactions by feature
MCQ attemptsFlashcard reviewsAI tutor messages
Durable completed interactions · UTC dates
Metric definitions
What belongs in each series
MCQOne completed answer submission, not question generation.
FlashcardsOne completed review action, not cards generated.
AI tutorOne learner message accepted, not tokens or model calls.
Generated MCQs
—
Persisted question items
Generated flashcards
—
Persisted flashcard items
Jobs completed
—
Distinct final job outcomes
Jobs failed
—
Distinct terminal failed jobs
Generated content
New practice items created
MCQs vs flashcards; distinct from learning interactions
Generated MCQsGenerated flashcards
Job outcomes
Pipeline success
—Success rate
N/Ap95 duration not instrumented
A job that retries multiple times counts once based on its terminal state. Track queue delay and p95 latency separately when available.
Payment data requires an active super_admin account. Amounts are returned in minor units and remain separated by currency.
Gross captured (—)
—
Successful captures only
Refunded (—)
—
Completed refund amounts
Net captured (—)
—
Gross less refunds; before fees
Captured payments
—
Successful payment transitions
Cash movement
Captured payments and refunds
Amounts remain separated by currency and come from durable billing events
CapturedRefunds
Payment alerts
Unread notifications
Payment success, failure, and refund transitions for this super_admin
N/A
No notifications loaded.
The dashboard polls the notification feed. It does not claim realtime delivery.
Accounting rules
How we avoid misleading revenue
Captured payment and refund events must be reconciled to canonical payment records, not raw provider webhook deliveries. Track partial refunds by amount; do not combine different currencies. Net captured is not net profit or MRR.
This page is a suggested operational observability surface. The supplied HTML does not demonstrate availability of Prometheus, worker, queue, error or tracing APIs to the dashboard.
Until telemetry is actually wired, charts should show an unavailable state and a documented reason. They must not display fabricated zeroes for queue depth, outages, costs or error rates.