EVT 2026-02-18 - Stage A2/B/C/D Register, Profile, Entitlement, and Notification Deepening
DomainsDOL EnglishProduct988 words5 min read
Session scope
Phần tiêu đề “Session scope”Promote newly confirmed execution-level rules after baseline DEC-0040..0043, with focus on:
- register/login security and identity boundaries,
- payment/subscription lifecycle simplification,
- course-vs-subscription entitlement behavior,
- recommendation runtime adaptation contracts,
- nudge/achievement and notification governor details,
- scoring/streak/KPI final thresholds for V2.
Confirmed outcomes
Phần tiêu đề “Confirmed outcomes”- Recommendation runtime contract:
- Ignore includes both: (a) no click and (b) click then leave without submission.
- Ignore streak is evaluated at end-of-session (
30m idleor session exit). - Strategy change order after ignore streak threshold:
difficulty -> format -> skill. - Feedback model is full like/dislike at recommendation-cluster level.
- Cluster dislike persists for future clusters; feedback interaction does not reset ignore streak.
- If user dislikes and exits without attempt, still count
ignore +1. - Recommendation default set size and structure are locked as
5 items = 2 habit + 2 target + 1 explore, with low-inventory shrink to minimum 3. - Manual controls (
skill/difficulty/duration) are soft-priority, session-scoped across pages, and no-match uses nearest-ladder with short notice.
- Auth and identity model refinements:
- Existing email/phone entered on signup auto-switches to OTP login and auto-sends OTP.
- Contacts (email/phone) are unique per account.
- Account merge/transfer is not supported; duplicate accounts remain separate.
- Users can self-add missing email/phone and link social identities.
- Auth model shifts to password-first with OTP fallback.
- Email/phone signup requires password creation at signup + OTP verification.
- Password policy baseline: minimum 6 characters (simple baseline for V2).
- OTP policy baseline: validity 10 minutes, resend cooldown 60 seconds.
- Social account can set local password later; social username can seed display-name default.
- Phone is optional globally (not hard-required for all accounts).
- Social account without phone can still use platform normally; contact completion is nudged later.
- Trusted device window is 30 days.
- Security and account lifecycle:
- Password reset uses OTP on primary contact.
- Failed password attempts trigger temporary lock with OTP unlock path.
- New-device password login requires step-up OTP.
- Account deletion model is soft-delete 30 days with manual restore confirmation.
- When delete is initiated, monthly auto-renew is canceled immediately.
- Post hard-delete retention keeps legal finance records only.
- Contact change requires password + OTP on new contact; old contact receives security alert.
- No post-change hold window for sensitive actions.
- If social account has no usable email recovery path, fallback is CS recovery.
- Social email can be primary recovery channel when usable.
- Social account must have at least one verified recoverable contact before local-password setup.
- Contact change cooldown remains:
- email: 1/24h,
- phone: 1/7 days.
- Payment and subscription lifecycle:
- V2 package cycles: monthly auto-renew + one-time 3/6-month non-renew.
- Payment methods: card + Momo + bank QR.
- Bank QR/chuyển khoản applies to one-time only.
- If user buys monthly while one-time still active, monthly starts after one-time expiry (queue behavior).
- Monthly cancel takes effect at cycle end.
- Tier/result/credit boundary:
- Free users in Writing/Speaking can see basic score, while AI detail sections stay locked.
- Pro has no advanced AI credit.
- Purchased top-up balance is retained but usage is locked when user is outside eligible entitlement context.
- Course-vs-subscription boundary:
- Course purchase is not blocked by requiring Pro/Pro Max.
- Course checkout keeps optional add-on suggestion for Pro/Pro Max (not mandatory bundle).
- Entitlement is context-bound by default, with same-item exception:
- same exercise touched in course can be unlocked in self-study view.
- Course learners can use AI in course scope via course credit model (without requiring Pro Max).
- Course credit issuance cadence is monthly refill during course.
- When course credit exhausts, user can top-up directly (no Pro Max requirement).
- Top-up usage for course learner is course-scope only when no suitable subscription exists.
- Course exercises remain accessible after course end.
- Remaining top-up and included course credits are kept indefinitely but only usable for exercises of that course.
- Nudge, profile completion, and achievement:
- Combined daily cap for nudges is global
1/day. - If both goal and profile prompts are missing, priority is
goal first. - Badge surface strategy: profile-first with light Home mention.
- Profile progress recalculates live on current data.
- Profile visibility default is private.
- V2 achievement scope: track + display only; social sharing is deferred but data-ready.
- Milestone reward anti-abuse: one-time award per milestone.
- Display-name is optional; default uses auto-generated fun nickname (social may seed from social username).
- Academic profile minimum uses Program + Score goal, both optional with partial completion allowed.
- Payment milestone is visible to all users and is weighted in profile completion model.
- Notification governor and delivery:
1/daycap applies to engagement nudges only (not all notification types).- Same-day trigger arbitration prioritizes highest return-risk trigger.
- Overflow nudges queue to next eligible day.
- Engagement reminder sends run on all enabled channels in parallel.
- Failed channel delivery retries continue on failed channels until stop condition.
- AI-score-ready notification rule: always center entry + optional toast/push one-shot (no repeat loop).
- Scoring, streak, and KPI baseline:
- Score bands are locked to:
- 0-19 chưa đạt,
- 20-59 cần cải thiện,
- 60-79 khá,
- 80-99 giỏi,
- 100 xuất sắc.
- Scaled-score exercises normalize by max score to percent before banding.
- Unanswered objective items count as wrong.
- Streak day boundary uses user local timezone.
- Streak completion attribution uses submit timestamp.
- Freeze auto-consumes on first missed day.
- KPI minimum set:
- primary = habit retention,
- secondary growth = locked-feature upgrade conversion,
- secondary quality = recommendation-to-attempt rate.
Open items carried forward
Phần tiêu đề “Open items carried forward”- Age-gate policy finalization for DOL English web V2 was not finalized in this session.
- Duplicate-account mismatch warning surface (non-blocking hint vs no hint) remains unconfirmed.