present_bsheet_cell_explain
Open the existing cell-explanation app when the user explicitly asks to see a cell trace. Pass the authorized model_name, sheet_id, tab_id, and cell_ref; optional run, commit, revision, and branch values are exact-match guards from a prior read. Reuses explain_bsheet_cell’s authorization, lineage bounds, and canonical financial values. It never trusts caller-supplied numbers or mutates the sheet. Use explain_bsheet_cell for analysis without opening an app. Provides view: bsheet-cell-explain (ui://apps/bsheet-cell-explain) renders this tool’s result when MCP Apps are available.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
view | Literal['cell'] | Yes | — | |
model_name | str | Yes | — | |
sheet_id | str | Yes | — | |
tab_id | str | Yes | — | |
cell_ref | str | Yes | — | |
direction | `Literal[‘precedents’, ‘dependents’] | None` | No | None |
branch | `str | None` | No | None |
expected_run_id | `str | None` | No | None |
expected_commit_sha | `str | None` | No | None |
expected_revision | `str | None` | No | None |
expected_branch | `str | None` | No | None |
workspace_id | `str | None` | No | None |
Returns
Section titled “Returns”Returns a structured object. Top-level fields:
ref(string)direction(string)value(integer)display(string)unit(string)row_label(string)col_label(string)sheet_name(string)row_total(integer)row_total_display(string)confidence(string)plain(string)aside(string)claim(string)arith(object)nodes(array<object>)edges(array<array<string>>)target(string)waterfall(array<object>)provenance(object)
See the response example below for the full payload shape.
Example
Section titled “Example”Tool Call
Section titled “Tool Call”{ "name": "present_bsheet_cell_explain", "arguments": { "view": "cell", "model_name": "forecasts", "sheet_id": "sht_7890a1b2c3d4e5f67890a1b2c3d4e5f6", "tab_id": "tab_890a1b2c3d4e5f67890a1b2c3d4e5f67", "cell_ref": "C15", "direction": "precedents", "expected_run_id": "66666666-6666-6666-6666-666666666666", "expected_commit_sha": "abc1234def5678901234567890abcdef12345678", "expected_revision": "7345de4975672615ab2acc65c06c6a9063d51d6d4dc544e9f6b4503b19269cac", "expected_branch": "main" }}Response
Section titled “Response”{ "ref": "P&L!C15", "direction": "precedents", "value": 2688, "display": "$2,688", "unit": "USD", "row_label": "Gross profit (USD)", "col_label": "M2 · month 2", "sheet_name": "P&L (live from model)", "row_total": 3086246, "row_total_display": "$3,086,246", "confidence": "exact", "plain": "Gross profit in month 2 — revenue of $4,152 less COGS of $1,464.", "aside": "64.7% margin", "claim": "Traces exactly through recorded model logic to its input values.", "arith": { "terms": [ { "node_id": "l2", "label": "Revenue", "display": "4,152" }, { "node_id": "l3", "label": "COGS", "display": "1,464" } ], "ops": [ "−" ], "result": { "node_id": "l4", "label": "Gross profit", "display": "2,688" } }, "nodes": [ { "node_id": "i1", "kind": "input", "name": "Seat price, USD/yr", "short": "Seat price", "formula": null, "value": "1,633.76", "module": "unit_economics", "src": "outputs/unit_economics.json", "conf": "exact", "note": null, "total": null }, { "node_id": "i2", "kind": "input", "name": "COGS per seat, USD/yr", "short": "COGS per seat", "formula": null, "value": "576", "module": "unit_economics", "src": "outputs/unit_economics.json", "conf": "exact", "note": null, "total": null }, { "node_id": "i3", "kind": "input", "name": "Seats, EoP by month", "short": "Seats EoP", "formula": null, "value": "M1 20 → M2 41", "module": "seat_dynamics", "src": "outputs/seat_dynamics.json", "conf": "exact", "note": null, "total": null }, { "node_id": "a1", "kind": "assumption", "name": "Mid-month recognition", "short": "Mid-month recog", "formula": null, "value": "—", "module": null, "src": "model/projection.py:498", "conf": "exact", "note": "Revenue and COGS accrue on the average of opening and closing seats.", "total": null }, { "node_id": "l1", "kind": "logic", "name": "Average seats in month", "short": "Average seats", "formula": "(opening + closing) ÷ 2", "value": "30.5", "module": "projection", "src": "model/projection.py:504", "conf": "exact", "note": null, "total": null }, { "node_id": "l2", "kind": "logic", "name": "Revenue", "short": "Revenue", "formula": "avg seats × seat price ÷ 12", "value": "4,152", "module": "projection", "src": "model/projection.py:512", "conf": "exact", "note": null, "total": "4,581,494" }, { "node_id": "l3", "kind": "logic", "name": "COGS", "short": "COGS", "formula": "avg seats × COGS per seat ÷ 12", "value": "1,464", "module": "projection", "src": "model/projection.py:516", "conf": "exact", "note": null, "total": "1,495,248" }, { "node_id": "l4", "kind": "output", "name": "Gross profit", "short": "Gross profit", "formula": "revenue − COGS", "value": "2,688", "module": "projection", "src": "model/projection.py:521", "conf": "exact", "note": null, "total": "3,086,246" } ], "edges": [ [ "i3", "l1" ], [ "a1", "l1" ], [ "l1", "l2" ], [ "i1", "l2" ], [ "l1", "l3" ], [ "i2", "l3" ], [ "l2", "l4" ], [ "l3", "l4" ] ], "target": "l4", "waterfall": [ { "node_id": "l2", "label": "Revenue", "sub": "30.5 seats × $1,634 ÷ 12", "v": 4152, "kind": "pos" }, { "node_id": "l3", "label": "COGS", "sub": "30.5 seats × $576 ÷ 12", "v": -1464, "kind": "neg" }, { "node_id": "l4", "label": "Gross profit", "sub": "P&L!C15", "v": 2688, "kind": "total" } ], "provenance": { "sheet": "P&L (live from model)", "source": "run", "branch": "main", "run": "66666666-6666-6666-6666-666666666666", "commit": "abc1234def5678901234567890abcdef12345678", "output": "pnl_sheet.json", "generated": "2026-04-28T10:00:00+00:00", "hash": "7345de4975672615ab2acc65c06c6a9063d51d6d4dc544e9f6b4503b19269cac", "stale": false }}- Module:
BSheets - Requires an authenticated Bridge Town session (OAuth) or an API token.