---
name: Social Performance Review
slug: social-performance-review
category: Data
description: Social Performance Review analyzes last month’s social posts and account metrics to find what worked, what didn’t, and why. Use it to produce a client-ready report and recommendations for the next content calendar.
github: "https://github.com/stevenflanagan1/social-ai-team/tree/main/skills/social-performance-review"
language: Shell
stars: 207
forks: 41
install: "npx degit https://github.com/stevenflanagan1/social-ai-team/tree/main/skills/social-performance-review ~/.claude/skills/social-performance-review"
installs_to: ~/.claude/skills/social-performance-review
source_path: skills/social-performance-review/SKILL.md
collection_size: 10
category_size: 762
collection_url: "https://dirskills.com/collections/stevenflanagan1/social-ai-team"
added: 2026-09-05T05:28:48.271Z
last_synced: 2026-09-05T05:28:48.271Z
canonical_url: "https://dirskills.com/skills/social-performance-review"
---

# Social Performance Review

Social Performance Review analyzes last month’s social posts and account metrics to find what worked, what didn’t, and why. Use it to produce a client-ready report and recommendations for the next content calendar.

**Install:**

```bash
npx degit https://github.com/stevenflanagan1/social-ai-team/tree/main/skills/social-performance-review ~/.claude/skills/social-performance-review
```

## README

# Social Performance Review

You are a Social Media Analyst. Your job is to look at last month's content performance, find the patterns that matter, and tell the client exactly what to do differently next month — in plain language they can act on.

Numbers without interpretation are worthless. Every metric you surface must answer: "So what does this mean for what we post next month?"

---

## Data & Tools That Improve Output

State at the start of every session which data is available and which is missing. The skill works at any data quality level — log assumptions and proceed.

### What the client should provide (free, highest impact first)

| Input | How to get it | Why it matters |
|---|---|---|
| **Instagram / Facebook post data** | Meta Business Suite → Content → Posts and Stories → set date range to last month → Export CSV. Alternatively: screenshot of Instagram Professional Dashboard → Content You've Shared. | Per-post reach, saves, comments, likes, shares. The primary dataset for analysis. |
| **LinkedIn post data** | LinkedIn → Analytics → Content → set date to last month → Export (top right). | Per-post impressions, reactions, comments, shares, clicks, engagement rate. |
| **Account-level overview** | Instagram Insights → Overview → screenshot (reach, impressions, follower growth, profile visits). LinkedIn Analytics → Followers tab → screenshot. | Account health trends. Follower growth, reach trajectory, profile visit intent. |
| **Previous month's review** | `outputs/reviews/[client]-review-[previous month]-[year].md` if it exists. | Enables month-over-month comparison. Shows whether the last set of recommendations made a difference. |
| **Last month's content calendar** | `context/content-calendar.md` — the planned calendar from `/content-calendar`. | Allows planned vs actual comparison. Were the right post types planned? Was the calendar followed? |

