TimeTonic Functions & Operators:
The Complete Guide to V2 Formulas
In TimeTonic, a formula column doesn't simply display a value: it calculates, transforms and adapts it in real time. With V2 formulas, you have access to a powerful calculation engine that combines date, text, numeric and logical functions to automate your business processes, without writing a single line of code. This guide explains how it works, what each function family does, and provides the complete list of all available functions with their exact syntax and concrete examples.
New Functions
TimeTonic's formula engine is constantly evolving. Every time our engineering team ships a new function, it appears in the table below, so you always have an up-to-date view of the latest additions, without having to dig through release notes. The functions listed here are also documented in the relevant category tables further down this guide.
| Function | Syntax | Example | Description |
|---|---|---|---|
| AVERAGE | AVERAGE(val1, val2, ...) |
AVERAGE(10, 15, 20) ➡️ 15 |
Calculates the mean of a set of numbers. |
| CEILING | CEILING(value) |
CEILING(4.3) ➡️ 5 |
Rounds a number up to the nearest integer. |
| COUNTIF | COUNTIF(value, criterion, separator) |
COUNTIF("101 205 301 50", ">100", " ") ➡️ 3 |
Counts elements in a text or relational field that match a criterion, after splitting by separator. |
| FIND | FIND(find, within, start_pos) |
FIND("A", "BANANA", 1) ➡️ 2 |
Returns the exact position of a substring (case-sensitive). |
| FLOOR | FLOOR(value) |
FLOOR(4.3) ➡️ 4 |
Rounds a number down to the nearest integer. |
| INT | INT(value) |
INT(3.7) ➡️ 3 |
Returns the integer part of a number, rounding down. |
| ISO_WEEKNUM | ISO_WEEKNUM(date) |
ISO_WEEKNUM(2026-01-01) ➡️ 1 |
Returns the ISO week number of a date (weeks start Monday; week 1 contains the first Thursday of the year). |
| LEFT | LEFT(text, number) |
LEFT("ABC1234", 3) ➡️ "ABC" |
Extracts the first n characters of a string. |
| LENGTH | LENGTH(text) |
LENGTH("Hello") ➡️ 5 |
Returns the number of characters in a string (spaces included). |
| LOWER | LOWER(text) |
LOWER("HELLO WORLD") ➡️ "hello world" |
Converts all letters to lowercase. |
| MEDIAN | MEDIAN(val1, val2, ...) |
MEDIAN(3, 1, 8, 9, 2) ➡️ 3 |
Returns the median value of a set of numbers. |
| REGEXEXTRACT | REGEXEXTRACT(text, pattern) |
REGEXEXTRACT("order n°24158", "[0-9]+") ➡️ "24158" |
Extracts the first value matching a regular expression. |
| REGEXMATCH | REGEXMATCH(text, pattern) |
REGEXMATCH("ref T51234", "([A-Z].*([0-9]){5}") ➡️ true |
Checks whether a text matches a regular expression. Returns true or false. |
| REGEXREPLACE | REGEXREPLACE(text, pattern, replacement?) |
REGEXREPLACE("Supermarket", "Super", "Hyper") ➡️ "Hypermarket" |
Replaces all matches of a regular expression with new text. |
| REPLACE | REPLACE(text, position, length, new_text) |
REPLACE("TimeTonic", 1, 4, "Demo") ➡️ "DemoTonic" |
Replaces a portion of text defined by a position and a length. |
| RIGHT | RIGHT(text, number) |
RIGHT("ABC1234", 4) ➡️ "1234" |
Extracts the last n characters of a string. |
| ROUND | ROUND(value, precision) |
ROUND(3.14159, 2) ➡️ 3.14 |
Rounds a value to the desired number of decimal places. |
| ROWID | ROWID() |
ROWID() ➡️ "jklm1234" |
Returns the unique technical identifier of a row. Allows stable row referencing. |
| SEARCH | SEARCH(find, within, start_pos) |
SEARCH("ban", "Banana", 1) ➡️ 1 |
Returns the position of a substring (case-insensitive). |
| STDEV | STDEV(val1, val2, ...) |
STDEV(4, 5, 8, 10) ➡️ 2.75 |
Calculates the standard deviation of a set of numbers. |
| SUBSTITUTE | SUBSTITUTE(text, old, new, instance?) |
SUBSTITUTE("TT-2026-01", "TT", "TM") ➡️ "TM-2026-01" |
Replaces one or more occurrences of a string with another. |
| SWITCH | SWITCH(source, val1, res1, val2, res2, ..., default) |
SWITCH(Status, "New","Urgent", "Completed","Closed", "Unknown") |
Compares an expression against multiple cases and returns the first matching result. Replaces nested IF() chains. |
| TRIM | TRIM(text) |
TRIM(" Hello world ") ➡️ "Hello world" |
Removes leading, trailing and extra internal spaces. |
| UPPER | UPPER(text) |
UPPER("lorem ipsum") ➡️ "LOREM IPSUM" |
Converts all letters to uppercase. |
| WEEKNUM | WEEKNUM(date) |
WEEKNUM(2026-01-10) ➡️ 2 |
Returns the week number of a date (weeks start Sunday; week 1 contains 1 January). |
TimeTonic formulas: far more than a simple spreadsheet
The difference between a text field and a formula column
A text field stores what you type. A formula column, on the other hand, automatically calculates its value from other columns, today's date, or rules you define. The result: your data stays up to date at all times, with no manual intervention required.
In practice, this means you can display the age of a contract in days, automatically flag out-of-stock items, or build a unique identifier from a team member's name and start date | all without leaving TimeTonic.
What functions let you automate without coding
How formulas work: the logic behind them
Functions, operators, fields and constants
Every TimeTonic formula is built from four basic building blocks. Functions are the operations to perform (calculate a date gap, convert to uppercase, round a number…). Operators compare or combine values (==, >, and…). Fields are your TimeTonic columns, referenced in the editor with the $ symbol or selected from the glossary panel. Constants are fixed values you type directly, such as a number or a quoted string.
Nesting: formulas inside formulas
The real power of V2 formulas lies in their ability to nest: the result of one function can become the argument of another. This is what allows you to build sophisticated logic in a single expression.
Here is a concrete example: determining whether a person is a minor or an adult based on their date of birth.
Here, YEAR_ADD() first calculates the majority date, then the result is compared to TODAY() via the ternary condition. Three nested elements, one readable result.
Output format: controlling what users see
Once your formula is written, the Output format tab lets you define how the result is displayed: plain text, multi-line text, URL, date (with or without time), number (with rounding and currency symbol), or geographic coordinates.
FORMAT_DATE() or FORMAT_NUMBER(), which always returns text, which is compatible with almost everything.
Operators: compare, combine, condition
Comparison, arithmetic and logical operators
Operators are the logical and arithmetic connectors of your formulas. They let you compare two values, perform mathematical operations, or combine multiple conditions.
| Name | Syntax | Example | Description |
|---|---|---|---|
| EQUAL | == |
5 == 5 ➡️ true |
Checks whether two values are equal. |
| NOT EQUAL | != |
5 != 3 ➡️ true |
Checks whether two values are different. |
| LESS THAN | < |
3 < 5 ➡️ true |
Checks whether a value is strictly less than another. |
| MORE THAN | > |
5 > 3 ➡️ true |
Checks whether a value is strictly greater than another. |
| LESS OR EQUAL | <= |
3 <= 5 ➡️ true |
Checks whether a value is less than or equal to another. |
| MORE OR EQUAL | >= |
5 >= 5 ➡️ true |
Checks whether a value is greater than or equal to another. |
| AND | and |
age > 18 and city == "London" |
Returns true if all conditions are true. |
| OR | or |
age > 18 or city == "London" |
Returns true if at least one condition is true. |
| NOT | not |
NOT age > 18 |
Inverts a condition. True if the condition is false. |
| IN | in |
IN("5", [1, 2, 3, 5]) ➡️ true |
Checks whether a value belongs to a set of values. |
| PLUS | + |
5 + 3 ➡️ 8 |
Adds two values. |
| MINUS | - |
5 - 3 ➡️ 2 |
Subtracts one value from another. |
| MULTIPLY | * |
5 * 3 ➡️ 15 |
Multiplies two values. |
| DIVIDE | / |
15 / 3 ➡️ 5 |
Divides one value by another. |
| MODULO | % |
10 % 3 ➡️ 1 |
Returns the remainder of a division. Useful for even/odd checks or cycle management. |
| POWER | ** |
2 ** 3 ➡️ 8 |
Raises a value to the power of another. |
| TERNARY CONDITION | condition ? ifTrue : ifFalse |
X > 5 ? "Yes" : "No" |
Returns one of two values based on the result of a condition. The most powerful operator for conditional display. |
Business use case: automatically qualify a lead by score
A sales rep manages their prospects in TimeTonic. Each prospect has a score from 0 to 100. Using the ternary condition, a formula column automatically displays the qualification:




