practice · operations
Weekly client update
Every Friday. Same time, same shape, written. Three sections: what shipped · what is in progress · what is blocked. Under 200 words. The discipline is consistency, not eloquence — a client who reads ten weekly updates that look the same has a model of the team.
TL;DR
A weekly client update is three sections, under 200 words, sent every Friday before the team's wrap. The same time, the same shape, the same channel. What shipped · in progress · blocked. It is what makes the bi-weekly sync a conversation, not a download. A client who first hears something at a sync that wasn't in the prior weekly update is a client whose no-surprises contract is broken.
What it is
The weekly client update is named in Did We Serve · The Ongoing Relationship. It is written — not a meeting, not a Slack thread, not a Loom video. The PO writes it, before the team's Friday wrap. It goes to the named client contact in their preferred channel (most often email, sometimes a shared Notion page or Confluence space).
Distinguish from
Bi-weekly sync — spoken; signal readings + decisions. Release brief — sent before flag-flip, bound to a specific release. Status page — operational; uptime and incidents only. See Confusable with at the foot.
Why it matters
Without the weekly update:
- The bi-weekly sync becomes a download. Half the time is spent telling the client what happened, leaving no time for decisions.
- The client invents narratives. Silence is read; in the absence of an update, the client constructs a worse story than the team would have told.
- Surprises accumulate. The client first learns of slippage, scope cuts, or incidents in person, not in writing — the no-surprises contract breaks.
- The team has no record of the cadence. Three months later, nobody can answer what did we ship in week 7? without git archaeology.
The update is short on purpose. Under 200 words forces honesty; longer updates hide.
How to do it
Step 1 — Same time, same channel, same shape
Pick once: which day, which time, which channel. Do not vary. Friday 16:00 in email is the corpus default. A client who reads ten updates at the same time on the same day has a model of when the team works.
Step 2 — Three sections, in order
Subject: 200apps × [client name] · Week of [date]
WHAT SHIPPED THIS WEEK
- [Shipped item 1 — named in the client's language, with a
one-line outcome they can recognise.]
- [Shipped item 2]
IN PROGRESS
- [Item 1 — what it is, expected ship date.]
- [Item 2 — what it is, expected ship date.]
BLOCKED
- [Blocker 1 — what is blocked, who/what is blocking it,
what would unblock it.]
[OR: "Nothing blocked this week."]
Best,
AlexWhat shipped is past tense, observed. In progress is current, with a dated commitment. Blocked names the constraint; if nothing is blocked, say so — empty is data.
Step 3 — Under 200 words
The corpus rule: if the update is longer than 200 words, the team has either shipped a quarter's worth of work this week (unlikely) or has hidden bad news in volume. Cut.
If a particular item needs more than two lines, it is bound for the bi-weekly sync, not the update.
Step 4 — Send before the team's wrap
The update goes before 17:00 Friday in the client's local time. Sending Monday morning is not a weekly update — it is a delayed Friday update. The discipline holds because the team writes the update while the week is still in memory.
Step 5 — The update feeds the sync
The next bi-weekly sync reads against the two prior weekly updates. Any item the sync surfaces that wasn't in either of the two preceding updates is a no-surprises failure — name it as such, not as a normal agenda item.
A complete weekly update
Subject: 200apps × Acme University · Week of 2026-05-18
WHAT SHIPPED THIS WEEK
- Hebrew-name grading flow enabled for the first cohort of
six graders. First-48-hour watch closed clean; median
focused-grading time at 13 min on partial observation
(target <15).
- Per-tenant rate-limit override for the new endpoint. Tests
passing in staging; not yet flag-flipped to production.
IN PROGRESS
- Cohort 2 rollout (additional 8 graders) — flag-flip
planned 2026-05-21 after one more day of cohort 1 watch.
- Cold-cache warming job — Story re-prioritised after last
week's INC-058 postmortem; live in production by 2026-05-30.
BLOCKED
- Nothing blocked this week.
Next sync: Thursday 2026-05-29 · 15:00 GMT+3.
Best,
Alex172 words. Three sections. Same shape as last week. Read in 60 seconds.
Evidence
Across our client engagements, weekly updates that protected the relationship shared three properties.
- They were sent at the same time every week. Updates sent on the same weekday within a one-hour window in 80%+ of weeks produced bi-weekly syncs that closed in 45 minutes. Updates with variable timing produced syncs that ran 60–90 minutes.
- They named blockers honestly. Updates that wrote Nothing blocked when something was actually blocked produced surprise-driven escalations 3× more often than updates that named the blocker, even when the blocker was uncomfortable.
- They were under 200 words. Updates over 300 words were read by the client in 40% of weeks; updates under 200 words were read in 90%+.
Anti-patterns
| Pattern | What it looks like | Where to fix |
|---|---|---|
| Variable shape | Different sections each week | Same three sections, every week. Consistency is the contract. |
| Variable timing | Sometimes Friday, sometimes Monday | Pick once; do not vary. |
| Hidden bad news | A blocker is paraphrased as "in progress" | Move it to BLOCKED. Honesty is the discipline. |
| Update becomes a sync | 500 words, multiple sub-sections | Cut. Surplus belongs at the bi-weekly sync. |
| Update never sent the week of a slip | The PO ducked the awkward week | Send anyway. We slipped X, here's what's changing is the corpus's discipline. |
| Update sent to no one | Distribution list is unclear; nobody knows who reads it | Name the recipient list; confirm the client reads it. If they don't, the update isn't doing its job. |
Confusable with
| This | Not this | Difference |
|---|---|---|
| Weekly update | Bi-weekly sync | Update is written, one-way, short. Sync is spoken, two-way, longer. |
| Weekly update | Release brief | Update spans everything this week; release brief is bound to one release. |
| Weekly update | Status page | Status page is operational uptime; weekly update is project state. |
| Blocked | At risk | Blocked means the team cannot proceed. At risk belongs in IN PROGRESS with a named risk. |
Further reading
- Canon — Did We Serve · The Ongoing Relationship
- Canon — Why We Build · Client Relationship Strategy
- Template — Weekly client update
- Checklist — Weekly update · three sections, 200 words
- Practice — SLA review · Signal reading
- Skill path — PO foundations · Step 5 (client cadence) · CS Lead foundations · Step 5
- Reference — Area · Weekly client update