T4: Task Tree Time Totaler

approved

by Evan Story

Calculates and assigns task estimates given subtask estimates in a task tree in a Markdown document.

4 stars255 downloadsUpdated 11mo agoMIT
View on GitHub

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):

unitdescription
Ddecade
Yyear
Mmonth
wweek
dday
bwbusiness week (5 days)
bdbusiness day (8 hours)
hhour
mminute

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.

  1. Open a doc containing tasks and subtasks.
  2. Click the Σ inside a square "Update Task Time Sums" button on the ribbon on the left side of Obsidian.

Potential to-dos

  1. Maintain cursor position after click.
  2. Configurable task format: enable user-defined task format.
  3. Configurable decimal-handling: enable adjustable decimal digits.
  4. Configurable business time-unit times: e.g. for 4-day workweek, bw = 4 days instead of 5.
  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].
  6. Actual/Completed duration summation: e.g. completed subtasks having a format like - [x] [2.0h] ([4.67h]) Completed subsubtask1 would have their parenthetical durations summed.
  7. Estimate-consumed percentage: elapsed duration / estimated duration.
  8. 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.

T4: Task Tree Time Totaler | SimilarPlugins