agentleFS
sruthir28sruthir28/enterprise-ai-skills/mckinsey-charts/SKILL.md

mckinsey-charts

Skill136 starsChanged 7 months agoMITView on GitHub

Generate McKinsey-style consulting charts as native python-pptx objects (editable inside PowerPoint). Three workhorse types — bar+callout for TAM/single-number stories, stacked column over time for revenue/usage mix, and waterfall for drivers/bridge analysis. Use when you need a chart that looks like it came from an EM-reviewed deck, not from Excel defaults.

The file

We split this skill into the rules it gives an agent

1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Source line at the bottom in light grey italic: Always include it.

    line 23

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

McKinsey Charts

Drop-in chart builders for python-pptx. Charts are inserted as native PowerPoint chart objects — your audience can edit the data, change the colors, copy the chart to their own deck. No images, no screenshots.

The Three Charts

TypeWhen to useExample
bar_calloutOne number is the story. TAM, market size, headcount, anything where you want to anchor on a single highlighted bar with a big callout."RTD coffee TAM will hit $42.5B by 2028"
stacked_bar_over_timeComposition over time. Revenue by segment, usage by feature, headcount by function. Shows both total growth and mix shift."Revenue grew 3x, but enterprise segment grew 7x"
waterfallBridging two numbers. Revenue walk, cost walk, headcount changes, any "start → adds → subtracts → end" story."FY24 → FY25 revenue bridge: $80M → $112M"

Design choices (intentional, not configurable)

  • Title is a claim, not a label. "RTD market will hit $42.5B by 2028" beats "Market Size."
  • One highlight color, everything else grey. McKinsey decks don't rainbow. The chart points at one thing.
  • No gridlines, no chart border, no legend unless multi-series. Less ink → more signal.
  • Source line at the bottom in light grey italic. Always include it.
  • Single font (Inter) at consistent sizes. Title 20pt, axis 10pt, source 9pt.

How to use

from pptx import Presentation
from pptx.util import Inches
from charts import add_bar_callout, add_stacked_bar_over_time, add_waterfall, new_deck

prs = new_deck()  # 16:9 with title slide layout
slide = prs.slides.add_slide(prs.slide_layouts[6])  # blank

add_bar_callout(
    slide,
    title="RTD coffee TAM will hit $42.5B by 2028",
    categories=["2023", "2024", "2025", "2026", "2027", "2028"],
    values=[28.1, 30.8, 33.6, 36.5, 39.4, 42.5],
    highlight_index=5,        # which bar to highlight (last one here)
    callout="$42.5B\n2028 TAM",
    y_label="USD, billions",
    source="Euromonitor 2025; Mintel; team analysis",
)

prs.save("output.pptx")

Same pattern for the other two:

add_stacked_bar_over_time(
    slide,
    title="Enterprise segment now drives 62% of revenue, up from 18% in 2021",
    categories=["2021", "2022", "2023", "2024", "2025"],
    series=[
        ("SMB",        [12, 14, 15, 16, 18]),
        ("Mid-market", [8,  12, 16, 22, 28]),
        ("Enterprise", [4,  10, 22, 38, 74]),
    ],
    highlight_series="Enterprise",
    y_label="Revenue, $M",
    source="Internal financials; FY21–FY25",
)

add_waterfall(
    slide,
    title="FY24 → FY25 revenue bridge: $80M → $112M, with new logos doing the heavy lifting",
    labels=["FY24",  "New logos", "Expansion", "Churn",  "Price",  "FY25"],
    values=[80.0,    24.0,        12.0,        -8.0,     4.0,      112.0],
    kinds=["start",  "pos",       "pos",       "neg",    "pos",    "total"],
    y_label="Revenue, $M",
    source="Internal financials; FY24–FY25",
)

Test it

python3 test_charts.py
open test_output.pptx

The test script generates one slide per chart type with realistic sample data. Open it in PowerPoint or Keynote and right-click any chart → "Edit Data" to confirm it's a native chart, not an image.

When NOT to use this skill

  • You need a distribution (use a histogram or box plot — not a McKinsey staple).
  • You need a scatter / quadrant (the 2x2 / portfolio map is a different skill).
  • You're showing >5 series stacked (split into small multiples instead — one chart can't carry that load).

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.