Agency Client Dashboard

/digital-marketing-pro:agency-dashboard

by indranilbanerjee · MIT license · ★ 866 on GitHub

/digital-marketing-pro:agency-dashboard cover

Build the agency dashboard across all client brands: health, pacing, risk.

---
name: agency-dashboard
description: "Build the agency dashboard across all client brands: health, pacing, risk. \"how are all our clients doing\""
user-invocable: true
---

# /digital-marketing-pro:agency-dashboard

> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).

## 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):

Overview

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.

What you get

  • Portfolio health summaryTotal clients in scope, health distribution (green/amber/red count and percentage), overall portfolio health score (weighted by client spend), and period-over-period trend direction
  • Per-client health cardsFor each brand — client name, health score (RAG), active campaigns count, monthly spend with pacing status, primary KPI vs target with delta, next deadline, top alert if any, and assigned account lead
  • Aggregate KPI tableTotal spend across portfolio, average ROAS, total active campaigns, total leads/conversions generated, cost efficiency trends, and period-over-period comparison with directional arrows
  • Budget pacing summaryPer-brand pacing status (on pace, underspending, overspending) with projected end-of-period spend, variance from plan in dollars and percentage, and portfolio-level pacing aggregate
  • Team utilization matrixPer-team-member workload (accounts managed, hours allocated, capacity percentage, billable ratio), overloaded alerts, available bandwidth for new work, and staffing recommendations
  • Claude Code consumption (per brand)only if the user supplied /usage data: aggregated per working directory mapped to brand, using whatever model tiers the user's /usage output reports, with token totals and USD cost for the reporting window. Flag any brand whose Claude Code spend is >2× the portfolio median for the same retainer tier as a candidate for engagement-pattern review or rate renegotiation. Omit this panel entirely if no usage data was provided.
Manual install (npx, ZIP)
Claude Codenpx skills add indranilbanerjee/digital-marketing-pro --skill agency-dashboard -g -a claude-code
Claude Code (degit)npx degit indranilbanerjee/digital-marketing-pro/skills/agency-dashboard#main ~/.claude/skills/agency-dashboard
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md9.6 KB
Read SKILL.md here
indranilbanerjee/main1 file shown
SKILL.md
Show the full text69 lines

/digital-marketing-pro:agency-dashboard

Script location. If your host does not set ${CLAUDE_PLUGIN_ROOT}, the scripts are in this plugin's scripts/ folder, next to skills/. Run them with Python 3.10 or newer: python, or python3 where python is not found (macOS, many Linux systems).

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-week on primary KPI), budget pacing issues (>10% ahead or behind plan), stalled campaigns (no activity in 5+ days), MCP connection failures, or expiring credentials
  12. Check content pipeline: Aggregate content status across all brands — items in draft, in review, approved, scheduled, and published — identify bottlenecks where content is stalling at a particular stage
  13. Generate trend comparison: Compare current portfolio health against the selected baseline period — show improving, stable, or declining trajectory for each client and the portfolio overall with directional arrows
  14. Compile portfolio dashboard: Assemble all data into a structured dashboard sorted by the user's preference, with drill-down detail available for any individual client

Output

A structured portfolio dashboard containing:

  • Portfolio health summary: Total clients in scope, health distribution (green/amber/red count and percentage), overall portfolio health score (weighted by client spend), and period-over-period trend direction
  • Per-client health cards: For each brand — client name, health score (RAG), active campaigns count, monthly spend with pacing status, primary KPI vs target with delta, next deadline, top alert if any, and assigned account lead
  • Aggregate KPI table: Total spend across portfolio, average ROAS, total active campaigns, total leads/conversions generated, cost efficiency trends, and period-over-period comparison with directional arrows
  • Budget pacing summary: Per-brand pacing status (on pace, underspending, overspending) with projected end-of-period spend, variance from plan in dollars and percentage, and portfolio-level pacing aggregate
  • Team utilization matrix: Per-team-member workload (accounts managed, hours allocated, capacity percentage, billable ratio), overloaded alerts, available bandwidth for new work, and staffing recommendations
  • Claude Code consumption (per brand) — only if the user supplied /usage data: aggregated per working directory mapped to brand, using whatever model tiers the user's /usage output reports, with token totals and USD cost for the reporting window. Flag any brand whose Claude Code spend is >2× the portfolio median for the same retainer tier as a candidate for engagement-pattern review or rate renegotiation. Omit this panel entirely if no usage data was provided.
  • Pending approvals queue: All items awaiting approval across brands with item description, age in hours, responsible owner, brand, urgency level, and estimated impact of delay
  • Upcoming deadlines (7/14 day): Chronological list of upcoming deadlines with brand, deliverable type, responsible owner, days remaining, dependency status, and risk assessment if missed
  • Content pipeline status: Aggregate view of content in draft, review, approved, and scheduled stages across all brands with stage-by-stage counts and bottleneck identification
  • Alerts and anomalies panel: Performance drops, pacing issues, stalled campaigns, MCP connection failures, expiring credentials, or overdue items requiring immediate attention — sorted by severity
  • Contract and renewal tracker: Upcoming contract renewals, engagement milestones, and retention risk indicators for clients approaching renewal windows
  • Drill-down guidance: Instructions for investigating any individual client in detail using /digital-marketing-pro:performance-report, /digital-marketing-pro:client-report, or /digital-marketing-pro:credential-switch to activate that brand's context

