Docs
Dashboard Metrics
This page documents how dashboard metrics are calculated today, based on the current dashboard and analytics API logic.
As of February 25, 2026, the dashboard also supports a quiz filter (All quizzes or a specific quiz) and selected-quiz performance insights.
See also
For CTA outcome taxonomy and attribution setup, see Completion CTA Goals.
Dashboard cards
- Total Quizzes: Count of all quizzes where
quizzes.owner_id = current user, including drafts and published quizzes. - Published Quizzes: Count of owned quizzes where
status = "published". - Total Submissions: Count of all submission rows in the current dashboard quiz filter (de-duplicated by
(quiz_id, submission_id)key logic in the dashboard page). - Submissions this month: Count of submissions with
created_at >=UTC month start in the current dashboard quiz filter. - Leads this month: Count of rows in
leadsfor owned quizzes since period start:- Free plan: UTC month start.
- Paid plans: inferred billing period start (
current_period_end - 1 month). - Note: This card remains account-level.
Leads & submissions chart
The Leads & submissions chart reads /api/analytics/funnel-timeseries and is available on paid plans.
- Date window options:
7d,30d,90d(UTC day buckets). - Quiz filter:
quizId=all(default) or a specific owned quiz id. - Submissions series: Daily count of
submissions.created_atfor the selected quiz filter. - Leads series: Daily unique count across both:
leadscompletion_cta_leadsDeduplicated per day by(quiz_id, submission_id).
- Conversion series:
submissions / leads * 100for each day (as currently implemented). - Free plan behavior: API returns
402 PAYWALLand the UI shows upgrade messaging.
Quiz insights panel (selected quiz only)
When a specific quiz is selected in the dashboard filter, the Quiz insights panel loads:
/api/analytics/quiz-funnel- Started: Unique
(quiz_id, submission_id, run_id)runs withevent_type=start. - Reached gate: Runs with
event_type=step_viewwherestep_type=lead_gate. - Completed: Runs with
event_type=complete. - CTA clicks: Count of
submission_exit_eventswhereaction=completion_cta.
- Started: Unique
/api/analytics/question-dropoff- Reached count: Runs that viewed each block (
submission_step_events,event_type=step_view). - Answered count: Submissions that contain an answer value for that block id.
- Completion rate:
answered_count / reached_count * 100(answerable blocks only). - Drop-off after block: Runs that reached current block but not the next block.
- Reached count: Runs that viewed each block (
/api/analytics/completion-outcomes- Clicks: Completion CTA exits grouped by label/style/location/rule index.
- Lead clicks: Matching rows in
completion_cta_leads. - Outcome type: CTA
goalType(builder-defined key, for examplebooking,request_demo,watch_webinar). - Legacy rows without explicit
goalTypecan fall back to keyword classification for booking.
Note
Leads this month (billing-window aligned for paid plans) and chart leads (fixed last 7/30/90 UTC days) can diverge because they use different date windows by design.
Interpretation notes
- If submissions increase while leads stay flat, common causes are skipped lead capture, lead limits reached, or a flow without lead collection.
- Chart leads can include completion CTA lead captures (
completion_cta_leads) that are separate from lead-capture step submissions. - The leads usage card remains account-level even when a single quiz is selected.
- For best attribution quality, set CTA goal types in completion CTA settings (base and rule-specific CTAs).

