Next: , Previous: Task Numbering, Up: Organizing Your Tasks


6.2.2.6 Task Ranks

planner-rank.el models Franklin Covey's Urgency and Importance principle. When you think about a task, there are two aspects in consideration: Urgency and Importance. You may want to do the most urgent things first, like answering an email, or you may want to do the most important things first, like reading this manual. Or much better, balance Urgency and Importance and decide what to do.

planner-rank.el can help you balance.

Urgency and Importance are both measured by scores from 0-9. The higher the score, the more you want to do it first. 9 stands for “I should have done this” and 0 stands for “I can forget this”.

If you are using the planner Deadlines feature, the Urgency score is automatically calculated from how many days are left to meet the deadline. By default, it will score 9 if the task is overdue and 0 if the deadline is years away. Please refer to the docstring of planner-rank-deadline-urgency-map-list for detail.

The task rank is calculated from Urgency and Importance scores. As different people balance urgency and importance differently, a number of planner-rank-calculate-rank-* functions are provided. The algorithms vary from a simple average to something like a weighted root mean square deviation.

The aggressive versions of these functions (planner-rank-calculate-rank-*-aggressive) will make sure if one of Urgency and Importance is high, the resulting rank will be high as well. planner-rank-calculate-rank-weighted-* functions weigh the Urgency and Important scores depending on planner-rank-importance-vs-urgency-factor.

Call planner-rank-test-algorithm on each of the functions and check the result tables to see which one you like most, and set it to planner-rank-rank-calculate-function. Alternatively, accept the defaults and tweak them when you get a better feel for ranking.

Once the Rank is calculated, the Task Priorities will be automatically reset. If the Rank is greater than or equal to planner-rank-priority-A-valve, the task priority will be ‘A’, if the Rank is between planner-rank-priority-A-valve and planner-rank-priority-B-valve, the priority will be ‘B’, else it will be ‘C’.

After setting the task importance and deadline, you can leave it as is. As the deadline approaches, the task priority will automatically be raised and the task re-colored to catch your eyes.

If you are using planner-sort-tasks (see see Making Files Pretty), you can set planner-sort-tasks-key-function to one of planner-sort-tasks-by-rank, planner-sort-tasks-by-importance, and planner-sort-tasks-by-urgency.

Options

— User Option: planner-rank-change-hook

Functions to run after planner-rank-change.

— User Option: planner-rank-priority-A-valve

Tasks with rank greater than or equal to this value will be set to priority ‘A’.

— User Option: planner-rank-priority-B-valve

Tasks with rank greater than or equal to this value and less than planner-rank-priority-A-valve will be set to priority ‘B’. Tasks with rank less than this value will be set to priority ‘C’.

— User Option: planner-rank-deadline-urgency-map-list

Defines how to calculate the Urgency score according to how many days are left to meet the deadline.

— User Option: planner-rank-default-importance

Default importance value for newly added rank.

— User Option: planner-rank-default-urgency

Default urgency value for newly added rank.

— User Option: planner-rank-importance-vs-urgency-factor

How much do you think importance is more “important” than urgency. This will be used in planner-rank-calculate-rank-weighted-* functions.

— User Option: planner-rank-rank-calculate-function

Define the function called to calculate rank.

Functions

— Function: planner-rank-change &optional importance urgency

Set the Importance and Urgency of the current task.

— Function: planner-rank-update-current-task

Recalculate rank for the current task.

— Function: planner-rank-update-all

Recalculate rank for all tasks in the current page

— Function: planner-rank-update-all

Recalculate rank for all tasks in the current page