ssatpractice.com Functional Specification — Launch Build

ssatpractice.com — Functional Specification
ssatpractice.com

Functional Specification — Launch Build

Target launch: June 10, 2026 · Owner: Han Se-hee · Engineer: Raphael Rocha · Version 1.6 (Daily Logic Puzzle removed)
CORE DESIGN PRINCIPLE The Core Zone is built with the seriousness of a classroom. The Speed Round Zone is built with the lightness of a playground. They live in the same site but follow fundamentally different design philosophies. Mixing them is a build error.
CORE ZONE The Classroom SPEED ROUND ZONE The Playground
What it is
Daily Assignment + Practice Tests
ThinkTrace captures full cognitive process
Debits active days (paid time)
What it is
Voca Challenge
~3 minute sessions, always free
Daily login hook, never debits days
Motivation model
Progress visualization
Title progression (4 tiers)
Content unlocks, TA feedback
NO streaks, NO leaderboards
Motivation model
Streak (Voca daily streak)
XP per correct answer
Speed feedback, instant scoring
Gamification fully embraced

1. Project Summary

Launch ssatpractice.com as a working SSAT preparation product by June 10, 2026. The platform is structured into two strictly separated zones: a Core Zone (Daily Assignment, Practice Tests) where ThinkTrace captures unbiased cognitive data, and a Speed Round Zone (Voca Challenge) where gamification drives daily engagement.

Core deliverables: (1) Daily Assignment system, (2) SSAT Practice Test system, (3) Four role-based dashboards, (4) Self-paced enrollment with day-level top-up payments, (5) ThinkTrace behavior capture layer, (6) Speed Round Zone with Voca Challenge, (7) Title progression system.

Foundational design principle: The Core Zone and the Speed Round Zone serve different purposes and must use different motivation models. Mixing them corrupts ThinkTrace data. This separation is non-negotiable.

2. User Roles

  • Student — primary user; takes Daily Assignments, Practice Tests, and Speed Round activities
  • Parent — read-only progress visibility for their child(ren)
  • Admin (full) — operations, payments, content, all student data, full ThinkTrace access
  • Admin TA (Teaching Assistant) — assigned students' ThinkTrace, intervention workflows, comment/feedback tools

3. Zone Architecture & Gamification Policy

3.1 Two-Zone Model

Every student-facing surface in ssatpractice.com belongs to one of two zones. The classification determines what motivation mechanisms are permitted.

Aspect Core Zone (ThinkTrace areas) Speed Round Zone
Surfaces Daily Assignment (Verbal/Reading/Math), Practice Tests Voca Challenge
Streaks / badges PROHIBITED ENCOURAGED
Speed rewards PROHIBITED ALLOWED (Voca only)
Leaderboards PROHIBITED PROHIBITED (per-user only)
ThinkTrace capture Full schema, all events Lightweight (completion log only, no decision-process events)
Day-debit YES (1 day per Daily Assignment completed) NO (free, always accessible)
Motivation source Progress visualization, content unlocks, Admin TA feedback Streaks, XP, titles, instant feedback

3.2 Why This Separation Exists

ThinkTrace's value depends on capturing students' authentic decision-making process. If a student is rushing to maintain a streak, comparing themselves to leaderboard rankings, or optimizing for badge speed, the resulting ThinkTrace data reflects the gamification, not their cognition.

Anti-pattern to avoid: A student rushes through 30 questions to hit a streak target, clicking choices without comparison. ThinkTrace records: hover time = 0ms, choice changes = 0, total time = 90 seconds. The data looks like a confident expert. The reality is a student gaming the system. This is exactly the data poisoning we must prevent.

3.3 Core Zone Motivation Model

Motivation in the Core Zone comes only from these sources:

  • Progress visualization: "Day X of Y" strips, "Synonyms accuracy: 60% → 75%" — facts, not rewards
  • Practice Test unlocks at 4-week intervals — the unlock itself is the milestone
  • Title progression (see Section 8) — earned through completion, not speed or accuracy
  • Content unlocks (Survival Guide audio, bonus tips) — earned through completion
  • Admin TA personalized feedback — humanized, non-automated

3.4 Forbidden in Core Zone

  • No streaks ("5 days in a row!") on Daily Assignments or Practice Tests
  • No XP / level-up animations during Verbal/Reading/Math interactions
  • No "fastest solver" badges or speed leaderboards
  • No public accuracy comparisons between students
  • No "daily login bonus" triggers tied to Core Zone activities

4. Daily Assignment System

4.1 Content Structure

  • Verbal: 10 questions (5 Synonyms + 5 Analogies)
  • Reading: 2 passages, 10 questions total
  • Math: 10 questions

Total: 30 questions per day. Total course: 60 days = 1,800 questions across 12 weeks. Delivery: Monday–Friday only.

4.2 Self-Paced Enrollment Model

  • personal_day_1_date = the date the student starts
  • Day 1, Day 2, ... Day 60 are personal — each student sees identical content sequence on their own schedule
  • Cohort_tag is metadata only (e.g., "2026-Spring")