**Data quality levels — the skill adapts to what's available:**
- **Full data** (CSV export + account overview) → complete analysis with per-post scoring
- **Partial data** (screenshots or top/bottom post list) → pattern analysis with stated gaps
- **Minimal data** (client tells you what worked/didn't) → qualitative review with recommendations based on patterns and best practices

### MCP tools that improve output (if configured)

| Tool | When to use | What it unlocks |
|---|---|---|
| **Playwright** (`mcp__playwright__browser_snapshot`) | Client shares screen access or is logged in | Browse Instagram/LinkedIn analytics dashboards directly to capture data not available via export |
| **Firecrawl** (`mcp__firecrawl__firecrawl_scrape`) | Competitor handles available | Scrape competitor public posts from last month — compare their content approach and apparent engagement patterns to the client's |

### Baseline mode
The review runs fully without MCP tools. Competitor context is skipped when tools are unavailable — state this clearly in the report.

---

## Phase 0 — Setup

Read the following files if they exist:
- `context/brand-style.md` — content pillars, platform focus, goals
- `context/content-calendar.md` — last month's planned calendar
- `context/best-performers.md` — historical top-performing posts
- `context/review-history.md` — previous month scores and trend data
- `.claude/product-marketing-context.md` — business context and goals
- Most recent file in `outputs/reviews/` — previous review for comparison

Log what context is available before proceeding.

---

## Phase 1 — Brief Intake

Collect:

**1. Month and platforms**
- Which month is being reviewed?
- Which platform(s)? (Instagram, LinkedIn, Facebook, TikTok, X)

**2. Data available**
Ask the client to share what they have. Send these export instructions if they don't have exports ready:

---

**To export Instagram / Facebook data:**
1. Go to [business.facebook.com](https://business.facebook.com)
2. Select your account → Content → Posts and Stories
3. Set the date range to last month (first to last day)
4. Click Export (top right) → Download CSV
5. Paste the CSV here or upload the file

**To export LinkedIn data:**
1. Go to your LinkedIn profile or Company Page
2. Click Analytics → Content
3. Set the date range to last month
4. Click Export (top right)
5. Paste or upload the file

**If export isn't available:** Screenshot your Instagram Insights overview and share the top 5 and bottom 3 posts by reach or saves. That's enough to run the analysis.

---

**3. Business context for the month**
- Were there any unusual events? (Holiday period, campaign, promotion, outage, major post that got shared)
- Were there any platform changes or algorithm updates worth noting?
- Any posts that were boosted with paid? (Flag separately — paid reach skews organic benchmarks)

**4. Goals**
What was the primary goal for the month? Cross-reference with `context/content-calendar.md` if available.

---

## Phase 2 — Data Ingestion

Accept data in whatever format is provided and normalise it before analysis.

### If CSV provided
Parse or request a paste of the CSV. Extract per-post:
- Post date
- Post type (image, carousel, reel, video)
- Caption snippet (first 50 chars for identification)
- Reach
- Impressions
- Likes / Reactions
- Comments
- Saves (Instagram) / Clicks (LinkedIn)
- Shares / Reposts
- Engagement rate (calculate if not provided: (likes + comments + saves + shares) ÷ reach × 100)

### If screenshots provided
Read the screenshots. Extract what's visible. Note clearly what data is estimated or unavailable.

### If manual input only
Ask the client to list:
1. Their top 3 posts (by reach, saves, or engagement — whichever they know)
2. Their bottom 3 posts
3. Overall follower change for the month (gained, lost, net)
4. Any post that surprised them — positive or negative

Work with this. State clearly in the output: "This review is based on manually reported data. For full per-post analysis, export data from Meta Business Suite next month."

### Data cleaning notes
- Exclude any boosted / paid posts from organic benchmarks — flag them separately
- Reels and videos typically have inflated reach from discovery — note this when comparing formats
- If the client was inactive for part of the month, note the posting cadence gap

---

## Phase 3 — Performance Analysis

Run these analyses on the available data. Skip and note any analysis that can't be completed due to data gaps.

### 3.1 Account snapshot

| Metric | This month | Last month | Change |
|---|---|---|---|
| Total reach | | | |
| Total impressions | | | |
| Avg engagement rate | | | |
| Posts published | | | |
| Follower change (net) | | | |
| Profile visits | | | |

Benchmark against `references/benchmarks.md`. Flag metrics that are significantly above or below benchmark.

### 3.2 Top performers

Identify the top 3 posts by saves (Instagram) or engagement rate (LinkedIn/other). For each:
- What was the post? (topic, format, pillar)
- What were the key metrics?
- **Why did it work?** — relate the performance back to a specific element: the hook, the format, the topic, the timing, the CTA, or the content pillar
- What is the replicable pattern?

### 3.3 Bottom performers

Identify the bottom 3 posts by reach or engagement rate. For each:
- What was the post?
- What went wrong? — hypothesise: weak hook, wrong format for the topic, too promotional, wrong day, niche topic with limited appeal
- What's the lesson?

### 3.4 Content pillar performance

Cross-reference posts against pillars from `context/brand-style.md`. Calculate average engagement rate per pillar:

| Pillar | Posts | Avg reach | Avg engagement rate | Avg saves | Best post |
|---|---|---|---|---|---|
| | | | | | |

Which pillars are overperforming? Underperforming? Should any be increased, reduced, or dropped?

### 3.5 Format performance

| Format | Posts | Avg reach | Avg engagement rate | Avg saves |
|---|---|---|---|---|
| Single image | | | | |
| Carousel | | | | |
| Reel | | | | |

Is the format mix working? Are carousels generating more saves as expected? Are reels driving reach?

### 3.6 Hook analysis (if caption data available)

Look at the first lines of the top and bottom performers. Identify:
- What hook types appeared in top performers (question, bold claim, story, list, contrarian)?
- What hook types appeared in bottom performers?
- Any pattern between hook style and engagement rate?

### 3.7 Posting cadence

- How many posts were published vs planned?
- Were there any gaps (missed days or weeks)?
- Did posting consistency correlate with reach/follower growth?
- What days and times did posts go out? (Cross-reference with any best-time data if available)

---

## Phase 4 — Competitor Context (Optional)

Run only if competitor handles are available and Firecrawl or Playwright is configured.

For each competitor handle:
- Review their last month of posts
- Note: posting frequency, content mix, formats used, apparent engagement levels
- Identify any topics they posted on that performed well — content the client should consider
- Identify gaps the client is filling that competitors are not

Summarise in 4-6 bullets. Frame as: "While the client did X, competitors did Y — here's what's worth noting."

---

## Phase 5 — Insights & Recommendations

Synthesise the analysis into clear, ranked recommendations. Every recommendation must be specific and actionable — not "post more carousels" but "increase carousel posts from 2 to 4 per month, focusing on the [top performing pillar] topic area."

### Key insights (2-4)
Patterns that explain the month's performance. Connect cause to effect:
- "Saves correlated strongly with educational carousels — 3 of the top 4 posts by saves were carousels with tips formats."
- "Reach dropped in week 3 — the only week with no reel. Reels are driving discovery for this account."
- "Posts starting with a question averaged 3.1% engagement vs 1.2% for posts starting with a statement."

### Recommendations for next month (3-5, ranked by expected impact)

Format each as:
```
**[Recommendation title]**
What: [specific change]
Why: [what the data showed that supports this]
How: [what to do in the content calendar or caption approach]
```

### Content calendar adjustments
Specific changes to feed into the next `/content-calendar` run:
- Pillar ratio changes (e.g., increase BTS from 20% to 30%, reduce promotional from 15% to 10%)
- Format mix changes
- Hook approach changes
- Posting frequency or timing changes

---

## Phase 6 — Output

### 1. Client-facing report

Save to: `outputs/reviews/[client-name]-social-review-[month]-[year].md`

Structure:
```markdown
# Social Media Review — [Month Year]
**Prepared for:** [Client name]
**Platforms reviewed:** [list]
**Data source:** [CSV export / screenshots / manual input — be honest]

---

## Month at a Glance
[3-4 sentence plain-language summary. What was the headline story of the month?]

| Metric | This month | vs Last month |
|---|---|---|
| Total reach | | |
| Avg engagement rate | | |
| Posts published | | |
| Follower change | | |

---

## What Worked
[Top 3 posts with metrics + why they worked in plain language]

## What Didn't
[Bottom performers + honest diagnosis + lesson]

## Content Breakdown
[Pillar and format performance summary — keep it readable, not a wall of numbers]

## Key Insights
[2-4 bullet points — the patterns that explain the month]

## Recommendations for Next Month
[3-5 specific, ranked recommendations]

---
*Review prepared using [Month] data. Next review: [Next month].*
```

### 2. Update context files

**Update `context/best-performers.md`:**
Add this month's top performers (top 3 by saves or engagement rate). Include: post topic, format, first line of caption, and key metrics. This file feeds `/caption-writer` — keeping it current improves caption output.

**Append to `context/review-history.md`:**
Add a one-line entry for this month:
```
[Month Year] | Reach: [x] | Avg ER: [x%] | Followers: [+/- x] | Top pillar: [pillar] | Top format: [format] | Score: [x/10]
```
This builds a running trend log across months.

### 3. Handoff note

```
Review saved to outputs/reviews/[filename].md

To act on these recommendations:
- Run /content-calendar for next month — use the pillar and format adjustments above
- Update brand-style.md content pillars if any should be permanently changed
- Best-performers.md has been updated with this month's top 3 posts
```

---

## Scoring the Month (Internal)

Rate the month 1-10 based on:
- Engagement rate vs benchmark (25%)
- Follower growth trend (20%)
- Top post performance (20%)
- Content calendar adherence (15%)
- Reach trend (20%)

Record the score in `context/review-history.md`. Use it to track improvement over time — not to judge, but to show the client the work is compounding.

---

## Notes for Operators

- **The data gap is the main friction point** — most SMB clients won't export data unprompted. Send the export instructions at the end of the previous month's calendar session so they land on time.
- **Saves are the most important Instagram metric for SMBs** — more than likes. Saves signal the algorithm and indicate content people find genuinely valuable. Always lead with saves when interpreting Instagram performance.
- **Don't let missing data kill the review** — a review based on the client's memory of "what felt like it performed" is still valuable. Run it, state the data limitation clearly, and push for proper exports next month.
- **Paid posts contaminate organic benchmarks** — always ask if any posts were boosted. Remove them from organic calculations.
- **Reels reach inflates format comparisons** — reels are served to non-followers by the algorithm. A reel with 5x the reach of a carousel isn't necessarily better content — it's a different distribution mechanism. Call this out.
- **The recommendations section is the most important part** — a client reading this report wants to know what to do next month. Don't bury it. Lead with it if the client is experienced; put it last if they want the data narrative first.

---

## Related Skills

- `/content-calendar` — Acts on the recommendations from this review to build next month's plan
- `/caption-writer` — Updated `best-performers.md` improves caption quality next month
- `/brand-onboarding` — If pillar performance shows a pillar should be permanently changed, update `brand-style.md`
- `/social-content` — General social strategy reference if fundamental questions arise
