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
- Pin to Watch — turn an answer into a refreshing dashboard tile.
- Branch and edit-rerun — fork an answer to test variants.
- Audit log — export traces and queries for governance.