Skip to content
Back to skills

Data Storytelling

ASecurity

Data Storytelling. Turn analysis into a decision-first narrative and interactive what-if analytics - SCQA story structure, findings-first headings, chart design, ipywidgets dashboards (threshold explorer, prevalence explorer, what-if scenario analyzer, cost-matrix editor, cohort filter, scenario comparison, sensitivity view), static fallback, nbconvert HTML and Voila export. Use for reports, presentations of results, executive summaries, dashboards in notebooks, interactive widgets or explain...

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
data

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add Harrypatria/data-mining-ml --skill data-storytelling --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Data Storytelling?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Data Storytelling
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/harrypatria-data-storytelling/badge)](https://www.skillsdirectory.com/skills/harrypatria-data-storytelling)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: data-storytelling
description: Data Storytelling. Turn analysis into a decision-first narrative and interactive what-if analytics - SCQA story structure, findings-first headings, chart design, ipywidgets dashboards (threshold explorer, prevalence explorer, what-if scenario analyzer, cost-matrix editor, cohort filter, scenario comparison, sensitivity view), static fallback, nbconvert HTML and Voila export. Use for reports, presentations of results, executive summaries, dashboards in notebooks, interactive widgets or explaining findings to stakeholders.
---

# Data Storytelling

## Narrative rules

1. Lead with the decision: the first cell or slide states the takeaway as a sentence with its number.
2. SCQA: situation, complication, question, resolution and action.
3. Every heading is a finding ("Recall drops 18 points below 2 percent prevalence"), not a topic ("Evaluation"). In notebooks, compute headings with `display(Markdown(f"## ..."))` so the numbers are real.
4. One message per chart. The title states the takeaway, axes carry units, direct labels beat legends, colorblind-safe palette (Okabe-Ito), bar axes start at zero, no dual axes or 3D without need.
5. End with recommended actions, risks, open questions and next steps, then limitations.
6. Conditional wording: when a sentence interprets a number, write it so it stays true if the number moves (`'rose' if b > a else 'fell'`).

## Widgets (core ipywidgets only)

Templates: `templates/notebooks/whatif_dashboard.ipynb` (seven panels) and `story_report.ipynb`.

| Panel | Controls | Shows |
|---|---|---|
| Threshold explorer | threshold slider | confusion matrix, precision, recall, F1, expected cost, point on the PR curve |
| Prevalence explorer | prevalence, remedy | accuracy, recall, precision, PR-AUC, ROC-AUC from a precomputed grid |
| What-if analyzer | sliders and dropdowns per predictor, reset | probability, label, local contributions, baseline versus scenario table |
| Cost-matrix editor | cost of FP and FN | optimal threshold, expected savings |
| Cohort filter | segment, time range | metrics and score distribution |
| Scenario comparison | name, save | table and chart of saved scenarios |
| Sensitivity view | predictor | ICE-style curve with the training range shaded |

## Widget engineering

- `interactive_output` with `Output` widgets, or `interact_manual` for heavy work. `continuous_update=False` on sliders that call a model. Never refit inside a callback; precompute grids.
- State in one dictionary or small class.
- Every control has a description and a tooltip; layouts use `HBox`, `VBox`, `GridBox` with set widths; keyboard reachable.
- Clamp to the training range; warn on extrapolation.
- Each panel wraps a pure function; a static fallback cell calls every function with fixed inputs and prints tables, which also proves the callbacks run.

## Export

`jupyter nbconvert --to html` keeps tables and static charts; `voila notebook.ipynb` serves widgets as a dashboard; widgets need a live kernel. In Colab, core widgets work; enable the custom widget manager only for third-party widgets.

Recipes: `references/widgets.md`.

Files in this skill

  • SKILL.md3.1 KB
  • references/widgets.md2.6 KB

Attribution

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

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.