7.5.1.2 Column attributes

A column definition sets the attributes of a column. The general definition looks like this:

%[WIDTH]PROPERTY[(TITLE)][{SUMMARY-TYPE}]

Except for the percent sign and the property name, all items are optional. The individual parts have the following meaning:

WIDTH

An integer specifying the width of the column in characters. If omitted, the width is determined automatically.

PROPERTY

The property that should be edited in this column. Special properties representing meta data are allowed here as well (see Special Properties).

TITLE

The header text for the column. If omitted, the property name is used.

SUMMARY-TYPE

The summary type. If specified, the column values for parent nodes are computed from the children54.

Supported summary types are:

+Sum numbers in this column.
+;%.1fLike ‘+’, but format result with ‘%.1f’.
$Currency, short for ‘+;%.2f’.
minSmallest number in column.
maxLargest number.
meanArithmetic mean of numbers.
XCheckbox status, ‘[X]’ if all children are ‘[X]’.
X/Checkbox status, ‘[n/m]’.
X%Checkbox status, ‘[n%]’.
:Sum times, HH:MM, plain numbers are minutes.
:minSmallest time value in column.
:maxLargest time value.
:meanArithmetic mean of time values.
@minMinimum age55 (in days/hours/mins/seconds).
@maxMaximum age (in days/hours/mins/seconds).
@meanArithmetic mean of ages (in days/hours/mins/seconds).
est+Add low-high estimates.

You can also define custom summary types by setting org-columns-summary-types.

The ‘est+’ summary type requires further explanation. It is used for combining estimates, expressed as low-high ranges. For example, instead of estimating a particular task will take 5 days, you might estimate it as 5–6 days if you’re fairly confident you know how much work is required, or 1–10 days if you do not really know what needs to be done. Both ranges average at 5.5 days, but the first represents a more predictable delivery.

When combining a set of such estimates, simply adding the lows and highs produces an unrealistically wide result. Instead, ‘est+’ adds the statistical mean and variance of the subtasks, generating a final estimate from the sum. For example, suppose you had ten tasks, each of which was estimated at 0.5 to 2 days of work. Straight addition produces an estimate of 5 to 20 days, representing what to expect if everything goes either extremely well or extremely poorly. In contrast, ‘est+’ estimates the full job more realistically, at 10–15 days.

Here is an example for a complete columns definition, along with allowed values56.

:COLUMNS:  %25ITEM %9Approved(Approved?){X} %Owner %11Status \
                   %10Time_Estimate{:} %CLOCKSUM %CLOCKSUM_T
:Owner_ALL:    Tammy Mark Karl Lisa Don
:Status_ALL:   "In progress" "Not started yet" "Finished" ""
:Approved_ALL: "[ ]" "[X]"

The first column, ‘%25ITEM’, means the first 25 characters of the item itself, i.e., of the headline. You probably always should start the column definition with the ‘ITEM’ specifier. The other specifiers create columns ‘Owner’ with a list of names as allowed values, for ‘Status’ with four different possible values, and for a checkbox field ‘Approved’. When no width is given after the ‘%’ character, the column is exactly as wide as it needs to be in order to fully display all values. The ‘Approved’ column does have a modified title (‘Approved?’, with a question mark). Summaries are created for the ‘Time_Estimate’ column by adding time duration expressions like HH:MM, and for the ‘Approved’ column, by providing an ‘[X]’ status if all children have been checked. The ‘CLOCKSUM’ and ‘CLOCKSUM_T’ columns are special, they lists the sums of CLOCK intervals in the subtree, either for all clocks or just for today.


Footnotes

(54)

If more than one summary type applies to the same property, the parent values are computed according to the first of them.

(55)

An age can be defined as a duration, using units defined in org-duration-units, e.g., ‘3d 1h’. If any value in the column is as such, the summary is also expressed as a duration.

(56)

Please note that the ‘COLUMNS’ definition must be on a single line; it is wrapped here only because of formatting constraints.