Charts
Funnel charts in your AI client
Bonnard draws a funnel chart to show stage-by-stage conversion, such as orders from placed to 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:
explore_schemafinds the tables and their columns: heremonthly_order_stages, withmonth,region,step,stage,ordersandorder_value.sql_queryruns a read-only query, so the agent can check the numbers first.render_charttakes 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
Where do UK orders drop off between payment and delivery this year?


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
UK order value this year, from placed to delivered, in pounds.


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
| 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.