Agents Used

  • agency-operations — Portfolio aggregation, per-client health scoring, team utilization analysis, approval tracking, deadline compilation, budget pacing calculations, content pipeline aggregation, and alert detection
  • analytics-analyst — Metrics analysis, KPI aggregation, trend calculations, anomaly detection, performance benchmarking across the portfolio, and comparison baseline computations
1---
2name: agency-dashboard
3description: "Build the agency dashboard across all client brands: health, pacing, risk. \"how are all our clients doing\""
4user-invocable: true
5---
6 
7# /digital-marketing-pro:agency-dashboard
8 
9> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
10 
11## Purpose
12 
13Generate 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.
14 
15## Input Required
16 
17The user must provide (or will be prompted for):
18 
19- **Dashboard scope**: All brands or a specific list of brand slugs to include in the portfolio view
20- **Time period**: Current week, month, or quarter — determines the pacing calculations and comparison windows
21- **Detail level**: Summary (top-line health scores per client) or detailed (campaign-level breakdowns per client with individual campaign metrics)
22- **Sort/filter preferences**: Sort clients by health score, spend, revenue, or alphabetical — and optionally filter to only at-risk (amber/red) accounts
23- **Team filter (optional)**: Filter by account lead or team pod if the agency has multiple pods managing different client sets
24- **Comparison baseline (optional)**: Compare current period against prior period, same period last year, or plan/target — defaults to prior period
25- **Alert threshold overrides (optional)**: Custom thresholds for performance drop alerts or budget pacing tolerance — defaults to 20% performance drop and 10% pacing variance
26- **Export format (optional)**: Whether to output as markdown, Google Sheets, or Slack message — defaults to markdown
27 
28## Process
29 
301. **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.
312. **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
323. **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)
334. **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
345. **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
356. **Calculate per-client health score**: Apply the RAG scoring formula from `skills/context-engine/agency-operations-guide.md`:
36 - Green: On track across KPIs, budget on pace (within 10%), no overdue items, content pipeline flowing
37 - Amber: 1-2 KPIs at risk, minor pacing drift (10-20%), items approaching deadline, or pending approvals aging
38 - Red: Significant KPI misses, budget overspend (>20%), missed deadlines, stalled campaigns, or MCP disconnections
397. **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)
408. **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.
419. **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)
4210. **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
4311. **Detect alerts and anomalies**: Flag any brand with sudden performance drops (>20% week-over-week on primary KPI), budget pacing issues (>10% ahead or behind plan), stalled campaigns (no activity in 5+ days), MCP connection failures, or expiring credentials
4412. **Check content pipeline**: Aggregate content status across all brands — items in draft, in review, approved, scheduled, and published — identify bottlenecks where content is stalling at a particular stage
4513. **Generate trend comparison**: Compare current portfolio health against the selected baseline period — show improving, stable, or declining trajectory for each client and the portfolio overall with directional arrows
4614. **Compile portfolio dashboard**: Assemble all data into a structured dashboard sorted by the user's preference, with drill-down detail available for any individual client
47 
48## Output
49 
50A structured portfolio dashboard containing:
51 
52- **Portfolio health summary**: Total clients in scope, health distribution (green/amber/red count and percentage), overall portfolio health score (weighted by client spend), and period-over-period trend direction
53- **Per-client health cards**: For each brand — client name, health score (RAG), active campaigns count, monthly spend with pacing status, primary KPI vs target with delta, next deadline, top alert if any, and assigned account lead
54- **Aggregate KPI table**: Total spend across portfolio, average ROAS, total active campaigns, total leads/conversions generated, cost efficiency trends, and period-over-period comparison with directional arrows
55- **Budget pacing summary**: Per-brand pacing status (on pace, underspending, overspending) with projected end-of-period spend, variance from plan in dollars and percentage, and portfolio-level pacing aggregate
56- **Team utilization matrix**: Per-team-member workload (accounts managed, hours allocated, capacity percentage, billable ratio), overloaded alerts, available bandwidth for new work, and staffing recommendations
57- **Claude Code consumption (per brand)** — *only if the user supplied `/usage` data*: aggregated per working directory mapped to brand, using whatever model tiers the user's `/usage` output reports, with token totals and USD cost for the reporting window. Flag any brand whose Claude Code spend is >2× the portfolio median for the same retainer tier as a candidate for engagement-pattern review or rate renegotiation. Omit this panel entirely if no usage data was provided.
58- **Pending approvals queue**: All items awaiting approval across brands with item description, age in hours, responsible owner, brand, urgency level, and estimated impact of delay
59- **Upcoming deadlines (7/14 day)**: Chronological list of upcoming deadlines with brand, deliverable type, responsible owner, days remaining, dependency status, and risk assessment if missed
60- **Content pipeline status**: Aggregate view of content in draft, review, approved, and scheduled stages across all brands with stage-by-stage counts and bottleneck identification
61- **Alerts and anomalies panel**: Performance drops, pacing issues, stalled campaigns, MCP connection failures, expiring credentials, or overdue items requiring immediate attention — sorted by severity
62- **Contract and renewal tracker**: Upcoming contract renewals, engagement milestones, and retention risk indicators for clients approaching renewal windows
63- **Drill-down guidance**: Instructions for investigating any individual client in detail using `/digital-marketing-pro:performance-report`, `/digital-marketing-pro:client-report`, or `/digital-marketing-pro:credential-switch` to activate that brand's context
64 
65## Agents Used
66 
67- **agency-operations** — Portfolio aggregation, per-client health scoring, team utilization analysis, approval tracking, deadline compilation, budget pacing calculations, content pipeline aggregation, and alert detection
68- **analytics-analyst** — Metrics analysis, KPI aggregation, trend calculations, anomaly detection, performance benchmarking across the portfolio, and comparison baseline computations
69 
View all files on GitHub →

