---
title: "Full list of expressions in the Analytics Editor"
slug: "full-list-of-expressions-in-the-analytics-editor"
updated: 2025-10-15T19:47:19Z
published: 2025-10-15T19:47:19Z
canonical: "support.tulip.co/full-list-of-expressions-in-the-analytics-editor"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://support.tulip.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Full list of expressions in the Analytics Editor

This article contains the full list of expressions that are available to use in the Analytics Editor.

[Using expressions in analyses](/r230/docs/how-to-use-the-expression-editor-in-the-analytics-editor) enables you to utilize your data in different ways or manipulate it into different forms.

          NOTE

          

The list of expressions in the Analytics Editor differs from the [expressions available in the App Editor](/r230/docs/full-list-of-expressions-in-the-app-editor).

## Available Expressions in the Analytics Editor

All examples are based on app Completions. So, when you use a MAXIMUM() or MINIMUM() function, for example, you are looking for the maximum or minimum value of a Variable across all completions of an app.

**SUBSTITUTE()** Within a string given in the first argument, replace all examples of the second argument with the third argument Ex. SUBSTITUTE("A734", "7", "3") This will return "A334"

**TRIM()** Removes a substring (specified by the second argument) from the front and back of the first argument.

### Typecasting Expressions

**DATETIMETOTEXT()** Converts a Datetime value to a text value that is easily readable by a human Ex. DATETIMETOTEXT(*datetime_variable*, "MMMM DD, YYYY", 'America/New_York') This will convert a datetime to Eastern Standard Time and show it in traditional date formatting like "January 1, 2019".

**Note:** The last parameter, the time zone, must come from one of the [tz database names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) listed here.

**SECONDS_TO_INTERVAL()** Converts seconds into an Interval.

SECONDS_TO_INTERVAL(seconds: Integer or Number) => Interval

Ex. SECONDS_TO_INTERVAL(20) => 0:00:20

**TEXTTOBOOLEAN()** Parses text into a Boolean.

"y", "yes", "t", "true" and "on" and any capitalized variants are recognized as true, and "n", "no", "f" "false" and "off" are recognized as false.

Ex. TEXTTOBOOLEAN("yes")

**TEXTTODATETIME()** Converts a text value into a Datetime value with the specified parameters. Commonly used if you have a Connector Function that shares a Datetime in text format and you need to convert it.

**TEXTTOINTEGER()** Parses text or Interval into an Integer.

Ex. TEXTTOINTEGER("123")

**TEXTTONUMBER()** Parses text or timestamp into a Number

Ex. TEXTTONUMBER("2.4")

**TOTEXT()** Parses anything into text.

Ex. TOTEXT(2)

### Truncated Expressions

**CEIL()** Rounds up to the nearest Integer

**FLOOR()** Rounds down to the nearest Integer

**ROUND()** Rounds a number to the specified number of decimal places. Maximum of 3 decimal places. Ex. 1 - ROUND(123.123456, 1) This will return 123.1 Ex. 2 - ROUND(123.12) This will return 123

**ROUNDDATETIME()** Truncates a Datetime value to a given unit, like month or day. Ex. ROUNDDATETIME(*datetime_variable*, "Month", "America/New_York") This will convert a datetime to just the month in Eastern Standard Time.

**Note:** The last parameter, the time zone, must come from one of the [tz database names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) listed here.

### Returned Value Expressions

**AVERAGE()** Returns the average of arguments across all completionsCompletion. Ex. AVERAGE(weight)

**AVG()** Alias for AVERAGE()

**AVERAGEFILTERED()** Returns the average of arguments across all completions, filtered to match a condition Ex. AVERAGEFILTERED(weight, temperature > 70)

**AVGFILTERED()** Alias for AVERAGEFILTERED()

**COUNT()** Returns the number of completions matching condition. Ex. COUNT(temperature > 70)

**COUNTOFCOMPLETIONS()** Returns the total number of Completion. Does not take an argument. Ex. COUNTOFCOMPLETIONS()

**FIND()** Returns the position for where the first argument occurs within the second argument.

**IF()** Based on the first argument, returns the second argument if first argument is true, or third argument if first argument is false. Ex. IF(true, 1, 2)

**ISNULL()** Returns true if the argument is null, otherwise false.

**LEFT()** Returns a substring of a text value, beginning at the position specified by the second argument.

**LEN()** Returns the length of a text value.

