NBA — Next Best Action Engine
ES Reference: Phase 2 (INTOS-ES-P2-001) — Next Best Action, Section 10
Overview
The Next Best Action (NBA) engine converts analytics into a small number of prioritized, actionable recommendations. Instead of a long list of things you could do, NBA tells you the one or two highest-impact actions to take right now — each with a clear reason, priority signal, and action path.
NBA starts as a rules-driven engine with AI explanations, not an opaque autonomous agent. Every recommendation stores its rule version, reason codes, input snapshot, and feedback — so you can understand why it was suggested and dismiss or snooze it with a trail.
Key Principles
- Focused, not exhaustive — a small set of top actions, not a recommendation dump
- Explainable — every recommendation shows what triggered it and why it's prioritized
- User-controlled — complete, dismiss, snooze, and mark-not-relevant on every action
- No compulsive pressure — no streaks, no unhealthy urgency, no "you're falling behind"
- Rules-driven with versioned logic — transparent scoring, not black-box AI
- Stale detection — recommendations auto-expire when inputs change
Action Sources & Priority Signals
| Action Source | Example Actions | Priority Signals |
|---|---|---|
| Data Trust | Confirm metric, resolve conflict, remove unsupported claim | Critical requirement, high reuse count, interview proximity |
| Preparation | Prepare question, learn topic, create story | Role importance, readiness gap size, due date |
| Practice | Practise P&L answer, run leadership panel simulation | Low readiness score, high importance competency |
| Application | Follow up with recruiter, update application stage/date | Inactivity duration, upcoming interview date, stage deadline |
| Career Path | Add evidence item, build skill for adjacent role, complete milestone | Dream Job gap size, milestone due date, timeline urgency |
Recommendation Lifecycle
CREATED → ACTIVE → COMPLETED
↓
DISMISSED (with reason)
↓
SNOOZED → ACTIVE (after snooze period)
↓
NOT_RELEVANT (feedback recorded)
↓
STALE (inputs changed, auto-expired)
Screens in This Feature Area
1. NBA Panel (/dashboard/nba)
The main NBA interface showing current prioritized recommendations.
Buttons & Actions:
| Button | Behavior |
|---|---|
| View Recommendation | Open detailed action brief with reasoning and context |
| Do It Now | Launch the recommended action directly (opens relevant screen) |
| Skip / Dismiss | Remove recommendation with optional reason |
| Snooze | Postpone for a configurable period (hours/days) |
| Mark Not Relevant | Provide feedback that this recommendation wasn't useful |
| See History | View past recommendations and actions taken |
2. Recommendation Detail
In-depth view of a single recommendation with full context.
What It Shows:
- What — the specific recommended action
- Why — the data, gap, or event that triggered it
- Priority — urgency × impact explanation
- Context — linked readiness component, gap, job, or competency
- Action Button — one-click navigation to complete the action
- Due Date — if time-sensitive (upcoming interview, deadline)
3. NBA History
Chronological log of past recommendations and their outcomes.
Buttons & Actions:
| Button | Behavior |
|---|---|
| Filter by Status | Completed, Dismissed, Snoozed, Not Relevant |
| Filter by Source | Data Trust, Preparation, Practice, Application, Career Path |
| View Original | See the original recommendation context |
Recommendation Data Model
Every recommendation stores:
| Field | Description |
|---|---|
ruleVersion |
Which NBA rule set generated this |
reasonCodes |
Specific rules/conditions that triggered it |
inputSnapshot |
Data state at time of generation (readiness, gaps, dates) |
priority |
Calculated urgency × impact score |
dueDate |
Recommended completion date (if applicable) |
state |
Active, Completed, Dismissed, Snoozed, Not Relevant, Stale |
actionLink |
Deep link to the screen where the action can be completed |
feedback |
User-provided reason for dismiss/not-relevant |
Anti-Patterns (What NBA Does NOT Do)
- No compulsive streaks — "3-day prep streak" pressure is explicitly avoided
- No unsupported urgency — "Apply NOW before it's too late!" without concrete reason
- No recommendation dump — you get 1-3 top actions, not a list of 20
- No opaque AI decisions — every recommendation has rule-based reasoning
- No stale persistence — recommendations auto-expire when underlying data changes
- No protected-attribute signal — recommendations never use age, gender, ethnicity, or similar attributes
Related ES Requirements
| ID | Requirement |
|---|---|
| P2-E07 | Prioritized actionable recommendations from analytics |
| P2 NBA | Store ruleVersion, reason codes, input snapshot, priority, due date, state |
| P2 NBA | Users can complete, dismiss, snooze and mark not relevant |
| P2 NBA | Avoid compulsive streak pressure and unsupported urgency |
| P2 NBA | Return focused set of top actions, not a recommendation dump |
| AC-07 | Next Best Action is focused, explainable and free of stale duplicates |
Related Docs
- [[readiness]] — NBA uses readiness gaps as primary priority signals
- [[dashboard]] — NBA recommendations appear on the dashboard for immediate visibility
- [[practice]] — NBA can trigger practice sessions for weak competency areas
- [[dream-job]] — NBA generates career-path actions toward dream job milestones
- [[analytics]] — NBA action effectiveness is tracked in analytics