# Funnel charts in your AI client

> The words that change a funnel chart in Bonnard, and the options and limits the product enforces.

Updated: 2026-10-12

Bonnard draws a funnel chart to show stage-by-stage conversion, such as orders from placed to delivered.

[Image: A chat with the question "UK orders this year, from placed to delivered, as a funnel.", three tool calls, and the funnel Bonnard drew: five stages from 31,352 orders placed to 25,669 delivered]

The examples use Acme, a demo retailer that reports in pounds. Each variant is a few words in the question. A follow-up changes a chart already drawn.

## How an agent draws it

The chat above ran three tools, in this order:

1. `explore_schema` finds the tables and their columns: here `monthly_order_stages`, with `month`, `region`, `step`, `stage`, `orders` and `order_value`.
2. `sql_query` runs a read-only query, so the agent can check the numbers first.
3. `render_chart` takes the SQL and the chart options. It runs the query and returns the chart the chat draws.

The `render_chart` call behind the chart above:

```json
{
  "charts": [
    {
      "sql": "SELECT stage, SUM(orders) AS orders FROM monthly_order_stages WHERE region = 'UK' AND month >= DATE '2026-01-01' GROUP BY step, stage ORDER BY step",
      "chartType": "funnel",
      "title": "UK orders this year, placed to delivered",
      "encode": { "x": "stage", "y": "orders" }
    }
  ]
}
```

A call takes up to 10 charts, shown as a carousel. Each example below shows its one entry. A connected agent reads the full option reference with `explore_docs`, topic `charts/funnel`.

## Drop-off columns

```prompt
Where do UK orders drop off between payment and delivery this year?
```

[Image: Four columns from paid to delivered, the orders lost since the previous stage pale above each, with the step conversion on top]

```json
{
  "sql": "SELECT stage, SUM(orders) AS orders FROM monthly_order_stages WHERE region = 'UK' AND month >= DATE '2026-01-01' AND stage <> 'Placed' GROUP BY step, stage ORDER BY step",
  "chartType": "funnel",
  "funnelStyle": "dropoff",
  "title": "UK orders this year, paid to delivered",
  "encode": { "x": "stage", "y": "orders" }
}
```

Asking where orders drop off draws one column per stage, with the orders lost since the previous stage pale above it. The label on top is the step conversion, the share of the stage before.

## Amounts in pounds

```prompt
UK order value this year, from placed to delivered, in pounds.
```

[Image: Five stages as bars labelled in pounds, from £4,859,041 placed to £3,978,270 delivered]

```json
{
  "sql": "SELECT stage, SUM(order_value) AS value FROM monthly_order_stages WHERE region = 'UK' AND month >= DATE '2026-01-01' GROUP BY step, stage ORDER BY step",
  "chartType": "funnel",
  "title": "UK order value this year, placed to delivered",
  "encode": { "x": "stage", "y": "value" },
  "fields": [
    { "name": "value", "format": "currency", "currency": "GBP" }
  ]
}
```

"In pounds" gives the measure a currency format. Without one, money shows as a plain number: Bonnard never infers a format from a column name.

## Options and limits

Table: What a funnel chart takes

| Ask for | What Bonnard draws |
| --- | --- |
| "as a funnel" | One centred bar per stage, with its count and its share of the first stage |
| "where people drop off" | One column per stage, the loss since the previous stage pale above it, the step conversion on top |
| "in pounds" | A currency format on the measure |
| "short numbers" | A compact format: 31.4K for 31,352 |

- The chart keeps the row order the query returns, so the agent orders the stages in SQL.
- A funnel takes one stage column and one measure. Given a list of measures, it draws the first.
- Rows with a negative value are dropped. A stage nobody reached stays, at zero.
- A drop-off chart needs 72 pixels a stage, or it draws bars: five stages need a chart at least 368 pixels wide.
- Below 480 pixels wide, the bars show each stage's share, and the first stage's value. The tooltip has every value.
- A funnel takes no series colours, highlight, legend, axes, reference lines or overlays. Stages take their colours in order from a fixed palette.

## When Bonnard draws something else

- A sankey or flow diagram has no chart type. The product points the agent to a funnel or a waterfall chart instead.
