/agency-dashboard
Portfolio-level agency dashboard aggregating health metrics across all client brands — campaign status, budget pacing, KPI attainment, team utilization. Use when reviewing cross-brand portfolio health, preparing for agency leadership standups, or getting a single-view snapshot
$ npx -y skills add indranilbanerjee/digital-marketing-pro --skill agency-dashboard --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/agency-dashboard
Context preview
The summary Claude sees to decide when to auto-load this skill.
Portfolio-level agency dashboard aggregating health metrics across all client brands — campaign status, budget pacing, KPI attainment, team utilization. Use when reviewing cross-brand portfolio health, preparing for agency leadership standups, or getting a single-view snapshot
SKILL.md
agency-dashboard.SKILL.mdname: agency-dashboard
description: "Portfolio-level agency dashboard aggregating health metrics across all client brands — campaign status, budget pacing, KPI attainment, team utilization. Use when reviewing cross-brand portfolio health, preparing for agency leadership standups, or getting a single-view snapshot of all client accounts."
user-invocable: true
triggers:
- agency portfolio dashboard
- cross-brand campaign status
- budget pacing all clients
- agency KPI overview
- portfolio health check
- multi-client dashboard
- agency team utilization
- overview of all client accounts
/digital-marketing-pro:agency-dashboard
Purpose
Generate a portfolio-level dashboard aggregating health metrics across ALL client brands. Shows campaign activity, budget pacing, KPI attainment, content pipeline, and team utilization at a glance — giving agency leadership a single view of operational health without opening each account individually. Designed for daily standups, weekly agency reviews, or on-demand health checks.
Input Required
The user must provide (or will be prompted for):
- **Dashboard scope**: All brands or a specific list of brand slugs to include in the portfolio view
- **Time period**: Current week, month, or quarter — determines the pacing calculations and comparison windows
- **Detail level**: Summary (top-line health scores per client) or detailed (campaign-level breakdowns per client with individual campaign metrics)
- **Sort/filter preferences**: Sort clients by health score, spend, revenue, or alphabetical — and optionally filter to only at-risk (amber/red) accounts
- **Team filter (optional)**: Filter by account lead or team pod if the agency has multiple pods managing different client sets
- **Comparison baseline (optional)**: Compare current period against prior period, same period last year, or plan/target — defaults to prior period
- **Alert threshold overrides (optional)**: Custom thresholds for performance drop alerts or budget pacing tolerance — defaults to 20% performance drop and 10% pacing variance
- **Export format (optional)**: Whether to output as markdown, Google Sheets, or Slack message — defaults to markdown
Process
1. **Load brand context**: Read `~/.claude-marketing/brands/_active-brand.json` for the active slug, then load `~/.claude-marketing/brands/{slug}/profile.json`. Apply brand voice, compliance rules for target markets (`skills/context-engine/compliance-rules.md`), and industry context. Also check for guidelines at `~/.claude-marketing/brands/{slug}/guidelines/_manifest.json` — if present, load restrictions. Check for agency SOPs at `~/.claude-marketing/sops/`. If no brand exists, ask: "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with defaults. 2. **Enumerate all brands**: Scan `~/.claude-marketing/brands/` for all configured brand directories (excluding `_active-brand.json`). For each brand, load `profile.json` to get client name, industry, engagement type, contract dates, assigned team members, and KPI targets 3. **Pull campaign data per brand**: For each brand in scope, run `python "${CLAUDE_PLUGIN_ROOT}/scripts/campaign-tracker.py" --brand {slug} --action list-campaigns` to retrieve active campaigns, statuses, budgets, and objectives (use `--action get-campaign --id {id}` for a single campaign's detail) 4. **Pull execution status per brand**: For each brand, run `python "${CLAUDE_PLUGIN_ROOT}/scripts/execution-tracker.py" --brand {slug} --action get-history` to get logged executions — completed deliverables, launches, and tasks — then derive pending / overdue status in analysis 5. **Check budget pacing per brand**: For each brand, compare actual spend-to-date against planned spend for the current period — calculate pacing percentage and project end-of-period spend at current run rate 6. **Calculate per-client health score**: Apply the RAG scoring formula from `skills/context-engine/agency-operations-guide.md`:
- Green: On track across KPIs, budget on pace (within 10%), no overdue items, content pipeline flowing
- Amber: 1-2 KPIs at risk, minor pacing drift (10-20%), items approaching deadline, or pending approvals aging
- Red: Significant KPI misses, budget overspend (>20%), missed deadlines, stalled campaigns, or MCP disconnections
7. **Aggregate portfolio KPIs**: Sum total active campaigns, total monthly spend, average ROAS across clients, total leads/conversions, total pending deliverables, and overall portfolio health distribution (count and percentage of green/amber/red) 8. **Check team utilization**: Run `python "${CLAUDE_PLUGIN_ROOT}/scripts/team-manager.py" --action check-capacity --brand {slug}` to assess current team workload — available capacity per team member, overloaded staff flagged, accounts at risk of under-service, and billable-hours tracking. **Optionally add a Claude Code cost line — only if the user supplies the data.** The plugin cannot read Claude Code usage itself. If the user pastes the output of their own `/usage` command (a Claude Code CLI slash command they run interactively), aggregate the per-model token/cost figures it reports into a "Claude Code consumption" line so leadership can see AI cost before the monthly invoice. Label models by whatever the user's `/usage` output names — do not assume specific model IDs. Brand-per-directory workspaces (`~/work/clients/{slug}`) make the figures brand-attributable. 9. **Identify pending approvals**: Scan execution logs across all brands for items awaiting client or internal approval — flag anything older than 48 hours as overdue, group by brand and urgency tier (routine, time-sensitive, blocking) 10. **Surface upcoming deadlines**: Compile deadlines from all brands for the next 7 and 14 days — campaign launches, content due dates, reporting deadlines, contract milestones, renewal dates, and QBR schedules 11. **Detect alerts and anomalies**: Flag any brand with sudden performance drops (>20% week-over-w
Read more
name: agency-dashboard description: "Portfolio-level agency dashboard aggregating health metrics across all client brands — campaign status, budget pacing, KPI attainment, team utilization. Use when reviewing cross-brand portfolio health, preparing for agency leadership standups, or getting a single-view snapshot of all client accounts." user-invocable: true triggers: - agency portfolio dashboard - cross-brand campaign status - budget pacing all clients - agency KPI overview - portfolio health check - multi-client dashboard - agency team utilization - overview of all client accounts
/digital-marketing-pro:agency-dashboard
Purpose
Generate a portfolio-level dashboard aggregating health metrics across ALL client brands. Shows campaign activity, budget pacing, KPI attainment, content pipeline, and team utilization at a glance — giving agency leadership a single view of operational health without opening each account individually. Designed for daily standups, weekly agency reviews, or on-demand health checks.
Input Required
The user must provide (or will be prompted for):
- **Dashboard scope**: All brands or a specific list of brand slugs to include in the portfolio view
- **Time period**: Current week, month, or quarter — determines the pacing calculations and comparison windows
- **Detail level**: Summary (top-line health scores per client) or detailed (campaign-level breakdowns per client with individual campaign metrics)
- **Sort/filter preferences**: Sort clients by health score, spend, revenue, or alphabetical — and optionally filter to only at-risk (amber/red) accounts
- **Team filter (optional)**: Filter by account lead or team pod if the agency has multiple pods managing different client sets
- **Comparison baseline (optional)**: Compare current period against prior period, same period last year, or plan/target — defaults to prior period
- **Alert threshold overrides (optional)**: Custom thresholds for performance drop alerts or budget pacing tolerance — defaults to 20% performance drop and 10% pacing variance
- **Export format (optional)**: Whether to output as markdown, Google Sheets, or Slack message — defaults to markdown
Process
1. **Load brand context**: Read `~/.claude-marketing/brands/_active-brand.json` for the active slug, then load `~/.claude-marketing/brands/{slug}/profile.json`. Apply brand voice, compliance rules for target markets (`skills/context-engine/compliance-rules.md`), and industry context. Also check for guidelines at `~/.claude-marketing/brands/{slug}/guidelines/_manifest.json` — if present, load restrictions. Check for agency SOPs at `~/.claude-marketing/sops/`. If no brand exists, ask: "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with defaults. 2. **Enumerate all brands**: Scan `~/.claude-marketing/brands/` for all configured brand directories (excluding `_active-brand.json`). For each brand, load `profile.json` to get client name, industry, engagement type, contract dates, assigned team members, and KPI targets 3. **Pull campaign data per brand**: For each brand in scope, run `python "${CLAUDE_PLUGIN_ROOT}/scripts/campaign-tracker.py" --brand {slug} --action list-campaigns` to retrieve active campaigns, statuses, budgets, and objectives (use `--action get-campaign --id {id}` for a single campaign's detail) 4. **Pull execution status per brand**: For each brand, run `python "${CLAUDE_PLUGIN_ROOT}/scripts/execution-tracker.py" --brand {slug} --action get-history` to get logged executions — completed deliverables, launches, and tasks — then derive pending / overdue status in analysis 5. **Check budget pacing per brand**: For each brand, compare actual spend-to-date against planned spend for the current period — calculate pacing percentage and project end-of-period spend at current run rate 6. **Calculate per-client health score**: Apply the RAG scoring formula from `skills/context-engine/agency-operations-guide.md`:
- Green: On track across KPIs, budget on pace (within 10%), no overdue items, content pipeline flowing
- Amber: 1-2 KPIs at risk, minor pacing drift (10-20%), items approaching deadline, or pending approvals aging
- Red: Significant KPI misses, budget overspend (>20%), missed deadlines, stalled campaigns, or MCP disconnections
7. **Aggregate portfolio KPIs**: Sum total active campaigns, total monthly spend, average ROAS across clients, total leads/conversions, total pending deliverables, and overall portfolio health distribution (count and percentage of green/amber/red) 8. **Check team utilization**: Run `python "${CLAUDE_PLUGIN_ROOT}/scripts/team-manager.py" --action check-capacity --brand {slug}` to assess current team workload — available capacity per team member, overloaded staff flagged, accounts at risk of under-service, and billable-hours tracking. **Optionally add a Claude Code cost line — only if the user supplies the data.** The plugin cannot read Claude Code usage itself. If the user pastes the output of their own `/usage` command (a Claude Code CLI slash command they run interactively), aggregate the per-model token/cost figures it reports into a "Claude Code consumption" line so leadership can see AI cost before the monthly invoice. Label models by whatever the user's `/usage` output names — do not assume specific model IDs. Brand-per-directory workspaces (`~/work/clients/{slug}`) make the figures brand-attributable. 9. **Identify pending approvals**: Scan execution logs across all brands for items awaiting client or internal approval — flag anything older than 48 hours as overdue, group by brand and urgency tier (routine, time-sensitive, blocking) 10. **Surface upcoming deadlines**: Compile deadlines from all brands for the next 7 and 14 days — campaign launches, content due dates, reporting deadlines, contract milestones, renewal dates, and QBR schedules 11. **Detect alerts and anomalies**: Flag any brand with sudden performance drops (>20% week-over-w
Your agency just signed a 50-brand client. The previous agency left no playbook. Three brands are bleeding budget, two have stale positioning, one is launching in a regulated jurisdiction next month. Where do you start?
Other skills on digital-marketing-pro.
- /ab-test-plan
Design A/B and multivariate tests. Use when: sample size calculation, testing hypothesis, CRO experimentation.
Open skill - /ad-creative
Generate platform-specific ad copy. Use when: Google RSA, Meta, LinkedIn, TikTok ad variations with quality scoring.
Open skill - /add-integration
Add MCP server integrations. Use when: connecting a custom tool, API, or service to the plugin via .mcp.json.
Open skill - /aeo-audit
Audit AI search visibility. Use when: checking brand presence in ChatGPT, Perplexity, AI Overviews, Gemini.
Open skill - /aeo-geo
Optimize AI engine visibility. Use when: AEO/GEO strategy, citation optimization, entity consistency across AI platforms.
Open skill - /analytics-insights
Analyze marketing performance. Use when: KPI frameworks, attribution modeling, anomaly investigation, measurement strategy.
Open skill

