T4: Task Tree Time Totaler
approvedby Evan Story
Calculates and assigns task estimates given subtask estimates in a task tree in a Markdown document.
T4: Task Tree Time Totaler
A plugin for the Obsidian note-taking app that calculates hierarchical task time estimate sums.
Example
Suppose you have the following task tree, with time estimates on the subtasks composing each task:
- [ ] [] Task
- [ ] [] sub1
- [ ] [3h] subsub1
- [ ] [1h] subsub2
- [ ] [] sub2
- [ ] [2.5h] subsub3
Problem: you want a sum of the estimates for sub1 and sub2, and ofc for just a few like the above this is easy -- but it's tedious and error-prone to do this as your task-set grows.
Solution: Running this plugin on your task document computes the result for you, for all tasks containing subtasks, to any depth of hierarchy, and upserts the sums:
- [ ] [6.50h] Task
- [ ] [4h] sub1
- [ ] [3h] subsub1
- [ ] [1h] subsub2
- [ ] [2.50h] sub2
- [ ] [2.50h] subsub3
Features
Variable unit summation
Handles varying time units, summing in the smallest available unit (minutes), and for each task reporting the sum in the coarsest unit used among a task's subtasks, like this:
- [ ] [1.48w] Task w/ mixed subtask units
- [ ] [8.50h] Subtask1
- [ ] [8h] Subsubtask1
- [ ] [30m] Subsubtask1
- [ ] [2.25d] Subtask2
- [ ] [2d] Subsubtask1
- [ ] [6h] Subsubtask2
- [ ] [1.11w] Subtask3
- [ ] [1w] Subsubtask1
- [ ] [18h] Subsubtask2
Available units (all in calendar-time except where specified):
| unit | description |
|---|---|
| D | decade |
| Y | year |
| M | month |
| w | week |
| d | day |
| bw | business week (5 days) |
| bd | business day (8 hours) |
| h | hour |
| m | minute |
If no unit is defined, then for unit-accounting purposes a unit of minutes is assumed.
Usage
Task Formatting
Since this plugin works by regex-matching task lines, tasks must be defined as seen above.
The general format is:
any_indentation - checkbox sum_field task_desc
Which in Markdown is more specifically:
- [ ] [] some task/subtask description
Execution
NOTE: Every update overwrites any existing sum! Anything you type into the sum field will be overwritten.
- Open a doc containing tasks and subtasks.
- Click the
"Update Task Time Sums" button on the ribbon on the left side of Obsidian.
Potential to-dos
- Maintain cursor position after click.
- Configurable task format: enable user-defined task format.
- Configurable decimal-handling: enable adjustable decimal digits.
- Configurable business time-unit times: e.g. for 4-day workweek,
bw= 4 days instead of 5. - Multiple estimates, multiple sums: enables per-task estimate distribution.
- Example: doing Three-Point Method estimation (
(best-case + 4 * likeliest-case + worst-case)/6), subtasks A[1h,2h,4h]and B[2h,6h,12h]gives task-level sums[3h,8h,16h].
- Example: doing Three-Point Method estimation (
- Actual/Completed duration summation: e.g. completed subtasks having a format like
- [x] [2.0h] ([4.67h]) Completed subsubtask1would have their parenthetical durations summed. - Estimate-consumed percentage:
elapsed duration / estimated duration. - Unit tests.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.