Flavors of type "Formula" can be used to generate calculations between different numeric and date fields between system fields or other flavors. These calculations can be generated both at task level and project level (portfolio).
The formula flavors can be used for both simple and more complex formulas.
Example
Think of a simple example: You have a custom field (flavor) for the "hours worked" along with a custom field (flavor) for the "hourly rate". With formula flavors, you can add these together and determine the billable revenue.
The corresponding formula (with pink formatting 😎) looks like this:
In addition, in the list view, an average or a sum can be calculated in each column with numerical values  including or without subtasks:
Using the formula editor
 The formula is entered in the uppermost field
 The result preview constantly checks the entered formula and outputs a result if possible
 Using the search field, you can search for available flavors and functions
 In the left column fields, flavors and functions are displayed, which are available in the workspace.
 In the right column of the lower area, a description and the syntax (especially relevant for functions) are shown.
 The
Insert
button can be used to insert fields, flavors and functions into the formula field if you don't want to type them yourself
Create a simple formula
 Create a flavor
 Open the flavor settings
 Choose the type
Formula
 In the formula editor, the values of the fields can be inserted via the drawer
 Choose a first value
 Set an operator (
multiply
,add
,subtract
,divide
)  Choose a second value
Note: The current result is displayed in the result preview, provided that the formula was entered correctly.  If everything looks OK, save the formula by clicking the
Save
button.
Note:
Formula flavors are edited and saved in a task in the flavor settings, but the formula applies equally to all tasks.
Available fields
Standard fields
Formula flavors can currently be used with the following fields:
FIELD  DESCRIPTION 

actualcost  Actual cost of a task 
actualduration 
Returns the actual duration of the task (in hours) 
column  Column title 
cost  Planned cost of a task 
duedate  Due date of a task/project 
duration 
Returns the planned duration of the task (in hours) 
isProject  Returns 1 if the current object is a project, otherwise 0 
isSubtask  Returns 1 if the current object is a subtask, otherwise 0 
isTask  Returns 1 if the current object is a task, otherwise 0 
startdate  Start date of a task/project 
status 
(System) status can be 0 (= Not started) 1 (= In progress) 2 (= Done) 
title 
Title of the current object 
today  Returns current date 
Custom fields (flavors)
In addition to the standard fields mentioned above, all flavors used in the workspace are also available in the formula editor in order to use their values in formulas.
Available functions and their syntax
A total of 25 different functions can currently be used in Formula Flavors. We support many of the common functions you may know from Excel or Google Sheets.
FUNCTION  DESCRIPTION  SYNTAX  EXAMPLE 

abs  Returns the absolute value of a number 
abs(...) 
abs(10)=10 
asNumber  Returns the value of the parameter as a number rounded to 2 decimals, if possible  asNumber(number)  asNumber('3.14159265359') = 3.14 
contains 
Returns Cannot be persisted via persist.
Cannot be persisted via persist. 
contains(haystack, needle[, ignoreCase]) 
 
count 
Returns the number of occurrences of the string
Cannot be persisted via persist. 
count(haystack, needle) 
count(haystack, needle) 
date  Returns the value of the parameter as date, if possible  date(date)  date("20210503T15:00Z") = Mon May 03 2021 17:00:00 GMT+0200 (Mitteleuropäische Sommerzeit) 
days 
Returns the number of days that lie between the two input dates 
days(startdate, duedate) 
days(startdate, duedate) = 5 
endsWith 
Returns
Cannot be persisted via persist. 
endsWith(haystack, needle[, ignoreCase]) 
endsWith(haystack, needle[, ignoreCase]) 
flavor  Returns the value of the flavor  flavor(name)  flavor("unicorn") = 🦄 
format  Serves for the formatting of a value within the list view. The value (or formula) to be formatted must be used as the first parameter. With the help of the 2nd parameter a prefix can be defined, with the 3rd parameter a suffix. The last parameter serves the coloring of the text content  format(expression, prefix, suffix, color)  format(cost, "Cost: ", " $", "red") 
if  Used to define a condition 
if(condition, valueTrue, valueFalse) 

indexOf 
Returns where the (
Cannot be persisted via persist. 
indexOf(haystack,needle[, index]) 
indexOf("Lieber Elefant,Einhorn oder Pegasus?","E") = 7

length 
Returns the length of the passed string.
Cannot be persisted via persist. 
length(string) 

lower 
Returns the string converted to lowercase.
Cannot be persisted via persist. 
lower(string) 

persist  Persists a field for calculation outside the task list. Must be written around the actual formula, and must be the first called function in a formula.  persist(...)  
projectFlavor 
Returns the value of the flavor from the project 
projectFlavor(...) 
projectFlavor("unicorn") = 🦄 
relation 
Returns the value of a relation flavor. The
Cannot be persisted via persist. 
relation(name[, index]) 

segment 
Splits the string
Cannot be persisted via persist. 
segment(string, separator[, index]) 
segment("Ich finde Einhörner toll."," ",2) = "Einhörner" 
sort 
Returns the sorted list contained in the string
Cannot be persisted via persist. 
sort(list, separator[, direction]) 
sort("B,C,A",",") = "A,B,C" 
startsWith 
Returns
Cannot be persisted via persist. 
startsWith(haystack, needle[, ignoreCase]) 

subString 
Returns the string between
Cannot be persisted via persist. 
subString(string, start[, end])

subString("Ein Eis bitte",4,7) = "Eis" 
sumAll 

sumAll('expression', includeSubtasks) 

sumFolder 

sumFolder('expression', includeSubtasks) 

sumSubtask 

sumSubtask('expression') 

trim 
Returns the passed string after all leading and trailing spaces have been removed. Spaces include various spaces (e.g. normal spaces or tabs) as well as all characters leading to line breaks.
Cannot be persisted via persist. 
trim(string) 

year 
Returns the year of a given date 
year(...) 
year("2021/06/21") = 2021 
Operators
*  Multiply 
/  Divide 
+  Add 
  Subtract 
&&  Logical AND 
==  Equals 
!=  Not equal 
>  Is greater 
<  Is less 
<=  Less or equal 
>=  Greater or equal 
Comments
0 comments
Please sign in to leave a comment.