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

# Products

> What your storefront sells: channels, formats, delivery type and priced options with floors.

A **product** is something a buyer can put budget against. Products come from your inventory
sources (wholesale products synced from a sales agent or ad server) or are created directly. The
storefront agent chooses among them for every brief.

## What makes a product sellable

A product is complete, and eligible for proposals, when it has:

* a **name** and description buyers will understand;
* at least one **channel** (for example `ctv`, `streaming_audio`, `display`);
* at least one **format** (format kind plus parameters, such as `video_hosted` at 15 or 30 seconds);
* a **delivery type**: guaranteed or non-guaranteed;
* at least one **priced option** with a pricing model, a rate or floor, and a currency.

Incomplete products are listed with what is missing and are skipped by the planner.

## Priced options

| Field                  | Meaning                                                     |
| ---------------------- | ----------------------------------------------------------- |
| `pricing_model`        | For example CPM or flat rate.                               |
| `rate` / `fixed_price` | The price when it is fixed.                                 |
| `floor_price`          | The lowest price the agent may offer. It is never undercut. |
| `price_guidance`       | Advisory market guidance the agent may cite.                |
| `currency`             | The option's currency.                                      |
| `min_spend`            | The smallest budget the product accepts.                    |

## Creating and updating

Use `save_wholesale_product` to create or update a product with its channels, delivery type, format
kinds and pricing options. Synced wholesale products update when their source changes; a product's
floor always wins over anything the playbook text says.

## How the planner uses products

For each brief the planner keeps only products whose channel and format kind match the request and
whose currency and minimum spend fit the budget. The storefront agent then chooses among those
candidates and explains its choice in the proposal.
