Skip to content

Decouple MasteryScore from SessionRotationReady (cross-session evidence requirement) #197

@davidortinau

Description

@davidortinau

Background

Filed as a follow-up to #191 (Wash's vocab-quiz scoring proposal + language-tutor SLA consultation).

The current MasteryScore algorithm conflates two distinct signals:

  1. Session rotation readiness — "I've shown enough evidence in this session to stop hammering this word; let spacing handle it."
  2. True acquisition / mastery — "This word has been acquired in long-term memory; we can confidently call it 'known'."

Today both are driven by the same MasteryScore field, which can climb 0 → 1.0 in a single session. Per SLA literature (Cepeda et al. 2006 spacing effect; Bahrick & Phelps 1987; SM-2/Leitner/FSRS families), this overclaims true mastery — eight back-to-back correct answers in one session demonstrates working-memory access, not consolidation.

Tutor's recommendation

Cap single-session contribution to MasteryScore at ~0.60–0.70, and require a successful retrieval after a ≥24h gap to climb past that. This is exactly the Pimsleur/Leitner/SM-2 family logic and is well validated (Karpicke & Roediger, 2008 — the testing effect with spacing, not just testing alone).

Proposed split

  • SessionRotationReady (UI/session layer) — aggressive thresholds OK; this is the "stop drilling in this session" signal. Latter quiz rounds rapidly empty #191's resolution is appropriate here.
  • MasteryScore (long-term acquisition estimate) — require evidence across ≥2 sessions on different days before crossing ~0.80; should decay between sessions; should NOT reach 1.0 from a single session.

Acceptance criteria (sketch)

  • Single-session correct streaks cap MasteryScore contribution at ≤0.70 (configurable constant).
  • Climbing past 0.70 requires a successful retrieval ≥24h after the previous correct retrieval.
  • Existing user data preserved monotonically.
  • Schema: verify/add LastCorrectRetrievalAt per VocabularyProgress.
  • Repro tests asserting cross-session gating BEFORE implementation.

Cross-references

  • Latter quiz rounds rapidly empty #191 — current iteration
  • Wash's proposal: .squad/decisions/inbox/wash-vocab-quiz-scoring-proposal-191.md
  • Language-tutor SLA review key quote: "The math is fine; the label is wrong."

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions