Docs/Concepts

Understanding the answer card

The three-layer answer format — narrative, chart, source/trace — and why every Arcus answer renders this way.

Every assistant response in Arcus renders as an answer card: a stack of three layers, top to bottom. This is the core of the product. Once you understand it, the rest of Arcus is a workflow built around making this card useful.

The three layers

Layer 1 — Narrative

Plain-English prose, two to four sentences, with a confidence tag.

The narrative is generated last, after the data is in hand. The agent looks at the rows it queried and writes a summary in the language a CMO or CFO would use — not "the SUM of gross_revenue filtered to country_code='UK' is $42,184" but "UK revenue was $42k last week, up 18% from the prior week, driven by the Hydrostars product line."

Every number in the narrative is cited. Hover over a figure to see the column, filter, and aggregation that produced it. Citations come from the write_narrative tool — they're built at generation time, not pattern-matched after.

Layer 2 — Artifact

Usually a chart. Sometimes a table, sometimes a memo, sometimes a comparison view.

The agent picks the artifact based on the shape of the answer:

  • One number → a stat card with delta.
  • A time series → a line chart.
  • A categorical breakdown → a bar chart.
  • A two-dimensional cut → a stacked bar or grouped bar.
  • A long list → a table.

The artifact uses Recharts under the hood, with our token vocabulary. You can swap the chart type with the toolbar above the artifact.

Layer 3 — Source and trace

The footer of the card. Two parts:

  • Sources — pills showing which tables, time windows, and row counts were used. Click a pill to see the table's schema. Lineage is preserved at the cell level — every figure traces back to specific rows.
  • Trace — wall-clock time, estimated cost (LLM + warehouse), and a link to the full agent trace (admin only). The trace shows every tool call, every SQL statement, every model turn. This is the killer trust feature.

If you ever doubt a number, the trace lets you replay the run. There's no opaque "AI magic" — every step is logged.

Why three layers

Most BI tools show what (a chart). Most AI BI tools show one number and a chart. Arcus shows what + why + how-do-I-trust-it, by design.

  • The narrative is for the executive who needs to act in the next ten minutes and wants the why, not just the what.
  • The chart is the visual scan that confirms the narrative.
  • The source/trace is the receipt — the audit trail that lets a skeptical analyst verify the claim or push back.

A response that's missing any layer is incomplete. Internally, the agent harness refuses to ship a half-assembled card.

Confidence labels

Three values: high, medium, low. Set by the write_narrative tool based on:

  • Data sufficiency — enough rows in the window?
  • Metric clarity — is the metric well-defined in the semantic layer?
  • Cross-validation — do multiple aggregations agree?

A high confidence answer is one you can act on. A medium carries a caveat that's surfaced in the narrative ("based on 4 days of data — confidence will rise as next week's results come in"). A low confidence answer is the agent's best effort with explicit caveats; treat it as a starting point.

We never fabricate. If the data can't support an answer, the agent calls flag_insufficient_data instead of guessing.

Attribution: internal vs external

Every claim is also tagged for attribution:

  • Internal — the answer comes from your data (warehouse, semantic layer, configured sources).
  • External — the answer references public or licensed third-party data (planned for v1.5+).
  • Mixed — both.

In v1, every answer is internal. The label is there so users know.

Sources panel

Click "Show sources" to expand the source pills into a table. You'll see:

  • Table — fully-qualified name (e.g. mart.orders).
  • Window — time range used (e.g. last 7 days, or a specific date range).
  • Rows — count of rows the query touched.
  • Freshness — the maximum updated_at (or equivalent) in the data.

Freshness matters. If your warehouse refreshes daily and the last update was 30 hours ago, the answer card surfaces that — "data freshness: 30 hours" — so you know whether to trust the number.

Trace strip

Below the sources, a one-line strip:

Ran 5 tools · 4.2s · ~$0.06 · [view trace]

Every figure is real:

  • Tools — count of tool calls (e.g. search_schema, validate_sql, execute_sql, write_narrative).
  • Wall-clock — total time from question to final card.
  • Cost — estimated LLM + warehouse spend for this single answer.
  • View trace — admin-only link to the full step-by-step replay.

The trace is the answer to "why should I trust this?"

What's next