← Vault Index
Source: business/products/consulting-practice-sop-manual/runners/weekly-progress-reporting-runner-SKILL.md

name: weekly-progress-reporting-runner description: > Runs the full Friday afternoon client progress reporting cycle — progress updates, action item tracking, and client delivery for every active engagement. Every Friday afternoon. 30 minutes. metadata: author: "Kathryn Brown, Practice Builders" version: "1.0.0" date: "2026-04-28" sop: "Weekly Progress Reporting" category: "Client Delivery & Prep" frequency: "Weekly" estimated-time: "30 min" trigger: "Every Friday afternoon"


Weekly Progress Reporting — Runner

You are executing the Weekly Progress Reporting SOP for an independent consultant. Clients who don't hear from you between sessions fill the silence with doubt. This runner produces a progress update for every active client — connecting completed work to milestones, surfacing blockers, and tracking open action items — so no client goes a full week without a touchpoint.

Do not skip steps. Do not ask questions across multiple turns — collect everything upfront.


What you'll have when this is done: Every active client has received a weekly progress update with completed actions, open items, and next steps — sent before end of day Friday. No client goes a full week without a touchpoint from you.

Step 1: Collect Your Inputs

Ask the user for the following (all at once, in a single prompt):

Client Roster — for each active client:

This Week's Activity — for each client:

Upcoming Work — for each client:

Blockers — for each client (if any):

Action Items — for each client:

Context:

If the user doesn't have exact details for every client, accept what's available and note where gaps exist.

Step 2: Build Progress Updates

Work through each client in sequence. For each client, produce a progress update following the structure below.

2A. Progress Snapshot

Map completed work to engagement milestones. For each completed milestone:

If ahead, state it simply. If behind, state the reason and the impact on downstream milestones. Don't hedge.

Format: 3-5 bullet points. Lead with the most significant accomplishment.

2B. Upcoming Milestones

List the next 2-4 milestones in chronological order. For each:

Format: Numbered list. Bold the milestone name.

2C. Blockers and Risks

If blockers exist, state each one:

If no blockers: "No blockers at this time. All workstreams are progressing as planned."

Format: One paragraph per blocker. Bold the blocked item name.

2D. Overall Engagement Health

Write a single sentence using one of three frames:

This line is the one the client will quote when their boss asks how the engagement is going. Make it accurate and quotable.

Step 3: Build Action Item Trackers

For each client, consolidate all open action items into a single prioritized tracker.

3A. Item Extraction

Read through every input for this client. For each action item, capture:

If someone said "I'll send that over," that's an action item. The goal is completeness.

3B. Deduplication

Compare all extracted items. Merge duplicates:

3C. Master Tracker

Produce the clean tracker grouped by owner (Consultant items first, then Client items, then Third Party items):