4.3 Payment & Active-Days Wallet

  • Minimum entry: 4 weeks = 20 active days
  • Top-up packs: +5, +10, +20, +40 active days
  • Maximum cap: 60 active days (full course)
  • Day-debit trigger: when a Daily Assignment is COMPLETED (not when delivered)
  • When remaining_active_days = 0: no new Daily Assignments delivered. Speed Round Zone remains accessible.

4.4 Pause Logic

  • Reason codes: vacation, camp, illness, school_exam, other
  • Self-service for pauses ≤ 7 days; Admin TA approval required for pauses ≥ 14 days
  • Voluntary practice during a pause: tagged self_initiated_practice — does NOT debit active days

5. SSAT Practice Test System

  • 7 full Practice Tests in inventory
  • Test 1: free at signup
  • Tests 2–7: each unlocks free at 4-week intervals from personal_day_1_date
  • Early-access via per-test payment (permanent unlock)
  • ThinkTrace runs throughout the test session — same event schema
  • Auto-scored objective sections; written/short-answer sections flagged for Admin TA review

6. ThinkTrace — Behavior Capture Layer

6.1 Core Zone Capture (Full Schema)

ThinkTrace emits structured events for every Core Zone interaction:

Event Type Trigger Captured Fields
question_view Question rendered question_id, viewed_at, viewport_position
choice_hover Mouse over answer choice choice_id, hover_start, hover_end, duration_ms
choice_click Answer choice selected choice_id, clicked_at, sequence_index
answer_change Selected answer changed from_choice, to_choice, time_since_first_select_ms
passage_scroll Reading passage scrolled / re-read scroll_position_pct, direction, duration_ms
question_skip Question left without answer question_id, time_on_question_ms
question_return Returned to skipped question question_id, return_count, gap_ms
session_pause Tab blur / window minimize / 30s+ idle paused_at, resumed_at, idle_duration_ms
question_submit Final answer locked question_id, final_choice, total_time_ms, change_count

6.2 Speed Round Zone Capture (Lightweight)

In the Speed Round Zone, ThinkTrace runs in lightweight mode — completion logs only, no decision-process tracking. This is intentional: the data from gamified activities would be polluted and is not part of PrepMaster's analytical asset.

  • Events captured: session_started, item_completed (correct/incorrect), session_ended
  • Events NOT captured: choice_hover, answer_change, decision time analytics

6.3 Capture Implementation Requirements

  • Event listeners attached at the question component level (not page level)
  • Events buffered client-side, flushed every 5 seconds or on submit
  • All events carry: student_id, enrollment_id, session_id, zone ("core" / "speed_round"), question_id, event_type, timestamp_client_ms, timestamp_server
  • Network failure handling: events queued in IndexedDB, replayed on reconnect
  • ThinkTrace must be invisible to the student

6.4 Data Model

thinktrace_events

id, session_id, student_id, enrollment_id, zone,

question_id, event_type, payload (jsonb),

timestamp_client_ms, timestamp_server, client_meta

thinktrace_question_summaries

id, session_id, question_id, student_id, zone,

total_time_ms, choice_change_count, hover_pattern (jsonb),

answer_sequence (jsonb), passage_revisit_count,

idle_duration_ms, final_choice, is_correct

thinktrace_session_summaries

id, session_id, student_id, enrollment_id, session_type,

zone, personal_day_number, started_at, completed_at,

total_active_time_ms, total_idle_time_ms, section_breakdown (jsonb)

6.5 Privacy & Access

  • Students see: aggregated metrics only, never raw events
  • Parents see: weekly summary card derived from Core Zone ThinkTrace
  • Admin TA: full ThinkTrace for assigned students (Core Zone)
  • Admin (full): all students, all events, both zones
  • ThinkTrace data is never exposed to third parties or used for advertising

7. Speed Round Zone

7.1 Purpose

The Speed Round Zone is a separate, gamified module designed to give students a low-pressure reason to log in daily. Sessions are deliberately short (~3 minutes) and emphasize rhythm over depth. The zone runs alongside the Core Zone but uses fundamentally different design principles.

7.2 Module — Voca Challenge (Flashcards)

  • Content: SSAT essential vocabulary, drawn from PrepMaster's existing 133-entry vocabulary workbook + curated additions
  • Format: Speed flashcard matching — see the word, choose the synonym from 4 options
  • Session length: 20 cards per session, ~3 minutes
  • Mechanic: streak tracking, XP per correct answer, daily Voca streak counter
  • Difficulty tiering matches existing vocabulary workbook tiers
  • Always free — no day-debit, no payment gating

7.3 Speed Round Data Model

voca_sessions

id, student_id, started_at, ended_at, cards_attempted,

cards_correct, xp_earned, streak_at_session

voca_progress

id, student_id, total_xp, current_streak,

longest_streak, last_session_date

8. Title Progression System

8.1 Tier Structure

Every student carries a title that reflects their progression through the PrepMaster journey. Titles are awarded based on completion milestones, not speed or accuracy — preserving the anti-gamification policy of the Core Zone.

