Admin

Team-only operations and reports. Access uses the same email allowlist as Worksheet Reports (WORKSHEET_QUALITY_ADMIN_EMAILS).

Analytics Overview

Total users (profiles):

Unique sessions (1d) (DAU):

Unique sessions (30d) (MAU):

Guest sessions (30d):

Signed-in sessions (30d):

Total generations (saved history):

Total Genie Points used (lifetime):

Paid subscribers:

Users on free trial:

Loading statistics…

DAU/MAU count distinct browser-tab sessions from page_view events (includes guests). Rolling windows: last 24 hours and last 30 days. Math try pages before this rollout used math_try_page_view — those are included too.

User Genie Points (lifetime)

Each user and weighted Genie Points consumed (text = 1 pt, image = 8 pts). Sorted by usage.

By date & model

UTC calendar date and model string stored on each generation (or <kind>-gennie when model is empty).

By user

All registered profiles and saved-generation count (0 if none). Email when available; otherwise a shortened user id.

By date

UTC calendar date across all models.

By model

Same model label as the date × model table (stored value or <kind>-gennie).

Subscriptions by plan

Distinct users grouped by current subscription tier.

Subscriptions by status

Status values from profiles (for example: none, trial, active, past_due, canceled).

Guest & Conversion

Anonymous vs signed-in traffic, acquisition channels, and the sign-in funnel (sign_in_prompt_*, sign_in_completed). Sessions may appear in both guest and signed-in counts if the user logs in mid-visit.

Guest sessions (1d):

Guest sessions (30d):

Signed-in sessions (1d):

Signed-in sessions (30d):

Sign-in prompts shown:

Sign-in prompts clicked:

Sign-ins completed (30d):

New accounts (7d):

New accounts (30d):

Prompt click-through:

Page views by path (30d)

Top landing paths from page_view (includes app routes and try pages).

Sessions by channel (30d)

Distinct tab sessions grouped by first-touch channel (UTM + referrer).

Page views by channel (30d)

Raw page-view count per acquisition channel.

Sign-in prompts shown by trigger

What caused the sign-in dialog or completion nudge (verify, share, locked tab, …).

Sign-in prompts clicked by trigger

Which triggers led to a Sign in / Create account click.

AI Model Usage

One row per outbound AI call (Claude, OpenAI, Gemini), recorded by the server in the ai_calls ledger. Includes calls that don't save a generation row (translate, OCR, grading, image post-processing). Token counts are best-effort per provider — image APIs don't return them.

Total AI calls:

Total input tokens:

Total output tokens:

Per day × model

UTC calendar date and exact model id (claude-sonnet-4-6, dall-e-3, gemini-2.5-flash-image, gpt-4.1-mini, …).

Per user × model

Email when known; sorted by call count.

Per provider

Anthropic / OpenAI / Google rollups.

Per day

All models combined per UTC day.

Per model (with tokens)

All-time totals per model. Token sums are 0 for image-only models.

Sharing

Share links created by users (shared_puzzles) and opens of those links (shared_puzzle_views, with UTM source and country attribution). Views are mapped back to a tool via the link's slug.

Total share links created:

Total share link opens:

Links created by tool

How many share links were created per tool (matchstick, jigsaw, sudoku, …).

Link opens by tool

How many times shared links for each tool were opened.

Top shared puzzles

Individual share links with the most opens (slug → tool → opens). Answers "how many times was this specific puzzle shared/opened".

Opens by source

UTM source on the opened link (twitter, facebook, whatsapp, linkedin, copy_link, or direct).

Opens by country

Best-effort country from the view ping.

Opens by date

UTC calendar date of link opens.

Product Events

First-party behavior events from POST /api/track (product_events). Wired: page views (DAU/MAU), PDF downloads (by tool, preset, and source), math try page views (by worksheet and social channel), and share clicks.

Total tracked events:

Unique sessions (1d) (DAU):

Unique sessions (30d) (MAU):

PDF downloads by tool

How many times users downloaded a PDF, grouped by tool.

Math PDF downloads by preset and source

Same rollup as select props->>'preset_id', props->>'source', count(*) from product_events where event = 'pdf_download' and tool = 'math' group by 1, 2 order by 3 desc. marketing_static = try page; app = Math Genie.

Math PDF downloads by preset

Math Genie worksheet PDF downloads, grouped by preset id (props.preset_id).

PDF downloads by source

marketing_static = try landing page; app = Math Genie in the app.

Math try page views by worksheet

Static /try/*.html landing page views (math_try_page_view).

Math try page views by channel

How visitors arrived (Pinterest, Facebook, direct, etc.) from UTM + referrer.

Share clicks by tool

Share intent (button + platform clicks) before a link is opened, grouped by tool.

Errors by tool

Client-reported tool_error events (populated once error tracking is wired).

All events by name

Every event type captured, by total count.

Events by date

All events combined per UTC day.

AI Model Routing

Pick which AI model serves each feature. Image slots can swap between DALL·E 3, Nano Banana (Gemini), and gpt-image-1. Text slots can switch between Claude versions (Sonnet 4 / 3.5 Sonnet / 3.5 Haiku / 3 Opus). Changes take effect for new requests within ~60 seconds — no redeploy.

Loading routing…

Tools

Share this link with friends & family to collect suggestions: /feedback

Choose which tool cards appear on the public home page for this browser.

Show tools on home

Uncheck to hide a card. Your choices are saved in this browser.