One of our users wanted to analyze camp reservation data. It is public on recreation.gov, so we pulled the historical reservation data into BigQuery. Kudos to recreation.gov for making it public.
First thing we tried: calculate total revenue for 2024.
It came back as negative one billion dollars.

The query was fine. The problem was two rows out of 9.8 million with a placeholder amount of -666,666,660 sitting in the total field. Leave them in and 2024 shows -$1.04 billion. Filter them out and it is +$293 million, about the same as every other year.
A few other gotchas we found in the same table:
nightsis stored as text like3 days, so casting it to a number quietly drops half the rows- state is stored as full names, so
WHERE state = 'CA'returns nothing, and it looks like California had no bookings
None of these throw an error. The query just runs and hands you a wrong number.
If you have worked with real data pulled from an external source, you know this is the norm, not an exception.
Writing it down as context
So we wrote all of it down as context, so the next time an AI agent queries this data it already knows:
- bound revenue to skip those two junk rows, but keep the real $0 permits and the actual refunds
- parse the leading number out of
nightsinstead of casting it - state is a full name, so to filter by state you join to the facilities table
- fiscal 2026 is only a partial year, so leave it out of any trend
The same holds for your own warehouse. Connecting Claude to BigQuery or Postgres is the easy part. The answers come back right because of the context underneath: what each column actually holds, and how a metric is really defined.
If you are curious, you can run queries against this same Recreation.gov data yourself, no login needed: try the playground.
Here is a more in-depth look at Contextflo and how it works.
What is Contextflo?
Contextflo is a governed context layer between your data and the AI your team already uses. Connect your warehouse once, and your team asks questions in their own Claude or ChatGPT. The model writes and runs the SQL; Contextflo supplies the definitions, the per-user access control, and the audit that make the answers trustworthy. Your data never moves, and you do not need a data team.
How it works
Your team queries in their own Claude or ChatGPT over MCP, so you bring any agent rather than a locked-in bot, and every answer comes back with the SQL shown and access enforced per user.
See it on your own data.
Connect your warehouse and your team can ask Claude about it the same day, without waiting on a data team. Want a walkthrough first? Grab 20 minutes.
Book a 20-minute callSee how teams use Contextflo
Related posts
Keep reading

Conversational analytics: 5 ways to set it up, compared
7 min read

How to connect Claude to BigQuery? What works and what doesn't in 2026
8 min read

How to connect Claude to Postgres without giving it write access
9 min read

How to build a BI dashboard with Claude that your team can actually trust
8 min read

How to give Claude read-only access to your database (it isn't always the default)
7 min read

You connected your warehouse to Claude, now what?
5 min read

ClickHouse MCP: how to connect ClickHouse to Claude, Cursor or Codex
6 min read

Query BigQuery from the Codex CLI with MCP
5 min read

Run ClickHouse queries from Codex with MCP
6 min read




