Bonnard

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:

  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:

render_chartjson

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?

render_chartjson

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.

render_chartjson

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

What a funnel chart takes
Ask forWhat 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.