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

# Goals

> Define the conversion your team cares about most.

A **goal** is the conversion Soran attributes revenue to. It names one event and,
optionally, narrows it and says what it is worth. Attribution is always
calculated against a goal, so a property with no goal has nothing to divide
credit for.

## What a goal is made of

| Part | What it does |
| - | - |
| **Event** | The event that counts as a conversion. Required. |
| **Filters** | Conditions on the event's properties, so only some occurrences count. |
| **Values** | Named amounts carried by the conversion, such as revenue or units. |
| **Category** | Groups the goal, and is the key used when forwarding conversions to ad platforms. |

A goal with no values is a count-only goal. The count is always computed, so
values are what you add when you want money or quantity alongside it.

## Filters

Each filter tests one property of the conversion event. The available operators
are `exact`, `is_not`, `icontains`, `not_icontains`, `regex`, `not_regex`, `gt`,
`gte`, `lt`, `lte`, `is_set`, and `is_not_set`.

Filters combine, so "order completed where `country` is `US` and `total` is
greater than `50`" is two filters on one goal rather than two goals.

## Counting

Every qualifying event counts as a conversion.

> [!WARNING]
>
> Counting a conversion once per person is defined but not yet implemented.
> Setting it will raise an error rather than silently counting differently.

## Related

> **[Attribution models](/docs/concepts/attribution-models)**
>
> How a goal's conversions get divided across touchpoints.


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