ssatpractice.com Functional Specification — Launch Build
Functional Specification — Launch Build
| 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