> For the complete documentation index, see [llms.txt](https://docs.dinmo.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dinmo.io/intelligence/product-recommendations/audiences-and-allocation.md).

# Build and allocate audiences

Choose between independent audiences for each offer and a single audience in which each customer receives one assignment. They serve different campaign needs.

## Independent audiences per offer

Use items as sources and users as candidates to find the top K customers for every offer. Each list is ranked independently: a customer can be a strong match for several offers and appear in all of them.

For example, 10 offers with 10,000 customers each can produce 100,000 rows, but not necessarily 100,000 unique customers. This is useful when overlap is acceptable or managed by your campaign tool.

## One audience, one assignment per customer

Use users as sources and select **One audience, one assignment per customer** when each selected customer should be assigned to one target only.

The audience size is the total number of unique customers requested, not a count per target. With an audience size of 100,000 and 10 offers, the result contains at most 100,000 customers, each assigned once.

Allocation balances audience size, the requested distribution, and affinity. The assigned offer may not be the customer's unconstrained first choice. Select contactable customers in the source segment before allocating, so unreachable users do not consume the campaign audience.

## Distribution between targets

Equal distribution is the default. For item-level allocation, you can instead select a numeric field from the item model, such as planned revenue or a commercial priority weight. Weights must be positive, finite values and are normalized across the selected items.

For example, weights of 60, 30, and 10 request shares of 60%, 30%, and 10%. The weights guide audience distribution; they do not turn the affinity score into predicted revenue or guarantee that revenue will be achieved.

The default tolerance is **±2 percentage points**, configurable in advanced settings. A 20% target therefore allows a share between 18% and 22%. This is not a relative tolerance of 2%. Very small targets can receive no customers if their allowed lower bound reaches zero.

Allocation also supports vendor or category targets with equal distribution. Selecting a numeric item weight field is specific to item-level allocation. Keep the target set focused: allocation supports at most 100 candidate targets.

## Assignment and ranking from one calculation

An allocation scenario produces two output tables from the same scoring run:

| Output            | Population and meaning                                                                                                                                                  |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Assignment        | One row per assigned customer, with the selected target and `ranking = 1`.                                                                                              |
| Companion ranking | Up to K targets per eligible source customer, before the allocation constraint. Covers the requested source population, not only the customers selected for assignment. |

Use the assignment output to route the campaign. To attach preferences only to the assigned audience, join the companion ranking to the assignment's customer IDs. For a full ranking of 12 selected offers, choose K = 12; eligibility and evidence rules can still result in fewer rows.

These are separate tables, not a JSON preference list on the assignment row. Check each output's publication status and freshness before use.

## Validate the audience

Check assigned unique customers against the requested size, achieved shares against the tolerance, and the amount of coverage fill. Insufficient eligible users or evidence can prevent the requested delivery; review whether the configured behavior publishes a partial result or withholds publication.

Recheck consent and contactability at send time. Removing recipients downstream can change the achieved distribution. Offline recommendation quality does not establish the commercial effectiveness of the resulting allocation; measure that with a campaign experiment.

Next: [Configure and refresh](/intelligence/product-recommendations/configure-and-refresh.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.dinmo.io/intelligence/product-recommendations/audiences-and-allocation.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
