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

# Objectives

An **Objective** defines the business outcome a Signal optimizes for. Every Audience Signal and Conversion Signal is linked to an objective, and Innkeepr's causal engine ranks users by their predicted incremental impact on that objective.

Common objectives include conversion likelihood, customer lifetime value (CLV), lead qualification, and other custom outcomes built from tracked events or calculated traits.

## Objective Definition

Here's an example objective definition:

```json theme={null}
{
  "name": "New Customer Revenue",
  "events": ["checkout_completed"],
  "filters": [],
  "aggregation": "value",
  "target_trait": "order_value",
  "direction": "maximize",
  "per": "user",
  "horizon": "30d"
}
```

| Field          | Type   | Description                                                                                                           |
| :------------- | :----- | :-------------------------------------------------------------------------------------------------------------------- |
| `name`         | String | Name of the objective (freely definable)                                                                              |
| `events`       | Array  | Event types (e.g. `checkout_completed`) used to calculate the objective value                                         |
| `filters`      | Array  | Optional filter conditions to narrow the objective to relevant events or users                                        |
| `aggregation`  | String | How the objective value is aggregated across matching events — `count` (number of events) or `value` (sum of a trait) |
| `target_trait` | String | Required when `aggregation` is `value`: the numeric event property to aggregate (e.g. `order_value`)                  |
| `direction`    | String | Direction to optimize for: `maximize` or `minimize`                                                                   |
| `per`          | String | Aggregation level: `user`, `session`, or `group`                                                                      |
| `horizon`      | String | Observation window over which the objective is measured                                                               |

**Note:** Filter syntax is documented separately.

Multiple objectives can be defined and versioned independently, and filtered by additional traits — for example "CLV for new customers in EU markets" or "7-day retention from paid social traffic." Multiple objectives can run in parallel for different signal strategies.

<Info>
  Learn More

  * [Audience Signals](/concepts/audience-signals)
  * [Conversion Signals](/concepts/conversion-signals)
</Info>