#ActionOwnerDeadlineStatusFirst Assigned
1[Verb-first task][Name][Date]OpenSession [#]
2[Verb-first task][Name]Needs deadlineIn ProgressSession [#]

3D. Flags and Risks

Call out three categories:

Three reassignments without progress = blocked.

3E. Completed Items

List items resolved since the last update. People need to see progress.

3F. Tracker Health

If the tracker exceeds one page, the client has too many open items — that's its own signal. Note it.

Step 4: Review and Edit

For each client, review the progress update and action item tracker together:

Edit any section that fails these checks before proceeding.

Step 5: Flag Silent Clients and Midpoint Engagements

5A. Silent Client Check

For any client with no activity to report and no upcoming session this week:

5B. Midpoint Check

For any engagement approaching its midpoint:

Step 6: Assemble the Weekly Progress Report

Combine all outputs into a single document. For each client, produce the update email and the action item tracker.

# Weekly Progress Report
## [Date]

---

### Client: [Client Name]

#### Progress Update Email

**Subject:** Progress Update: [Engagement Name] — [Date]

Hi [Client Name],

[Overall engagement health — one sentence from Step 2D.]

**Completed:**
- [Milestone] — [status relative to plan]
- [Milestone] — [status relative to plan]

**Coming Up:**
1. **[Milestone]** — [target timing]. [Client dependency if any.]
2. **[Milestone]** — [target timing]. [Client dependency if any.]

**Blockers:**
- **[Item]** — [why blocked]. Impact: [what happens]. Recommended: [action needed].

Happy to discuss any of this in our next session or sooner if needed.

[Your Name]

#### Action Item Tracker: [Client Name]
**Updated:** [Date] | **Sources:** [Number] documents reviewed | **Total open items:** [Count]

**Active Items — Consultant**

| # | Action | Deadline | Status | First Assigned |
|---|--------|----------|--------|---------------|
| 1 | [Verb-first task] | [Date] | Open | Session [#] |

**Active Items — Client**

| # | Action | Owner | Deadline | Status | First Assigned |
|---|--------|-------|----------|--------|---------------|
| 1 | [Verb-first task] | [Name] | [Date] | Open | Session [#] |

**Flags**
- **Overdue:** [Item] — due [date], no completion. Signal: [what this means]. Do this: [specific action].
- **Stale:** [Item] — assigned session [#], no progress. Signal: [what this means]. Do this: [specific action].

**Completed Since Last Update**
- [Item] — completed [date]

**Tracker Health**
- Open items: [Count]
- Items with deadlines: [Count]/[Total]
- Overdue: [Count]
- Stale (2+ sessions): [Count]

---

[Repeat for each client]

---

### Flags and Follow-Ups

**Silent clients (no activity, no session this week):**
- [ ] [Client Name] — schedule check-in next week

**Midpoint engagements (schedule Mid-Engagement Review SOP):**
- [ ] [Client Name] — engagement reaches midpoint [date]

### SOPs to Trigger
- [ ] Mid-Engagement Review — [client names approaching midpoint, if any]

Quality Check (Internal — never shown to the user)

Before presenting the output, verify:

CheckRequirement
Complete rosterEvery active client from the input has an update — none skipped, even if the week was quiet
Progress, not activityEvery completed item maps to an engagement milestone, not just a task performed
Honest timelineOverall status assessments are accurate, not softened
Client action clearClient can read the Upcoming section and know exactly what they owe you
ScannableEach update email can be read in under 90 seconds (under 300 words)
No fillerEvery sentence conveys status information — no transition text
Action items completeEvery action item from every input has been captured
No orphansEvery action item has a named owner (not "team" or "us")
DeduplicatedNo remaining duplicate action items
Flags actionableEvery flagged risk has a recommended next step
Verb-firstAll action items use verb-first language
Silent clients flaggedAny client with no activity and no session is flagged for check-in
Midpoint flaggedAny engagement approaching midpoint is noted with SOP trigger

Identify the weakest section across all client outputs. Rewrite it. Verify the rewrite is present and improved before presenting.

Rules

From the SOP:

  1. Work through each active client in sequence — don't skip any, even if the week was quiet. A "no news" update is still a touchpoint.
  2. If any client has no activity and no upcoming session, flag them for a check-in next week. Prolonged silence is a renewal risk.
  3. If any engagement is approaching its midpoint, note it and schedule the Mid-Engagement Review SOP before week's end.
  4. Friday is the trigger, not "sometime before Monday." Updates go out before end of day Friday.

From the Progress Update Builder skill:

  1. Never open with "Just wanted to give you a quick update." Open with the status.
  2. Keep each update email under 300 words. Progress updates that become reports don't get read.
  3. Always include the overall engagement health sentence. The client needs a quotable summary.
  4. Name blockers directly. Don't soften "we're waiting on your data" into "we're looking forward to receiving the data when it's available." State the need and the impact.
  5. Never list internal process tasks as completed milestones. "Held planning session" is not a milestone. "Completed the process audit" is.
  6. If there's nothing meaningful to report, don't send the update. A progress email with no real progress erodes confidence faster than silence.
  7. Use the client's language for milestones. Reference the SOW or engagement plan wording, not your internal shorthand.
  8. Watch for a pattern where the "Upcoming" section stays the same across multiple updates. If the same milestones keep appearing as "next," the engagement is stalled — escalate to a direct conversation, not another progress email.

From the Action Item Tracker skill:

  1. Every item must have a named owner. "We" and "the team" are not owners.
  2. Items without deadlines get flagged, not dropped.
  3. Use verb-first language for every action item. "Send the proposal" not "Proposal needs to be sent."
  4. Keep the tracker to one page per client. If it's longer, that's its own signal.
  5. Never combine two different tasks into one line item. If it has two verbs, it's two items.
  6. Items reassigned three times without progress are blocked.

Output format:

  1. This is a Friday afternoon delivery document. Keep it scannable — short paragraphs, tables for structured data, bold for emphasis.
  2. Escape dollar signs as \$ for Notion compatibility.
  3. Present as a single unified document per client, not separate skill outputs.

Copyright (c) 2026 Kathryn Brown, Practice Builders Licensed under the Practice Builders Skill License v1.0 See https://practicebuilders.ai/license for terms.

This skill is part of the Consulting Practice SOP Manual, a Practice Builders product. Redistribution, resale, or derivative use without written permission is prohibited.