Built for AI-first engineers

Your AI features need a data layer that works out of the box. Governed metrics, agent-native APIs, and a CLI that does the rest.

100% Accurate. 100% Scalable.

Define your metrics, business rules, and access policies once. Bonnard enforces them on every query, so your agents execute on real context, not hallucinated guesses.

Schema
Search...⌘K
NAMEDESCRIPTIONFIELDS
Vorders_overview
Joins orders, customers, and line_items. Pre-aggregated AOV, fulfillment rate, repeat %.15
Vrevenue_analytics
Net revenue, refunds, and MRR by region, channel, and cohort month.13
Vproduct_performance
SKU-level sell-through, return rate, and contribution margin.12
Vcustomer_360
LTV, order frequency, RFM segment, and churn probability per customer.15
Corders
Source: warehouse.public.orders. One row per transaction.14
Ccustomers
Source: warehouse.public.customers. Deduplicated on email.13
Cproducts
Source: warehouse.public.products. Includes variants and pricing tiers.8
Cline_items
Source: warehouse.public.line_items. Quantity, unit price, discount applied.9
Cstores
Source: warehouse.public.stores. Physical and online locations with region.5

Every surface, one governed schema

Agent chat, embedded dashboards, MCP, REST. You wire it up once. Your agent and your customers query the same governed definitions.

what's driving revenue this quarter?
Let me start by exploring the available data sources to understand what's available for revenue analysis.
Used Bonnard MCP integration>
Now let me pull 2025 revenue data with a monthly breakdown:
40.0M30.0M20.0M10.0M0
JanFebMarAprMayJunJulAugSepOctNovDec

Answers your customers can trust

Your agent queries governed metric definitions, not raw tables. Every response is grounded in your business logic. No hallucinated aggregations.

View docs →
API KEYS
Publishable keypk_live_a3f8k9...x2m1
Secret keysk_live_••••••••••••
Your customer's MCP config
1{
2 "mcpServers": {
3 "acme-analytics": {
4 "url": "https://mcp.bonnard.dev/acme",
5 "headers": {
6 "Authorization": "Bearer pk_live_a3f8k9...x2m1"
7 }
8 }
9 }
10}

Offer in your product or via MCP

Embedded dashboards, React SDK, MCP server. Publishable keys let your customers access their data from wherever they work. You control what they see.

View docs →
page.tsx
1"use client"
2
3import { PageHeader } from "@/components/page-header"
4import {
5 BarChart,
6 LineChart,
7 BigValue,
8 useBonnardQuery,
9} from "@bonnard/react"
10
11function ChartCard({ title, children }) {
12 return (
13 <Card className="bg-secondary/30">
14 <CardHeader>
15 <CardTitle>{title}</CardTitle>
16 </CardHeader>
17 <CardContent>{children}</CardContent>
18 </Card>
19 )
20}
21
22function PromoCountBigValue() {
23 const { data, loading } = useBonnardQuery({
24 query: {
25 measures: ["promotion_data.count"],
26 },
27 })

SDK for every surface

REST for your app. React for embedded analytics. SQL for your internal team. Same governed model, every consumer.

View docs →
Schemasales_performanceavg_order_value
sales_performance.avg_order_value
Average revenue per transaction
DEFINITION
TYPEavg
SQLsales_amount
CHANGE HISTORY
added23 Feb 2026, 20:01
Included from salesDeploy: Initial semantic layer: sales, product, store
+ description: "Average revenue per transaction"
+ name: "avg_order_value"
+ origin_cube: "sales"
+ sql: "sales_amount"
+ type: "avg"

Browse before you ship

Explore your schema, run queries, check results. See exactly what your customers will see before it goes live.

View docs →

Plug into what you already run

Point Bonnard at your project. It discovers your warehouse, your dbt models, and your orchestrator. No config required.

Warehouses

Snowflake
BigQuery
PostgreSQL
Databricks
DuckDB

Data Tools

dbt
Dagster
Prefect
Airflow
SQLMesh

Start building

Get from zero to governed AI analytics in minutes.