Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Scenario Manager

ASecurity

Builds a Base/Bull/Bear scenario switching layer for a model in a .xlsx with a live selector, CHOOSE or INDEX assumption links, a side-by-side output comparison, and a recalc check, then delivers the workbook. Use when someone wants an auditable scenario toggle instead of Excel's hidden Scenario Manager. Do not trigger for editing an existing workbook through the Claude for Excel add-in.

6 stars
0 votes
0 copies
1 views
Added 9/19/2026
ai-agents

Security Analysis

A100/100

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add andreworia/claude-excel-skills --skill scenario-manager --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Scenario Manager?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Scenario Manager
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/andreworia-scenario-manager/badge)](https://www.skillsdirectory.com/skills/andreworia-scenario-manager)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: scenario-manager
description: Builds a Base/Bull/Bear scenario switching layer for a model in a .xlsx with a live selector, CHOOSE or INDEX assumption links, a side-by-side output comparison, and a recalc check, then delivers the workbook. Use when someone wants an auditable scenario toggle instead of Excel's hidden Scenario Manager. Do not trigger for editing an existing workbook through the Claude for Excel add-in.
---

# Scenario Manager (Base / Bull / Bear)

## When to use
Use when a model needs to switch cleanly between Base, Bull, and Bear cases driven by a small set of assumptions, and you want every case visible and auditable on one sheet. This skill BUILDS a downloadable .xlsx from scratch in the Claude app (openpyxl plus data validation), with a live selector, formula-driven assumption pulls, a comparison table, and a recalc-and-verify pass. It is not the Claude for Excel add-in.

## What it builds
Five areas: a `Cover` tab (selector and summary), a `Scenario Inputs` tab (each driver under Base, Bull, Bear), live links INTO the model so assumptions pull the active case, an `Outputs` comparison tab (key results across all three cases side by side), and a `Checks` tab.

## Build workflow
1. List the drivers that differ across cases (for example growth, price, churn, capex) and find each driver's assumption cell in the model.
2. Build the `Scenario Inputs` block holding Base, Bull, Bear values for every driver.
3. Build a single selector cell (1, 2, or 3) with a data-validation dropdown.
4. Rewrite each model assumption cell to pull the active case via CHOOSE or INDEX referencing the selector.
5. Build the `Outputs` tab comparing key results across all three cases (parallel calc, see spec) so all cases show at once regardless of selector.
6. Add the `Checks` tab.
7. Recalculate the workbook in a real engine (headless LibreOffice).
8. Verify zero formula errors (#REF!, #DIV/0!, #VALUE!, #NAME?), confirm checks pass, then deliver the .xlsx.

## Tab-by-tab spec

### Cover tab
- `B2`: selector cell. Apply data validation list `1,2,3` (or named list Base, Bull, Bear mapped to 1/2/3).
- `B3`: active case name, `=CHOOSE(B2,"Base","Bull","Bear")`.
- A small results summary that reads the live model output under the active case, for example `B6 =Model!B40`.

### Scenario Inputs tab
One row per driver, one column per case:
- `A` driver name, `B` Base, `C` Bull, `D` Bear (all blue inputs), `E` active value (black formula).
- Active value pulls with the selector. Using CHOOSE: `E5 =CHOOSE(Cover!$B$2,B5,C5,D5)`.
- Equivalent with INDEX: `E5 =INDEX(B5:D5,Cover!$B$2)`. INDEX is cleaner when the case count may grow; CHOOSE reads more explicitly for three fixed cases.
- Copy the one chosen formula down every driver row so the column is consistent.

### Links into the model
- Each model assumption cell points at the active value, for example `Model!B6 =ScenarioInputs!E5`.
- Never let the model hold a typed assumption that a scenario should control; the value must flow selector -> active column -> model.
- Keep the link as the green cross-tab color so reviewers see the assumption is driven, not typed.

### Outputs tab (side-by-side comparison)
Show every case at once, not just the active one. Two robust patterns:
- Parallel calc (preferred for auditability): replicate the few output formulas three times, each fed by the Base, Bull, or Bear column directly rather than the active column. For example NPV under Bull recomputes the output chain using `ScenarioInputs!C5:C12` instead of `E`. This shows all three without touching the selector.
- Read-each: if the model is large, document that the comparison cells capture the live output for each case by setting the selector to 1, 2, 3 in turn during the recalc step and pasting each captured value; note clearly which cells are captured snapshots versus live.
- Layout: rows = key metrics (Revenue, EBIT, NPV, IRR), columns = Base, Bull, Bear, plus a Bull-minus-Base and Bear-minus-Base delta column.

### Checks tab
- Selector within range: `=AND(Cover!B2>=1,Cover!B2<=3,Cover!B2=INT(Cover!B2))` TRUE.
- Each driver has all three cases filled: `=COUNTBLANK(ScenarioInputs!B5:D12)=0` TRUE.
- Active column matches selector: for a spot driver, `=(ScenarioInputs!E5=CHOOSE(Cover!B2,ScenarioInputs!B5,ScenarioInputs!C5,ScenarioInputs!D5))` TRUE.

### openpyxl build notes
- Add the dropdown with `openpyxl.worksheet.datavalidation.DataValidation(type="list", formula1='"1,2,3"')`, then `ws.add_data_validation(dv)` and `dv.add(ws["B2"])`.
- Write every active-value and link cell as a formula string, never as the resolved case number; the value only appears after recalculation.
- If using named cases in the dropdown, keep a hidden mapping so the selector still resolves to an integer for CHOOSE/INDEX; mixing text and index in one selector breaks the formula.
- Fill the selector cell with a distinct background and a thick border so reviewers immediately see the single control cell.

### Directional sanity
- Bull should not produce a worse output than Base on the headline metric, and Bear should not beat Base; if it does, a driver's case values are likely swapped between columns.
- Add an optional informal check on the Outputs tab comparing the sign of each delta against the expected direction, so a swapped column is caught on recalc rather than in review.

## Formula and formatting conventions
- Blue font for the Base/Bull/Bear input values and the selector cell.
- Black font for in-tab formulas (the active-value CHOOSE/INDEX column, output calcs).
- Green font for cross-tab links such as `=ScenarioInputs!E5` inside the model.
- No hardcodes where a formula belongs: the active column and model assumptions are always formulas, never the case value retyped.
- One consistent formula per row or column: the same CHOOSE/INDEX pattern down the active column; the same output formula across the comparison columns.
- Number formats: rates `0.0%`, currency `#,##0`, multiples `0.00x`. Highlight the selector cell with a fill so it is obvious where to toggle.

## Trade-off vs built-in Scenario Manager
Excel's built-in Scenario Manager stores case values inside a dialog, invisible on the sheet, overwrites the live inputs when shown, and is easy to desync from the model. A visible toggle block keeps every case on the grid, makes the active pull a traceable formula, and lets reviewers see all three outcomes side by side without opening any menu. It is more auditable and survives copy, review, and version control.

## Checks
See the Checks tab above: selector in 1..3 and integer, no blank case cells, active value equals the selector's case. All three must return TRUE.

## Recalculate and verify
Save with openpyxl, recalc headless (for example `libreoffice --headless --convert-to xlsx`) so CHOOSE/INDEX and cross-sheet links resolve. Reload, scan for #REF!, #DIV/0!, #VALUE!, #NAME?. Toggle the selector to 1, 2, 3 and confirm outputs change and the active check holds at each setting. Fix and loop until clean, then deliver.

## Inputs to gather
- Path to the model and the assumption cell address for each driver.
- Base, Bull, and Bear value for every driver.
- The key output metrics to compare and their cells.
- Whether the comparison should be parallel-calc (live) or captured snapshots.

## Example
Hypothetical drivers: revenue growth (Base 4%, Bull 8%, Bear 1%), gross margin (Base 55%, Bull 58%, Bear 50%). Selector `Cover!B2 = 2` selects Bull, so `ScenarioInputs!E5 =CHOOSE(2,4%,8%,1%) = 8%` flows into `Model!B6`. The Outputs tab shows NPV of (for example) 760 Base, 1,140 Bull, 410 Bear in hypothetical units, with a Bull-minus-Base delta of 380, all visible at once.

Attribution

andreworiaandreworia
View sourceMore from andreworia →
SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1066601 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

686011 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

651 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →