Using Formulas for Reporting and Mapping

Supplied lets you transform and compute values using formulas. Formulas can combine numbers, text, variables (fields from your data), and functions such as IF() and DATEVALUE().

Use formulas to:

  • clean up uploaded data

  • extract structured values from free text (e.g., country/city from addresses)

  • create conditional rules

build computed fields for reporting and exports

Quick start

1) Use fields as variables

To reference a field from your uploaded data, wrap the field name in curly braces:

  • {Rapporteerbare Eigenaar: Adres}

  • {BirthDate}

  • {Gross Earnings Q1}

✅ Variable names are case-sensitive and can contain spaces.

❌ You can’t use { or } inside variable names.

2) Write formulas using operators and functions

Examples:

  • Add numbers

    {Amount} + 10

  • Multiply

    {Units} * {Price}

  • Combine text

    {First name} & " " & {Last name}

  • Conditional logic

    IF({Country} = "NL", "Netherlands", "Other")

Supported data types

Supplied formulas work with:

  • Numbers: 123, 10.3 (decimal separator is always a dot)

  • Text: "hello" or 'hello'

  • Booleans: TRUE, FALSE (case-insensitive; shown as uppercase)

Operators

Numeric operators

These require numeric values (or text that can be converted to a number):

  • + addition

  • - subtraction

  • * multiplication

  • / division

Examples:

  • {A} + 3

  • {Price} * {Quantity}

✅ "42" + 3 becomes 45 (string coerced to number)

❌ "abc" + 3 → type error

Note: unary operators are not supported (so -1 is not valid).

Text concatenation

Use & to join values as text:

  • {Street} & " " & {HouseNumber}

  • CONCAT({First}, " ", {Last})

Rules:

  • numbers and booleans convert to strings automatically

  • null becomes an empty string

Comparisons

Comparisons return TRUE or FALSE:

  • =, !=, <, <=, >, >=

  • <> is also accepted (same as !=)

Examples:

  • {A} = 10

  • {Country} != "NL"

  • {Amount} >= 100

Order of operations (precedence)

  1. Parentheses and function calls: ( ... )

  2. * and /

  3. + and -

  4. &

  5. Comparisons: =, !=, <>, <, <=, >, >=

Tip: Use parentheses when in doubt.

Example:

  • {A} + {B} * 2 evaluates as {A} + ({B} * 2)

Built-in functions

Function names are case-insensitive (they will be formatted to uppercase).

IF(condition, then, else)

Use: conditional output

Arguments: exactly 3

IF({Country} = "NL", "Dutch", "Non-Dutch")

Truthiness rules in conditions:

  • Boolean: used as-is

  • Number: 0 → FALSE, non-zero → TRUE

  • String: only "TRUE"/"FALSE" (any case) are treated as booleans

Short-circuiting: only the selected branch is evaluated.

Example (safe):

IF(TRUE, 1, 1/0)

→ returns 1 and does not throw a division error.

NOT(value)

Use: negate boolean

Arguments: 1

NOT({IsActive})

AND(arg1, arg2, …)

Use: all conditions must be true

Arguments: at least 1

AND({Country} = "NL", {Amount} > 0)

OR(arg1, arg2, …)

Use: any condition can be true

Arguments: at least 1

OR({Country} = "NL", {Country} = "BE")

CONCAT(arg1, arg2, …)

Use: join text values

Arguments: at least 2

CONCAT({First name}, " ", {Last name})

DATEVALUE(text, format?)

Use: parse a date string and return an ISO date (YYYY-MM-DD)

Arguments: 1 or 2

Basic

DATEVALUE("2024-01-15")

→ "2024-01-15"

With explicit input format

DATEVALUE("15/01/2024", "DD/MM/YYYY")

→ "2024-01-15"

Auto-detection

If no format is given, Supplied will try to detect the format automatically.

⚠️ Ambiguous dates throw an error:

DATEVALUE("11/12/2024")

→ error (ambiguous)

✅ Best practice: always provide a format when your input is not ISO.

Supported format examples:

  • "DD/MM/YYYY"

  • "MM-DD-YYYY"

  • "DD MMM YYYY"

  • "YYYY.MM.DD"

COUNTRYCODE(address)

Use: detect country code from a free-form address

Arguments: 1

Returns: ISO 3166-1 alpha-2 country code (uppercase), or empty string

COUNTRYCODE({Rapporteerbare Eigenaar: Adres})

COUNTRY(address)

Use: detect the country name (English) from an address

Arguments: 1

COUNTRY({Rapporteerbare Eigenaar: Adres})

CITY(address)

Use: attempt to extract a city name from an address

Arguments: 1

CITY({Rapporteerbare Eigenaar: Adres})

Returns the city name, or empty string if it can’t be confidently extracted.

Examples you can copy

Extract NL postcode from address (simple)

If your address field contains a full address string:

REGEXEXTRACT({Rapporteerbare Eigenaar: Adres}, "([0-9]{4}\s?[A-Z]{2})")

Note: REGEXEXTRACT is only available if your UI layer exposes it. If not, use COUNTRYCODE() / CITY().

Conditional label based on entity type

IF({Rapporteerbare Eigenaar: Type Identiteit} = "individual", "Natural person", "Entity")

Build a full name

CONCAT({Rapporteerbare Eigenaar: Voornaam}, " ", {Rapporteerbare Eigenaar: Achternaam})

Convert payout totals (string → number coercion)

{Uitbetaling Q1} + {Uitbetaling Q2} + {Uitbetaling Q3} + {Uitbetaling Q4}

Common issues and how to fix them

“Unknown variable”

You referenced a field name that isn’t available.

✅ Fix:

  • check spelling and capitalization

  • make sure the field exists in the mapping screen

  • variable names are case-sensitive

“Wrong number of arguments”

You used a function with the wrong number of inputs.

Examples:

  • IF() must have exactly 3 args

  • NOT() must have exactly 1 arg

  • CONCAT() must have at least 2 args

  • DATEVALUE() must have 1 or 2 args

“Type mismatch”

You tried to do math with a non-numeric value.

Example:

  • "abc" * 3 → error

✅ Fix:

  • ensure numeric fields are numeric

  • avoid text that cannot be converted to a number

“Division by zero”

Example:

  • {A} / 0

✅ Fix:

IF({B} = 0, 0, {A} / {B})

Tips and best practices

  • Prefer ISO dates (YYYY-MM-DD) to avoid ambiguity.

  • Use DATEVALUE(text, format) when importing dates from spreadsheets.

  • Use & or CONCAT() to build strings safely.

  • Use parentheses to make formulas easier to read.

  • Keep field names consistent to reduce “unknown variable” errors.

What Supplied does (and does not) do

✅ Safe evaluation: no arbitrary code execution

✅ Works the same in browser and backend

✅ Clear validation errors with highlights and hints

❌ No unary minus (so -1 is not supported; use 0 - 1)

❌ No exponent notation (e.g. 1e6)

Use Supplied for your Onboarding, DAC7, DSA and Compliance needs

Get in touch