# Calculations Formula Cheatsheet

### Rules

• Numbers: The dot (.) is the only symbol allowed as a decimal point (e.g., 5.20). Do not use a comma (,) for thousands. (e.g., 12999.45)
• Strings should be wrapped by quotes (‘) or double quotes (“). Examples: ‘Hello, world!’, “My name is Sullie”.
• Adding a semicolon at the end of the formula line is optional.
• Only the operators, variables, conditional statements, and functions listed below are allowed.

### Arithmetic

Operator Description
Subtract
* Multiply
/ Divide
( ) Parentheses; enclose parts of the formula to be calculated first
% Modulo; returns the remainder of a division

### Field Variables

Use values from other fields in your calculations.

Supported field types: `Single Line Text`, `Paragraph Text`, `Dropdown`, `Multiple Choice`, `Checkboxes`, `Number`, `Name`, `Email`, `Number Slider`, `Phone`, `Address`, `Date / Time`, `Website / URL `, `Rating`, `Hidden`, `Checkbox Items`, `Multiple Items`, `Dropdown Items`, `Single Item`, `Total`

Variable Pattern Variable Example Explanation
\$FX \$F1 Value of the field with ID #X (#1).
All allowed fields provide the main value of the field. A simple field provides the value of the input element. The combined fields, like Name (but not a simple one), Address, Checkboxes, etc., will have the combined value. For example the Name field, his combined value is [first last] “John Smith”.
Please note: the combined value stored in \$FX has the same formatting as the main field entry value visible on the Entry View page.
\$FX_subfield \$F1_first The value of the subfield of the field with ID #X.
This applies to the combined fields:

Field Type Subfields
name first, middle, last
email primary, secondary
date-time date, time
\$FX_n \$F1_n The value of the choice n of the checkbox field with ID #X.
The value:

• false – Not checked choice.
• the choice label (value) – Checked choice.

This applies only to the Checkboxes field and Payment Checkbox Items field.

If Dynamic Choices are enabled, choice variables will not be available.

\$FX_amount \$F12_amount The amount value of the payment field with ID #X.
Always a number, like 9.99.
This applies to all the Payment fields that can be used in calculations: `payment-checkbox`, `payment-multiple`, `payment-select`, `payment-single`, `payment-total`

### Conditional Statements

Use conditional statements to specify different formulas to be used when certain conditions are met.

#### if/else

```if ( \$F1 > 10 ):
\$F1 * 50
else:
0
endif;```

#### if/elseif/else

```if ( \$F1 < 5.2 ):
\$F1 * 50
elseif ( \$F1 >= 16 ):
F1 * 25
else:
0
endif;```

Tip: You may use as many `elseif` statements as needed.

### Logical Operators

Operator Description
&& Logical AND
|| Logical OR
! Logical NOT

#### Conditional Operators

Operator Description
== Equal to
!= Not equal to
> Greater than
< Less than
>= Greater than or equal to
<= Less than or equal to

### Functions

Function/Usage Description

#### Math

abs( value ) Returns the absolute value of a number
average( value1, [value2, …] ) Returns the average value in args
ceil( value ) Rounds number up to the next largest integer
exp ( value ) Returns e^x, where e is Euler’s numbers and x is the provided argument
floor( value ) Returns the largest integer less than or equal to a number
ln( value ) Returns the logarithm of a number, base e
log( value ) Returns the logarithm of a number, base 10
max( value1, [value2, …] ) Returns the largest value in the list of arguments
min( value1, [value2, …] ) Returns the smallest value in the list of arguments
pi() Returns pi (π) to 20 decimal places
pow( base, exponent ) Returns base raised to the power of exponent
rand( min, max ) Generates a random integer
round( value, precision ) Rounds a number to the nearest integer
sqrt( value ) Returns the square root of a number

#### String

num( string, precision = 14 ) Converts string to a number.

If precision is provided, the result value will be rounded to the given number of digits after the decimal point.

trim( string ) Strips whitespace (or other characters) from the beginning and end of the string
truncate( string, length ) Returns the first `length` characters of the string
concat( str1, [str2, …] ) Concatenates all arguments str1, str2 … strN to one string
join( separator, str1, [str2, …] ) Join arguments str1, str2 … strN to one string using the seperator
format_amount( amount ) Format the amount with a currency symbol

#### Date/Time

now( format = ‘ ‘ ) Returns the current date and time. The `format` is the WPForms datetime string format. An empty string (default value) means default format: `d-m-y H:i`.
date_diff( start, end, units = ‘days’, format = ‘ ‘ ) Calculate time range length in units. Units: `years`, `months`, `weeks`, `days`, `hours`, `minutes`, `seconds`. The `format` is the WPForms datetime string format. An empty string means that we will try to determine the right format automatically.
years( start, end, format = ‘ ‘ ) Calculate time range length in years. The `format` is the WPForms datetime string format. An empty string means that we will try to determine the right format automatically.
months(), weeks(), days(), hours(), minutes(), seconds() functions Calculate time range length. Similar to `years()` above.

#### Misc

debug( value1, [value2, … ] ) Outputs debug data to debug log on the server and to browser console when executed client side.