Tier Title Unlock Condition
Tier 1 Curious Mind Auto-assigned at signup
Tier 2 Pattern Spotter Complete first 4 weeks (20 active days)
Tier 3 Socratic Apprentice Complete first 8 weeks (40 active days) + take Test 2
Tier 4 Trap Master Complete full 12 weeks (60 active days) + take Test 4

8.2 Title Award Rules

  • Auto-evaluated nightly via Supabase cron
  • Once awarded, never revoked (even if enrollment ends)
  • Title visible on student dashboard, parent dashboard, and Admin TA student list
  • Title award triggers a celebratory in-app moment (subtle, not gamified) and an email to student + parent

8.3 Why Titles Are Different from Badges

Titles mark identity progression in PrepMaster's philosophy (curiosity → pattern recognition → self-questioning → mastery). Badges reward isolated actions ("7-day streak", "50 questions answered"). The first builds an SSAT-prep identity; the second creates anxiety-driven engagement loops. We use titles, not badges.

9. Content Unlock Rewards

9.1 Available at Launch

  • Survival Guide audio episodes — released as students complete each title tier
  • Bonus tip videos — released alongside each Practice Test unlock
  • Curated reading lists — sent via Resend email at title progression milestones

9.2 Phase 2 (Post-Launch)

  • Personalized ThinkTrace insight reports — requires 4–8 weeks of accumulated data
  • "My Trap Pattern" visualization — derived from PM-R taxonomy matching
  • Cohort comparison reports (anonymized)

10. Dashboard Specifications

10.1 Student Dashboard

  • Today's Daily Assignment card (Core Zone) — or "Rest day" / "Top up to continue"
  • Voca Challenge entry button with current streak
  • "Day X of Y purchased" progress strip with active-days remaining
  • Practice Test library — locked / unlock-on-DATE / available / completed states
  • Current title prominently displayed
  • Performance summary: accuracy by section, recent trend (no streaks for Core Zone)
  • Pause control

10.2 Parent Dashboard

  • Read-only mirror of the student's progress
  • Weekly summary card (ThinkTrace-derived: focus time, consistency, scores)
  • Speed Round engagement (login frequency, vocab progress)
  • Multi-child switcher if applicable
  • Top-up purchase entry point

10.3 Admin (Full) Dashboard

  • Roster: all students with status and current title
  • Active-days distribution alert queue
  • Revenue dashboard
  • Content management: question banks, passages, tests, vocab cards
  • ThinkTrace ops view: event volume, capture failure rate, schema health
  • Speed Round analytics: DAU, session counts, content rotation

10.4 Admin TA Dashboard

  • Assigned-students roster with title and recent activity
  • Pause approval queue
  • Written-response review queue
  • Per-student drill-down: Core Zone ThinkTrace timeline, error patterns, comments
  • Outreach trigger button (template-based Resend email)

11. Notifications & Triggers

  • Daily Assignment ready (08:00 KST, weekdays only)
  • Active days low warning (≤ 5) — to student AND parent
  • Active days depleted (= 0)
  • Test unlock available
  • Title earned — to student AND parent
  • Pause approval needed — to assigned Admin TA
  • Weekly progress summary (Sunday) — to parent only
  • No streak-loss notifications for Core Zone (streaks don't exist there)

12. Out of Scope for Launch

  • Cognitive Analysis Reports (COG-01 ~ COG-08)
  • Socratic Guide AI agent persona
  • Verbal Section trap taxonomy enforcement (PM-V series)
  • Automated ThinkTrace pattern recognition / trap matching
  • Personalized ThinkTrace insight reports for students
  • WeChat Mini Program / international payment flows beyond Stripe + Korean PG
  • Parent-to-student messaging features
  • Cross-student leaderboards or social comparison features (these are intentionally not on the roadmap)

13. Acceptance Criteria for Launch

  • A new student can sign up, pay for the 4-week minimum, and receive their first Daily Assignment the next weekday morning
  • A student can complete a Daily Assignment, see their score, and have it correctly debit one active day
  • A student with depleted active days can still access the Speed Round Zone freely
  • Every Core Zone interaction emits ThinkTrace events with no gaps; sample audit on any session passes
  • ThinkTrace event capture survives network interruption — offline events replay on reconnect
  • Speed Round Zone shows streaks and XP; Core Zone shows none of these
  • A student progresses from "Curious Mind" to "Pattern Spotter" upon 20-day completion; email fires
  • A student can take Test 1 (free) and Tests 2–7 unlock at correct intervals
  • A parent can log in and see their child's complete progress with no admin permissions
  • An Admin TA can review a student's full Core Zone ThinkTrace timeline
  • All emails fire correctly via Resend

14. Open Questions for Kickoff Meeting

  • Confirm: day-debit trigger = on completion, not on delivery
  • Top-up pack pricing — to be set before launch
  • Per-test early-unlock pricing — to be set before launch
  • PG provider for KRW payments (PortOne / Toss / Bootpay)
  • Daily Assignment send time — 08:00 KST default
  • Voca Challenge initial card pool — confirm 133-entry vocab + additions
  • ThinkTrace event flush interval — 5s default
  • ThinkTrace storage policy — retention period and aggregation strategy
  • Title award celebration UX — subtle moment design needs review