Batting 3rd

CONFIDENT ZEROS

Who am I?

There's a talk Jon Kabat-Zinn gave at Google that I've watched more times than I can count. He tells about a Korean Zen master he studied with, who taught with very little English. He'd ask the room, “Who am I?” Then answer it himself: “Don't know.”

Tableau Agent knew. It said zero.

On Tableau Cloud, “I” was never a question. You were at the keyboard. The filters were the ones you dragged. On Tableau Next, I asked the agent how many home runs I'd seen. It said none, and called that a unique insight. The sentence was fluent and wrong. The query underneath told me why.

Tableau Next Tableau Agent Data 360 Hosted MCP Tableau Cloud

The game. Monday, June 15, 1987. Orioles at Yankees, 9–2. Top corner of Poppa's card: “Got 2 balls — 1 from Winfield, 1 from Niedenfuer. Georgie's Birt'day shown on scoreboard.” The day before I turned nine, and Yankee Stadium knew exactly who I was. The agent had to be told.

Tableau Next visualization: home runs witnessed by year, in the Keeping Score workspace
Tableau Next · the same 400, by year, built through the Beta MCP with no browser: workspace, visualization, sort order. The capture needed a browser (no image API), and no edit operation reaches the mark color, so the tool default ships. The number and the sort hold.

#What happened

Tableau Next reads the Data 360 model directly, so there was nothing to rebuild. Tableau Agent came on with one Setup toggle.

First question: how many home runs have I witnessed? Zero. “You didn't witness any home runs — a unique insight!” The response carries a troubleshooting field, and in it is the exact query the agent sent. It had a filter I never asked for: attendee_key = <my Salesforce user id>. It decided “I” meant whoever was logged in. On a one-person model, that's always zero. Confidently.

The honest answer was the Zen master's: don't know. The agent guessed instead.

#The fix is a paragraph

Tableau Next lets you store business preferences on the semantic model: plain English that every question passes through. Here's the part that mattered:

Keeping Score is one person's baseball attendance record: George "Wax"
Weatherwax's 178 attended MLB games, 1984-2025. When the user says I, me,
my, mine, or we, they mean the ENTIRE model. Never filter by attendee,
attendee_key, Game_Attendee, or the current Salesforce user unless the
question names a specific attendee by name.

Asked again: 400 home runs, 178 games. Four for four on the golden questions. Written headlessly through the hosted MCP and kept in git, never edited in the org.

#Two eras of Tableau

Tableau Cloud answered all seven too, through five published sources and a relationship model. Visual, descriptive, yours. Tableau Next is governed metrics and an agent. You don't drag a filter. You tell the model what your words mean.

Where the two disagreed, it was about joins: a cross-table formula Data 360 fanned out to 281, Tableau Cloud refused outright. Same definitions. Different engines. The difference is in which joins each one is willing to walk.

This is Tableau Next as a query and agent surface over a Data 360 model, plus one chart. No dashboards. It lives in a scratch org with a 30-day life, minted September 3, so everything here lives in git or evaporates. That was the forcing function.

#From the shoebox

Poppa's scorecard, June 15, 1987, Orioles at Yankees. Top-left corner: Got 2 balls, 1 from Winfield, 1 from Niedenfuer, Georgie's birthday shown on scoreboard. Top right: Georgie, Big George, Dave Weatherwax, me
Poppa's card. Top left: the two balls and the scoreboard. Top right, who was there: Georgie, Big George, Dave Weatherwax, me. Left margin, his crowd guess: 20,300. Actual, 20,313. He was thirteen off.

#Try this

If your model holds anybody's personal data, write the business preferences before you turn the agent on. Say who “I” is. Then ask it “how many do I have?” and read the query, not the answer.

#What it taught me

  1. Read the query, not the prose. The prose said zero and sounded certain. The query showed the filter. Every agent surface in this run was measured on whether it shows you the query it ran, and this one does.
  2. The fix lives on the model. Any personal-data model on Tableau Next needs business preferences saying who “I” is. Where does your knowledge of the data go in an agentic stack? Here is one of the places: a paragraph on the semantic model that every question passes through.
  3. Tableau Cloud answered seven of seven too. The new era didn't replace the old one's answers; it changed who asks and how the meaning gets attached.

Next, batting cleanup: Is the trace the new dashboard QA? →