**LINK()** Returns the first of the arguments that is not null. Ex. LINK(weight, 70) This will return the value of *weight* if weight has a value

**MAXIMUM()** Returns the maximum of arguments across all completions EX. MAXIMUM(weight)

**MAX()** Alias for MAXIMUM()

**MAXIMUMFILTERED()** Returns the maximum of arguments across all completions, filtered to match a condition Ex. MAXIMUMFILTERED(weight, temperature > 70)

**MAXFILTERED()** Alias for MAXIMUMFILTERED()

**MID()** Returns a substring of a text value, starting at the position specified by the second argument. The third argument specifies the length of the return.

**MINIMUM()** Returns the minimum of arguments across all completions EX. MINIMUM(weight)

**MIN()** Alias for MINIMUM()

**MINIMUMFILTERED()** Returns the minimum of arguments, filtered to match a condition Ex. MINIMUMFILTERED(weight, temperature > 70)

**MINFILTERED()** Alias for MINIMUMFILTERED()

**[NULLIF()](http://www.postgresqltutorial.com/postgresql-nullif/)** The `NULLIF` function returns a null value if `argument_1` equals to `argument_2`, otherwise it returns `argument_1`. Ex. NULLIF(argument_1, argument_2) This would return null if argument_1 was 1 and argument_2 was 1

**RIGHT()** Returns a substring of a text value, ending at the position specified by the second argument.

**SUM()** Returns the sum of arguments across all completions. Ex. SUM(weight)

**SUMFILTERED()** Returns the sum of arguments across all completions, filtered to match a condition Ex. SUMFILTERED(weight, temperature > 70)

### Array Expressions

**REGEX_MATCH()** Returns an array of regular expression matches of a text value. Matches based on the given regular Expression and modifiers. This method is based on the [match JavaScript method](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match) and has 2 "modes".

When this method is given 2 arguments, it is equivalent to the following JavaScript expression:

```
text.match(new RegExp(regex))
```

When the optional parameter modifiers is provided, this method is equivalent to the following expression in JavaScript:

```
text.match(new RegExp(regex, modifiers))
```

Modifiers are [flags](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/RegExp#flags) that can be used to modify the behavior of the regex search.

**SPLIT()** Splits a text value into an Array by a specified delimiter.

---

Did you find what you were looking for?

You can also head to [community.tulip.co](https://community.tulip.co/?utm_source=intercom&amp;utm_medium=article-link&amp;utm_campaign=all) to post your question or see if others have faced a similar question!

**App Completion**

**App Completions**are a mechanism to store immutable data from a Tulip app. When an app is completed, all **Variable's**current values will be stored in the app completions tab.****This completion data can be analyzed in **Analytics.**

By default, after a Completion users will be brought back to the **Begin Screen**of your application. This behavior can be adjusted with other **Transition**types.

**Variable**

**Variables**are a location to store app information. Variables have a specific type that must match the contents they can store.

Variables are only accessible within a single application and are cleared when the app is restarted or completed.

**Datetime**

**Datetimes**are a Tulip Datatype. Datetimes represent a time in the ISO8601 format.

*ex. 2022-08-31T19:56:16+00:00*

**Interval**

**Interval**is a Tulip Datatype. Intervals represent pieces of time, represented in seconds. Intervals can be added or subtracted from **Datetime**variables.

**Boolean**

**Boolean's**are a Tulip Datatype. Booleans can have True/False (Yes/No) values.

**Connector Function**

**Connector Functions** are individual operations to interact with an HTTP or SQL Datasources. Connector Functions can have inputs and outputs, and can be called from: Triggers, Functions, Automations, and AI Agents.

Once pulled, data can be used throughout your applications.

**Integer**

**Integers**are a Tulip Datatype. Integers can have any whole number.

*ex. -5, 15, 47, 155. **NOT** 15.2, -12.73*

**Number**

**Number**is a Tulip Datatype. Numbers can be any positive or negative number. Numbers support decimals.

*ex. -5, 15, 47, 155, 15.2, -12.73*

**Expression**

A configured code snippet that returns a calculated value based on certain inputs. **Expressions**have access to all of the variables, Table Records, and any other data available to an application.

**Array**

**Arrays**are a Tulip Datatype. Arrays are a list of other variables. Every element in an array must be the same type.

Arrays are very useful when managing multiple values that represent the same information.

*ex. The measurements of 10 quality checks can be stored in an Array of Numbers, as opposed to 10 Number variables.*
