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

# Formula gives a blank, wrong, or error result

> Find the cause when a formula shows blank cells, the wrong records, an unexpected zero, or an error message, and fix it step by step.

A formula that gives a blank, wrong, or error result usually has one of a few common causes. This article lists them, with a way to confirm each one and a fix. Find the symptom that matches what you see.

## Why this happens

Most formula problems come from three things:

* **The name is wrong.** A formula reads a misspelled field as "no value," with no warning.
* **A field is blank.** Blank fields behave differently in text tests, number tests, joins, and math.
* **The formula uses something MK does not support.** MK rejects these when you apply the formula.

## Resolution

### MK shows an error message

**Check:** The message names the problem and points to a spot in your formula, such as `cannot use "%" operator`.

**Fix:**

1. Read the message and find the spot it points to.
2. Remove or replace that part. The [formula reference](https://docs.allgoodhq.com/mk/formulas/reference.md) lists everything you can use, and what is not available.
3. Press **Enter** or select outside the box to apply the formula again.

**Confirm:** The error goes away and the list updates.

### A column or filter is blank on every row

**Check:** Open the record type's **Data Shape** page. Look for your field in the **Field** column.

**Fix:**

1. Copy the field name from **Data Shape** exactly. Names are case-sensitive, so `firstName` works and `firstname` does not.
2. Make sure the formula starts the read with the record type, as in `` $`person.email` ``. A bare `` $`email` `` finds nothing.
3. Apply the formula again.

**Confirm:** At least some rows now show a value.

If the field is not on **Data Shape** at all, the records may not carry it. Ask an admin.

### A name or text column is empty when only one piece is missing

**Check:** The formula joins fields with `+`, such as `` $`person.firstName` + ' ' + $`person.lastName` ``. Joining gives no value when any piece has no value.

**Fix:** Give each field a fallback of empty text, then trim:

```
(($`person.firstName` ?? '') + ' ' + ($`person.lastName` ?? '')).trim()
```

**Confirm:** A record with only a first name now shows the first name.

### A number shows 0 when the field is empty

**Check:** The formula does math on a field that can have no value. In math, no value counts as `0`.

**Fix:** Check first and return no value when the field is empty:

```
exists($`company.annualRevenue`) ? $`company.annualRevenue` / 12 : null
```

**Confirm:** Records with no value show an empty cell, and a real `0` still shows `0`.

### Records with blank fields stay in a filter

**Check:** The formula uses a test that gives true on no value, such as ``!$`person.title`.includes('Intern')`` or ``$`company.employeeCount` < 500``.

**Fix:** Put an `exists()` check first, joined with `&&`:

```
exists($`person.title`) && !$`person.title`.includes('Intern')
```

**Confirm:** Records with no title leave the list.

### A text match misses records you expect

**Check:** Compare the stored value with what you typed. Text matches are case-sensitive, and extra spaces count. `'VP'` does not equal `'vp'`, and `'VP '` does not equal `'VP'`.

**Fix:** Change the field's capitalization and remove stray spaces before you compare:

```
$`person.title`.trim().toLowerCase() == 'vp'
```

**Confirm:** Records with `VP`, `vp`, or `Vp` now match.

### A yes or no field treats "no" as yes

**Check:** The field holds words such as `'no'` or `'false'`. Any text that is not empty counts as true.

**Fix:** Read the field with `flag()`:

```
flag($`lead.opted_in`)
```

Replace `lead.opted_in` with your own field. `flag()` is true for `true`, `t`, `yes`, `y`, `on`, and `1`, in any capitalization.

**Confirm:** Records with `'no'` now give false.

### A date comparison skips some records

**Check:** Formulas compare dates as text, in alphabetical order. A value with a time on it, such as `'2026-01-01 08:30:00'`, sorts after `'2026-01-01'`.

**Fix:** To keep everything on or before January 1, compare against the next day:

```
$`person.createdDate` < '2026-01-02'
```

Replace `person.createdDate` with your own date field. Check the field on **Data Shape** first. This works when the field stores dates as year-month-day text.

**Confirm:** Records from the morning of January 1 now stay in.

### The list did not change after you typed a formula

**Check:** Look at the formula row. MK applies a formula when you leave the box, not while you type.

**Fix:** Press **Enter**, or select outside the box. To keep the change, select **Save**.

**Confirm:** The count and the rows update.

## If none of these resolve the issue

Contact allGood support. Include:

* The formula, copied exactly as you typed it
* The list name, and whether it is a people or companies list
* One record where the result is wrong, with the values of the fields the formula reads
* What you expected to see
* The full error message, if there was one


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.