Details

License
MIT
Stars on the repo
★ 866
Checked
Source
indranilbanerjee/digital-marketing-pro ↗
Creator
indranilbanerjee · 114 listings
View creator

Similar skills

See all →
SkillExperiment Dashboard Vieweralirezarezvani/claude-skills · by alirezarezvaniShow experiment dashboard with results, active loops, and progress. Use when the user runs /ar:ar-status or asks how an autoresearch experiment is going.★ 26.3k GitHub starsSkillLinkedIn Analytics Dashboardcharlie947/social-media-skills · by charlie947Turn a LinkedIn Analytics export into an interactive dark-themed React dashboard plus a written strategic analysis with 5 data-backed content recommendations. Reads every sheet in the export, builds charts for engagement trend, follower growth, post performance scatter, day-of-week heatmap, and audience breakdown. Use this skill whenever the user says "analyse my linkedin", "linkedin analytics", "build my dashboard", "review my performance", or uploads a LinkedIn Analytics export file. Requires the user's LinkedIn Analytics export (xlsx) as input.★ 3.7k GitHub starsSkillEarnings Report Previewhimself65/finance-skills · by himself65Generate a pre-earnings briefing for any stock using Yahoo Finance data. Use this skill whenever the user wants to prepare for an upcoming earnings report, understand what analysts expect, review a company's beat/miss track record, or get a quick overview before an earnings call. Triggers include: "earnings preview for AAPL", "what to expect from TSLA earnings", MSFT reports next week", "earnings preview", "pre-earnings analysis", what are analysts expecting for NVDA", "earnings estimates for", will GOOGL beat earnings", "earnings beat/miss history", upcoming earnings", "before earnings", "earnings setup", consensus estimates", "earnings whisper", "EPS expectations", what's the street expecting", "earnings season preview", any mention of preparing for or previewing an earnings report, or any request to understand expectations ahead of a company's earnings date. Always use this skill when the user mentions a ticker in context of upcoming earnings, even if they don't say "preview" explicitly.★ 3.3k GitHub starsSkillPerformance Measurement Auditormichael-denyer/pstack-claude · by michael-denyerVet a perf measurement (limiter, tuning, limits, errors, repeatability, relevance, and whether the work happened) before you report or act on it. Use when you run a benchmark or report a speedup or regression you measured.★ 1k GitHub starsSkillApp Bug Reportermicrosoft/power-platform-skills · by microsoftUse when the user wants to report a bug, file an issue, submit a bug report, or report any problem with the mobile-app plugin.★ 954 GitHub starsSkillMonthly Company CFOcoreyhaines31/makerskills · by coreyhaines31Monthly CFO workflow for a company or agency — pull raw data from bank + payment processor + payroll + expense management, categorize and reconcile, compute end-of-month cash via transaction-sum method, update a scenario projector for forward forecasting, write the monthly snapshot report, surface decisions to leadership. Modes — monthly (default; the standing report), weekly (thin cash pulse), scenario (ad-hoc modeling in the projector), pickup (resume where the prior run left off). Anonymized team-scope sibling to personal-cfo (which handles personal household finances). Composes with company-brain (report gets stored + wiki-indexed there), toolify (wire company-specific data sources), loopify (schedule the monthly + weekly runs). Triggers on "/company-cfo," "/cfo," "monthly cash report," "do the CFO snapshot," "CFO monthly," "let's run CFO," "cash projection," "runway forecast," "monthly financials," "cash pulse.★ 855 GitHub stars

More from indranilbanerjee