Skip to main content
Charts are the contents of a dashboard. Start from a preset that covers a common metric, or build your own from a SQL measure.
only available on Pro and Enterprise plans.

Create a chart

On a dashboard you created, click Chart to open the chart editor. To change an existing chart, click the icon on the chart itself. Charts can only be added to dashboards you create. To add charts to the built-in Cost and quality dashboard, clone it first.

Chart editor options

  • Chart type: Determines the visualization and which other options are available:
    • Time series: Plot metrics over time as lines or stacked bars. Time series charts help you spot trends, anomalies, and correlations.
    • Top list: Rank groups by a metric over the selected timeframe. Order by value or alphabetically, ascending or descending.
    • Big number: Display a single aggregate value as one large number. Useful for highlighting key metrics like total requests or average score.
    • Presets: Start from a built-in chart covering common metrics like request count, latency, token usage, and scores.
      Some preset charts (Spans, Latency, Total LLM cost, Token count, and Time to first token) automatically exclude internal scorer spans generated by online scoring automations such as Topics and online scorers. This ensures the metrics reflect actual production traffic rather than scoring overhead. Custom charts include all spans by default. Add a span_attributes.purpose is null or span_attributes.purpose != 'scorer' filter to replicate the same behavior.
  • Title: A label displayed above the chart.
  • Measures: What to plot. Select a SQL expression and aggregator (sum, avg, min, max, count, count distinct, or percentile), or select </> to enter a full SQL aggregate expression such as avg(latency) / count_distinct(user_id) or 100 * sum(errors) / count(id). Invalid expressions display a validation error on hover. Built-in measure types are also available for aggregate scores and cost.
  • Trace filters: Narrow results to traces where any span satisfies the filter conditions. Useful for filtering by root-span metadata, such as metadata.email.
  • Span filters: Narrow results to individual spans that satisfy the filter conditions. Only matching spans contribute to the measure.
  • Group by: Split the chart into separate series by a SQL dimension, such as metadata.model. Available for time series and top list charts.
  • Options: Controls visualization-specific settings:
    • Unit type: Choose how values appear in chart axes, tooltips, and legends:
      • Duration: Seconds (e.g., “1.5s”, “0.3s”).
      • Cost: US dollars (e.g., “0.05","0.05", "1.23”).
      • Count: Generic countable things (e.g., “1,234”, “5.5”).
      • Percent: Percentages (e.g., “75%”, “100%”).
      • Bytes: Binary byte units using base-1024 (e.g., “1 KB”, “2 GB”, “500 B”).
    • Visualization: Visualize as lines or bars. Available for time series charts only.
    • Target time interval: Set the time bucket size for time series charts. Choose Auto to let Braintrust pick bucket sizes based on the visible time range, or select Week, Day, or Hour to override the automatic choice. The selected interval is a target, not a guarantee. If it would produce buckets that are too small or too large to read at the visible time range, Braintrust falls back to the nearest readable bucket size. Available for time series charts only. By default, buckets are assigned by created (ingestion time). To use metrics.start (event start time) instead, which is useful for projects that batch-ingest historical spans, see Configure Monitor chart time dimension.
    • Sort: Sort by value or name, ascending or descending. Available for top list charts only.

Performance warnings

As you configure a chart, Braintrust flags settings that are likely to make it slow. A warning appears next to the affected measure or filter, with an explanation of what to change. On a measure, the explanation also appears when you hover over the input. Group-by fields are checked as a set rather than individually, because the most common warning is about the total number of dimensions. Saving a custom chart that still has warnings prompts you to confirm with Save anyway. Preset charts save without the prompt.
Use Loop to create charts from natural language descriptions. Example queries:
  • “List the top 5 models by error rate over the last 7 days”
  • “Show error rate over time for claude models”
  • “Display average latency grouped by user”
  • “Chart token usage trends for the past month”

Move and copy charts

Hover over a chart and click Export chart to open a submenu with the following options:
  • Add to another dashboard: Copy the chart to a different dashboard in the same project or another project. In the dialog that opens, pick the destination project and dashboard, then click Add chart. The built-in Cost and quality dashboard can’t be a destination.
  • Copy config: Copy the chart’s configuration to your clipboard. Paste it on any dashboard to add the chart there.
  • Open in SQL sandbox: Open the chart’s underlying query in the SQL sandbox for further exploration.
To add an identical copy of a chart to the dashboard you are on, hover over it and click Duplicate.

Export chart data

Hover over a chart and click Export data to open a submenu for copying or downloading the chart’s underlying data:
  • Copy JSON: Copy the data as JSON to your clipboard.
  • Raw JSON: Open the JSON data in a new browser tab.
  • Copy CSV: Copy the data as CSV to your clipboard.
  • Raw CSV: Open the CSV data in a new browser tab.

Delete charts

Hover over a chart and click Delete to remove it from the dashboard. Charts can only be deleted from dashboards you create, not from the built-in Cost and quality dashboard.

Next steps