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

# Custom Reports — Create

> Build a report by asking in plain language or composing the query

|             |                          |
| ----------- | ------------------------ |
| **URL**     | `/custom-reports/create` |
| **Sidebar** | Custom Reports → Create  |
| **Roles**   | Admin · Analytics Viewer |

Create is where a report starts — describe what you want, or compose the query yourself.

## What's on the page

A resizable workspace. Every divider drags, and your layout is remembered between visits.

| Pane                                 | Contents                                                                                                     |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
| **Conversation** (left)              | Ask for the report you want and refine it by replying. Replies stream in as prose and charts                 |
| **Build** (top right)                | The query as a sentence — *Show me \[metric] by \[dimension]* — with filters beneath it and a **Run** button |
| **Chart** (bottom right)             | The result                                                                                                   |
| **Configuration** (beside the chart) | How the chart is drawn, and where a report is named and saved. Appears once there is a chart                 |

## Filters and controls

**Build** composes the query from the metrics, dimensions and filters your data offers.

| Part      | What you choose                                                                                                                                                                                                                                               |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Metric    | Grouped as Estimated Costs, Volume, Performance and Tool Usage — totals, averages, maximums and minimums, distinct counts, latency, risk scores, AI-suggested lines                                                                                           |
| Dimension | Grouped as Model & Provider, Time, User & App, Status, Tool Usage, Time (Tools) and User & App (Tools) — only the dimensions that make sense for the metric you picked are offered, so which groups appear depends on the metric                              |
| Sort      | High → Low or Low → High by the metric                                                                                                                                                                                                                        |
| Filters   | *where … and …*, each one a field, an operator and a value. The operators offered follow the field's type: equals, not equals, greater than, less than, greater than or equal, less than or equal, is one of, is not one of, contains, is empty, is not empty |

A field whose values are a fixed set offers a pick list of up to **100** values — so on a field with more than that, a value you want may not be listed. Every other field takes a value you type, a number, or a date.

The **Configuration** pane carries the chart type — Bar Chart, Line Chart, Pie Chart or Table — the X and Y columns it is drawing (shown, not chosen), a title you can set for each axis, **Swap Axes**, and, on a stacked bar chart, what it is stacked by.

<Warning>
  **A query returns at most 10,000 rows, and says nothing when it hits that.** The result is simply cut at ten thousand — no message, no marker on the chart. A wide date range or a fine-grained dimension can therefore draw a chart from part of the data while looking complete. `Query complete - n rows returned` is the check: if `n` is exactly `10000`, narrow the range, aggregate at a coarser grain, or add a filter, and confirm the count moves.
</Warning>

## What you can do

| Action                                 | Result                                                                                                   |
| -------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| Ask in the conversation pane           | **Enter** sends, **Shift + Enter** starts a new line. While a reply is running, the send button stops it |
| Select a chart in a reply              | Pins it to the chart pane, where Build and Configuration keep working on it                              |
| Copy a reply, or rate it               | Copies the text, or records thumbs up or down on the generated query                                     |
| Compose in **Build** and press **Run** | Runs the query and draws the result                                                                      |
| **CSV**                                | Downloads the result                                                                                     |
| **Save** on the chart                  | Saves the chart as an image                                                                              |
| Name it in **Configuration** and save  | Adds it to [Queries](/dashboard/custom-reports/queries) and opens the saved report                       |

<Tip>
  The two approaches work together: ask for roughly what you want, click the chart that comes back to pin it, then adjust the generated query by hand for the last detail.
</Tip>

## Messages you may see

| Message                                                           | What it means                                                                          |
| ----------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| `Query complete - n rows returned`                                | The query ran                                                                          |
| `Please select a metric first`                                    | **Build** needs a metric before it can run                                             |
| `Something went wrong. Please try again.`                         | The query did not run. Your query is still on screen, so running it again is enough    |
| `Failed to execute query. Please try again.`                      | The query did not run. Nothing was saved, so running it again is safe                  |
| `Failed to send message. Please try again.`                       | Your message to the assistant did not go through. Send it again                        |
| `Assistant request failed (n).` / `Couldn't reach the assistant.` | The conversation pane could not answer. Anything already streamed into the reply stays |
| `Failed to save query. Please try again.`                         | The report was not saved                                                               |
| `Failed to update query. Please try again.`                       | An edit to a saved report was not stored. The saved version is unchanged               |
| `Couldn't send that feedback. Try again.`                         | Your thumbs up or down was not recorded                                                |
| `Swap axes is not supported for multi-group queries`              | Swap Axes needs one series                                                             |

## Related

| Page                                               | For                                   |
| -------------------------------------------------- | ------------------------------------- |
| [Queries](/dashboard/custom-reports/queries)       | Reports you have saved                |
| [Dashboards](/dashboard/custom-reports/dashboards) | Putting several queries on one screen |
