Gamification

Graspful uses XP, streaks, and leaderboards to drive consistent daily practice. The system is calibrated so that gaming it is harder than actually learning.

Design philosophy

Gamification serves learning, not the other way around. Every mechanic exists to reinforce a specific study behavior:

  • XP — rewards quality engagement, not time spent or clicks
  • Streaks — drive daily consistency, which is the strongest predictor of course completion
  • Leaderboards — create healthy social motivation within a cohort
  • Completion estimates — connect daily effort to a tangible outcome

The target calibration is roughly 1 XP per minute of quality study. A focused 30-minute session should earn around 30 XP. This keeps the numbers intuitive for learners and administrators.

XP by activity

Different activities award different XP amounts. Harder concepts and lower memory strength increase the payout.

ActivityXP RangeNotes
Lesson (new KP)10 - 20Scales with concept difficulty
Review (correct)3 - 5Scales with memory strength (lower = more XP)
Quiz15+Based on score and question count
Section Exam25+Bonus for first-attempt pass
Diagnostic Test5 - 10Flat rate, no gaming incentive

Difficulty scaling

XP scales with concept difficulty to reward students who tackle harder material. A difficulty-8 concept awards roughly 2x the XP of a difficulty-3 concept for the same activity type. This prevents students from farming easy concepts for points.

xp-scaling-example.yaml
# XP award for completing a new lesson KP
# Base: 10 XP, scaled by concept difficulty

concept: cidr-notation
difficulty: 3
xp_awarded: 12   # 10 * (1 + 0.03 * 3) = 10.9, rounded

concept: multi-az-architecture
difficulty: 7
xp_awarded: 17   # 10 * (1 + 0.03 * 7) = 12.1...
                  # plus bonus for higher difficulty tier

# Review XP scales inversely with memory strength
# Lower memory = harder recall = more XP
concept: vpc-basics
memory_strength: 0.28
review_xp: 5     # near-forgotten, full review XP

concept: shared-responsibility
memory_strength: 0.45
review_xp: 3     # still fresh-ish, lower XP

Anti-gaming measures

The system includes several guards to ensure XP reflects actual learning, not button-mashing.

Minimum response time

Answers submitted in under 2 seconds are flagged. The response is still recorded, but XP is reduced. This prevents rapid-fire guessing without reading the question.

Diminishing returns on retries

The first two attempts at a problem award full XP. From the 3rd attempt onward, XP is significantly reduced. By that point the student has likely memorized the answer rather than understood the concept.

Daily XP cap

A cap of 500 XP per day prevents marathon grinding sessions. Research shows that distributed practice (spreading study across days) dramatically outperforms massed practice (cramming). The cap nudges students toward the better strategy. At ~1 XP/minute, 500 XP represents roughly 8 hours of study, well beyond a healthy daily session.

Streaks

A streak counts consecutive calendar days where the student earned at least 1 XP. It's the simplest and most effective engagement mechanic: just show up and do something every day.

Why streaks work

Streaks convert a vague goal ("I should study more") into a concrete daily action ("I need to answer at least one question today"). The longer the streak, the stronger the motivation to maintain it. A 30-day streak creates real psychological commitment.

Streak mechanics

  • Increment: any XP-earning activity on a new calendar day extends the streak by 1
  • Reset: missing a full calendar day resets the streak to 0
  • Timezone: streaks use the student's local timezone, set at enrollment
  • Display: current streak length and longest-ever streak are shown on the student dashboard

Leaderboards

Weekly XP leaderboards rank students within their academy or organization. Leaderboards reset every Monday at midnight (organization timezone) to give everyone a fresh start and prevent runaway leaders from discouraging others.

Scoping

Leaderboards are scoped to the organization level, so students only compete with peers studying similar material. An org admin can enable or disable leaderboards. When disabled, students still earn XP and streaks but don't see rankings.

Completion estimates

Graspful projects a completion date for each course based on the student's daily XP target and remaining content. This makes the abstract ("I'm 40% done") concrete ("At this pace, I'll finish by March 15").

completion-estimate.yaml
# Completion estimate calculation
course: aws-saa-c03
total_estimated_minutes: 2400    # from course.estimatedHours
completed_minutes: 960           # based on mastered concepts
remaining_minutes: 1440

daily_xp_target: 30              # ~30 min/day at 1 XP/min
projected_days_remaining: 48
projected_completion: "2026-05-10"

# Adjusts dynamically:
# - Faster students see earlier dates
# - Remediation time is factored in
# - Diagnostic test credit reduces remaining time

The estimate updates daily based on actual pace. Students who consistently exceed their XP target see the date pull forward. Students who slow down see it push back. This feedback loop encourages steady effort.

Configuration

Gamification settings are configured per-organization. Academies can tune the system to match their learner population and culture.

gamification-config.yaml
# Organization-level gamification settings
gamification:
  xp:
    enabled: true
    dailyCap: 500              # max XP per day (0 = unlimited)
    minResponseTimeMs: 2000    # below this, XP is reduced
    retryPenaltyAfter: 2       # reduced XP from attempt 3+

  streaks:
    enabled: true
    timezone: "America/New_York"

  leaderboards:
    enabled: true
    resetDay: "monday"         # weekly reset
    scope: "organization"      # or "course"

  completionEstimates:
    enabled: true
    defaultDailyXpTarget: 30   # used until student sets their own

Next steps

Gamification — Graspful Docs | Graspful