| name | qna |
| description | Tool-agnostic workflows for answering questions about spreadsheet data — value lookups, what-if analysis, guardrails, and disambiguation. |
When to Use
Use this skill when the task outcome is a written answer about spreadsheet data, not an edited workbook.
- "What is X?" or "What is X for Y?" value lookups
- "What if Y changed?" or "How much would X change?" sensitivity/what-if analysis
- "What is the impact of Z on W?" scenario questions
- Price increase/decrease impact questions
- Explaining or interpreting model outputs in text
- Quick data lookups in spreadsheets
Not this skill: If the task is to create, edit, or fix a workbook, use a verification skill instead. Verify checks correctness after editing; qna answers questions about data.
Value Lookups
Workflow for "What is X?" or "What is X for Y?" questions:
-
Map the workbook — enumerate sheets and tables to understand the structure.
-
Search for candidates — find cells matching the metric or label mentioned in the question. Use context to see neighboring cells.
-
Score and pick winners — examine context (neighboring cells, sheet names, headers) to disambiguate. Pick at most 2 candidates.
-
Read the value — get the formatted and calculated value for the target cell.
-
Report with address — always cite the sheet and cell address in the answer (e.g., Summary!C10). Mention both the calculated value and the displayed value when they differ significantly due to rounding or formatting.
What-If / Sensitivity Analysis
Workflow for "What if X changed?" or "What is the impact on Y?" questions.
Key concept: Each analysis invocation is ephemeral — the workbook is never modified on disk. For multiple scenarios, run multiple invocations, each starting from a clean workbook.
Single scenario
-
Find the output cell (separate step — review before continuing) — search for the metric the question asks about. This often takes more than one attempt: labels and formula cells share the same text, and models frequently have multiple versions of the same metric across sheets. Use context to disambiguate and confirm you have the formula cell, not just a label.
-
Trace to inputs — from the output cell, trace backwards to find which input cells drive it. Confirm the input the user wants to change appears in the trace. If it doesn't, the output may not depend on that input — try a different output cell. Trace results can be large; filter by label rather than dumping everything.
-
Read the baseline, apply the change, read the result — record the original output value, write the new input value, and read the recalculated output from the engine result (e.g., result.touched). The recalculated value comes from the workbook engine, not from your own arithmetic. If the output address is missing from the result, the cell didn't recalculate — you likely have the wrong address.
-
Check for errors — always inspect errors after every write. If any errors appear, report them rather than guessing.
-
If a change appears to do nothing — verify you edited an input (not a formula cell), re-read the output cell, and inspect its formula to confirm it depends on the cell you changed.
Multiple scenarios
For sweeping multiple input values, use a batch scenario function (e.g., scenarios) if available — it runs all combinations atomically and returns structured before/after data. Otherwise, run separate invocations for each scenario, each starting from a clean workbook.
Guardrails
- Find the output cell before editing anything. Confirm the exact address before running the what-if. Don't search for the output after the edit.
- Always record the baseline. Read the original output value before applying the change so you can report before/after.
- Change exactly one input per scenario. Do not touch neighboring or related selectors unless the task explicitly asks.
- Change inputs, not outputs. Never overwrite formula cells. Trace from the output to confirm the cell you're editing is a true input (no formula).
- Read outputs from the workbook engine, never from your own math. After writing a value, the recalculated result comes from the engine (e.g.,
result.touched). Never recalculate model results in JavaScript or Python.
- After every write: check for errors. If any errors appear, report them. Verify the expected output cell is present in the results.
- Read the exact target cell. Read the output from the exact cell named or implied in the prompt. Do not substitute nearby or more volatile cells.
- Each invocation is ephemeral. The workbook on disk is never modified unless explicitly saving.
Disambiguation
Search disambiguation
- Similar labels can mean different metrics (e.g., "Loss Ratio" could be Total / Permissible / Target). Inspect context and nearby labels before choosing. Lean heavily on inferred domain knowledge.
- Sheet names rarely pinpoint inputs — trace from outputs or search broadly.
- When search returns multiple matches, use context to inspect surrounding cells before picking.
Temporal reference disambiguation
When a question mentions time periods ("10th year", "year 2021", "2020", "Year 10", etc.):
- Read the row or column headers to identify all available time periods in the relevant sheet.
- Explicitly state which column/row you're interpreting as the requested time period.
- If multiple interpretations are possible, verify by checking if the value makes sense in context.
- For fiscal vs calendar year ambiguity, check sheet labels and prior columns to determine the convention.
Never assume column position equals year number without verifying the headers.
Response Format
- Do not emit the process you followed. Keep the answer simple and straightforward.
- Cite sheet + address in answers (e.g.,
Summary!C10).
- At most, mention two possible answers for a given question.
- When reporting a value, mention both the calculated value and the displayed value when they differ significantly due to rounding or formatting.
- If the prompt expects a specific caution or limitation (e.g., benefits that reverse at extreme values), include that caveat with the numeric result.
- Keep the formatting simple and to the point.