|
| 1 | +--- |
| 2 | +title: Task Prioritization Recommender Feature |
| 3 | +--- |
| 4 | + |
| 5 | +## 1. Introduction |
| 6 | + |
| 7 | +The Task Prioritization feature is designed to help students identify which tasks to focus on next |
| 8 | +within OnTrack. The system evaluates multiple factors to generate a priority score for each task, |
| 9 | +enabling students to manage their workload more effectively and reduce the risk of missed deadlines. |
| 10 | + |
| 11 | +--- |
| 12 | + |
| 13 | +## 2. Purpose |
| 14 | + |
| 15 | +The purpose of this feature is to: |
| 16 | + |
| 17 | +- Recommend tasks based on urgency and workload |
| 18 | +- Support better time management |
| 19 | +- Integrate with AI-based effort prediction for smarter prioritisation |
| 20 | + |
| 21 | +--- |
| 22 | + |
| 23 | +## 3. Approach |
| 24 | + |
| 25 | +Tasks are ranked using a **weighted priority scoring system** based on: |
| 26 | + |
| 27 | +- Deadline urgency |
| 28 | +- Estimated effort required |
| 29 | +- Current student workload |
| 30 | + |
| 31 | +--- |
| 32 | + |
| 33 | +## 4. Prioritization Logic |
| 34 | + |
| 35 | +### 4.1 Deadline Urgency |
| 36 | + |
| 37 | +Tasks with closer due dates receive higher priority. The system calculates urgency based on the |
| 38 | +number of days remaining until the task due date. |
| 39 | + |
| 40 | +#### Deadline Calculation Logic |
| 41 | + |
| 42 | +1. Retrieve the task due date from the task definition |
| 43 | +2. Calculate the number of days remaining: |
| 44 | + |
| 45 | + **days_left = due_date − current_date** |
| 46 | + - The current date is obtained using `Time.zone.today` to ensure timezone consistency |
| 47 | + - If no due date is available, the score defaults to **0** |
| 48 | + |
| 49 | +--- |
| 50 | + |
| 51 | +#### Deadline Scoring |
| 52 | + |
| 53 | +- ≤ 1 day → Score 100 |
| 54 | +- ≤ 3 days → Score 80 |
| 55 | +- ≤ 7 days → Score 60 |
| 56 | +- ≤ 14 days → Score 40 |
| 57 | +- > 14 days → Score 20 |
| 58 | +
|
| 59 | +--- |
| 60 | + |
| 61 | +#### Behaviour |
| 62 | + |
| 63 | +- Tasks due very soon receive the highest priority |
| 64 | +- Tasks with longer deadlines receive lower scores |
| 65 | +- Ensures students focus on urgent tasks first |
| 66 | + |
| 67 | +--- |
| 68 | + |
| 69 | +### 4.2 Estimated Effort |
| 70 | + |
| 71 | +Tasks requiring more effort are prioritised earlier to allow sufficient time for completion. |
| 72 | + |
| 73 | +Currently, effort is approximated using **task weighting** as a temporary measure. |
| 74 | +This will be replaced by the AI-based effort prediction feature in future. |
| 75 | + |
| 76 | +#### Effort Scoring (Current Implementation) |
| 77 | + |
| 78 | +- Weighting ≤ 10 → Score 30 |
| 79 | +- Weighting ≤ 20 → Score 50 |
| 80 | +- Weighting ≤ 40 → Score 70 |
| 81 | +- Weighting > 40 → Score 90 |
| 82 | + |
| 83 | +--- |
| 84 | + |
| 85 | +### 4.3 Workload |
| 86 | + |
| 87 | +Tasks are prioritised higher when a student has multiple competing tasks across their enrolled |
| 88 | +units. |
| 89 | + |
| 90 | +Workload is determined by a combination of: |
| 91 | + |
| 92 | +- **Number of incomplete tasks** across all active units (task pressure) |
| 93 | +- **Student target grade** (academic ambition) |
| 94 | + |
| 95 | +--- |
| 96 | + |
| 97 | +#### Target Grade Values |
| 98 | + |
| 99 | +Each project (unit) has a target grade represented numerically: |
| 100 | + |
| 101 | +- 0 → Pass |
| 102 | +- 1 → Credit |
| 103 | +- 2 → Distinction |
| 104 | +- 3 → High Distinction |
| 105 | + |
| 106 | +The workload calculation uses the **average target grade** across all enrolled units to reflect the |
| 107 | +student’s overall academic goal. |
| 108 | + |
| 109 | +--- |
| 110 | + |
| 111 | +#### Workload Calculation Logic |
| 112 | + |
| 113 | +**1. Task Pressure Score (0–100)** |
| 114 | +Based on the number of incomplete tasks: |
| 115 | + |
| 116 | +- 0–4 tasks → Score 30 (Low) |
| 117 | +- 5–9 tasks → Score 60 (Medium) |
| 118 | +- 10+ tasks → Score 90 (High) |
| 119 | + |
| 120 | +--- |
| 121 | + |
| 122 | +**2. Target Grade Score (0–100)** |
| 123 | +Based on the student’s average target grade: |
| 124 | + |
| 125 | +- High Distinction (3) → Score 90 |
| 126 | +- Distinction (2) → Score 75 |
| 127 | +- Credit (1) → Score 60 |
| 128 | +- Pass (0) → Score 40 |
| 129 | + |
| 130 | +--- |
| 131 | + |
| 132 | +**3. Final Workload Score** |
| 133 | + |
| 134 | +**Workload Score = (0.6 × Task Pressure Score) + (0.4 × Target Grade Score)** |
| 135 | + |
| 136 | +--- |
| 137 | + |
| 138 | +#### Behaviour |
| 139 | + |
| 140 | +- Students with more incomplete tasks receive higher workload scores |
| 141 | +- Students aiming for higher grades receive higher prioritisation sensitivity |
| 142 | +- Ensures personalised recommendations based on both workload and ambition |
| 143 | + |
| 144 | +--- |
| 145 | + |
| 146 | +## 5. Scoring Model |
| 147 | + |
| 148 | +### 5.1 Priority Score Formula |
| 149 | + |
| 150 | +**Priority Score = (0.5 × Deadline Score) + (0.3 × Effort Score) + (0.2 × Workload Score)** |
| 151 | + |
| 152 | +Each factor is converted into a score between **0–100**. |
| 153 | + |
| 154 | +--- |
| 155 | + |
| 156 | +### 5.2 Deadline Score |
| 157 | + |
| 158 | +| Time Remaining | Score | |
| 159 | +| -------------- | ----- | |
| 160 | +| ≤ 1 day | 100 | |
| 161 | +| ≤ 3 days | 80 | |
| 162 | +| ≤ 7 days | 60 | |
| 163 | +| ≤ 14 days | 40 | |
| 164 | +| > 14 days | 20 | |
| 165 | + |
| 166 | +--- |
| 167 | + |
| 168 | +### 5.3 Effort Score (Will be replaced with AI Effort Prediction) |
| 169 | + |
| 170 | +| Task Weighting | Score | |
| 171 | +| -------------- | ----- | |
| 172 | +| ≤ 10 | 30 | |
| 173 | +| ≤ 20 | 50 | |
| 174 | +| ≤ 40 | 70 | |
| 175 | +| > 40 | 90 | |
| 176 | + |
| 177 | +--- |
| 178 | + |
| 179 | +### 5.4 Workload Score |
| 180 | + |
| 181 | +| Workload Level | Score | |
| 182 | +| -------------- | ----- | |
| 183 | +| Low | 30 | |
| 184 | +| Medium | 60 | |
| 185 | +| High | 90 | |
| 186 | + |
| 187 | +--- |
| 188 | + |
| 189 | +## 6. Example Calculation |
| 190 | + |
| 191 | +### Task A |
| 192 | + |
| 193 | +- Due in 2 days → Deadline Score = 80 |
| 194 | +- Effort = 8 hours → Effort Score = 70 |
| 195 | +- Workload = Medium → Workload Score = 60 |
| 196 | + Priority Score = (0.5 × 80) + (0.3 × 70) + (0.2 × 60) = 40 + 21 + 12 = 73 |
| 197 | + |
| 198 | +--- |
| 199 | + |
| 200 | +### Task B |
| 201 | + |
| 202 | +- Due in 10 days → Deadline Score = 40 |
| 203 | +- Effort = 2 hours → Effort Score = 30 |
| 204 | +- Workload = Low → Workload Score = 30 |
| 205 | + |
| 206 | +Priority Score = (0.5 × 40) + (0.3 × 30) + (0.2 × 30) = 20 + 9 + 6 = 35 |
| 207 | + |
| 208 | +--- |
| 209 | + |
| 210 | +### Result |
| 211 | + |
| 212 | +Task A is prioritised higher than Task B due to a higher overall score. |
| 213 | + |
| 214 | +--- |
| 215 | + |
| 216 | +## 7. System Flow |
| 217 | + |
| 218 | +1. Retrieve all tasks for the student |
| 219 | +2. Calculate: |
| 220 | + - Deadline score |
| 221 | + - Effort score (from AI prediction) |
| 222 | + - Workload score |
| 223 | +3. Compute total priority score |
| 224 | +4. Rank tasks in descending order |
| 225 | +5. Recommend highest priority tasks to the user |
| 226 | + |
| 227 | +--- |
| 228 | + |
| 229 | +## 8. Integration |
| 230 | + |
| 231 | +- Effort scores will be derived from the **AI-Based Effort Prediction feature** |
| 232 | +- The system will consume predicted effort (in hours) and map it to scoring ranges |
| 233 | +- Designed to integrate seamlessly with backend APIs |
| 234 | + |
| 235 | +--- |
| 236 | + |
| 237 | +## 9. Design Rationale |
| 238 | + |
| 239 | +- **Deadline urgency (50%)** |
| 240 | + Highest weight to reduce missed submissions |
| 241 | + |
| 242 | +- **Effort (30%)** |
| 243 | + Encourages early start on complex tasks |
| 244 | + |
| 245 | +- **Workload (20%)** |
| 246 | + Balances tasks across multiple units using task pressure and academic ambition |
| 247 | + |
| 248 | +--- |
| 249 | + |
| 250 | +## 10. Outcome |
| 251 | + |
| 252 | +Tasks with higher priority scores will be recommended first, helping students: |
| 253 | + |
| 254 | +- Stay on track |
| 255 | +- Reduce stress |
| 256 | +- Improve task planning |
| 257 | + |
| 258 | +--- |
| 259 | + |
| 260 | +## 11. Dependencies |
| 261 | + |
| 262 | +- AI-based effort prediction feature (external team) |
| 263 | +- Task metadata (deadlines, units, etc.) |
| 264 | +- Backend API integration |
| 265 | + |
| 266 | +--- |
| 267 | + |
| 268 | +## 12. Conclusion |
| 269 | + |
| 270 | +The Task Prioritization feature enhances OnTrack by providing a structured and intelligent way to |
| 271 | +manage student tasks. By combining urgency, effort, and workload, the system delivers meaningful |
| 272 | +recommendations that improve productivity and academic outcomes. |
0 commit comments